序言

         数据表的插入、更新、删除非常简单,但是简单的也要学习,细节决定成败。

                                          ---WH

    

一、插入数据

      格式:INSERT INTO 表名(字段名...)VALUES(值...);

      创建环境

        使用person表

        CREATE TABLE person

        (  

          id INT UNSIGNED NOT NULL AUTO_INCREMENT,

          name CHAR(40) NOT NULL DEFAULT '',

          age INT NOT NULL DEFAULT 0,

          info CHAR(50) NULL,

          PRIMARY KEY(id)

        );

    1.1、为表的所有字段插入数据

        方式一:INSERT INTO person(id,name,age,info) VALUES(1,'Green',21,'Lawyer'); 

                    

        方式二:INSERT INTO person VALUES(2,'aaa',18,'MAN');

                  

        方式三:INSERT INTO person (name,id,age,info) VALUES('bbb',3,17,'haha');

                  

        总结:

          方式一和方式三说明插入数据时可以不用按照表结构中的顺序来,只要给的值与前面字段名一一对应即可,

          方式二表明可以忽略字段名,但是其值必须跟表结构中的字段顺序一样。

          使用这三种方式去为所有字段插入数据都可以。

    1.2、为表的指定字段插入数据

          在有时候,给表中插入记录行时,字段值不一定要全部都需要手动插入,可能id自动增长的,也有时某个字段使用默认值,不用插入值也行,这时候就需要为表指定字段来插入数据了。

          INSERT INTO person(name,age,info) VALUES('Willam',20,'sports man');

                  

          这里就缺少了id字段,但是id字段是AUTO_INCREMENT,不用我们手动插入值

    1.3、同时插入多条记录

          格式:INSERT INTO 表名(字段名) VALUES(记录行值1),(记录行值2),...;

          解释:也就是相当于一条语句插入多条记录,就不用每次只插入一条数据了

          INSERT INTO person(name,age,info) VALUES('qqq',19,'haha'),('eee',14,'heihei');  //插入两条数据。

                  

          同时插入多条记录时,会出现三个名词 Records:表明插入的记录条数  Duplicates:表名插入时被忽略的记录,原因可能是这些记录包含了重复的主键值  Warnings:表明有问题的数据值,例如发生数据类型转换。  上面提示的是 2个Records,确实是插入了两条记录数

    1.4、将查询结果插入到表中

          在有的时候,可能需要将一张表中的数据搬到另一张表中,但是一条条输入记录,很慢,所以就有了这个将查询结果插入到表中,也就是说,将一张表中查询到的结果,全部一次性插入到另一张表中,这样就很方便了,但是也有前提条件,那就是查询的结果的字段个数和插入到目标表的字段个数是一样的,并且数据类型也要相同。具体下下面这个例子。

          上面一张person表不够用,现在在创建一张表。

          CREATE TABLE person_old

          (

            id INT UNSIGNED NOT NULL AUTO_INCREMENT,

            name CHAR(40) NOT NULL DEFAULT '',

            age INT NOT NULL DEFAULT 0,

            info CHAR(50) NULL,

            PRIMARY KEY(id)

          );  

          增加两条记录

          INSERT INTO person_id VALUES(11,'Harry',20,'studeng'),(12,'Beck',18,'polic');

                  

          现在将person_old表中的所有数据转移到person表中。

          INSERT INTO person(id,name,age,info) SELECT id,name,age,info FROM person_old;

                  

          这样看一下,id中间就好像断了一块,其实可以不用添加id字段,只添加后面三个字段的值

          INSERT INTO person(name,age,info) SELECT name,age,info FROM person_old; 

                    

          不指定id,那么就会按照person表中id的规则,AUTO_INCREMENT,这里说明一下AUTO_INCREMENT的原理,先检查表中最大的id值,然后往上面加1,每次做就会先检测最大的id值是多少。           

       

二、更新数据

    格式:UPDATE 表名 SET 字段名=值,字段名=值... WHERE 条件;

    解释:通过条件找到要更新数据的那一行记录,然后通过SET 字段名=值这样的形式,写出要更改哪个字段,并更改为什么值。

       UPDATE person SET name = 'xxx' WHERE name='aaa';  //将person表中name=aaa的记录行更新为name=xxx。

                

            解释:原本第二行的记录name=aaa。现在改为了xxx。可以同时改好多个值,不一定就只更改名字。主键id也能更改,只要主键不冲突,随便改成什么值

        UPDATE person SET id = 7 WHERE id = 14;  //将id=14的记录行的id改为7

                    

三、删除数据  

        格式:DELETE FROM 表名[WHERE <condition>];

        解释:条件如果没有的话,那么就把表中所有数据度给删除了。如果有条件的话,就将符合条件的记录行删除。

        DELETE FROM person WHERE id = 13;  //将person表中id=13的记录行给删除。

                

        DELETE FROM person;  //将person表中所有数据度删除

                

四、综合案例

      下面这个例题想做的人可以做一下,环境已经教大家搭建好了,这些由于比较简单,我就不在这里一一解答了。

        4.1、创建实验环境

            创建books表  

            CREATE TABLE books

            (

              id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,

              name VARCHAR(40) NOT NULL,

              author VARCHAR(200) NOT NULL,

              PRICE INT(11) NOT NULL,

              pubdate YEAR NOT NULL,

              note VARCHAR(255) NULL,

              num INT NOT NULL DEFAULT 0

            );

            

      

       4.2、将下表中的路基插入books表中,分别使用不同的方法插入记录。

               

          4.2.1、指定所有字段名称插入记录

          4.2.2、不指定字段名称插入记录

          4.2.3、同时插入多条记录

      4.3、将小说类型novel的书的价格度增加5

      4.4、将名称为赵六的书的价格改为40,并将库存量num改为26

      4.7、删除库存为5的记录

MySQL(四) 数据表的插入、更新、删除数据的更多相关文章

  1. oracle插入,更新,删除数据

    插入,更新,删除数据 oracle提供了功能丰富的数据库管理语句 包括有效的向数据库中插入数据的insert语句 更新数据的update语句 以及当数据不再使用时删除数据的delete语句 更改数据之 ...

  2. MySQL 向表中插入、删除数据

    一.向表中插入一条信息 1.查看表中的数据 mysql> SELECT * FROM user; +----+---------+----------+ | id | account | pas ...

  3. MariaDB 插入&更新&删除数据(8)

    MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可MariaDB的目的是完全兼容MySQL,包括API和命令行,MySQL由于现在闭源了,而能轻松成为MySQ ...

  4. 在mysql数据库中创建oracle scott用户的四个表及插入初始化数据

    在mysql数据库中创建oracle scott用户的四个表及插入初始化数据 /* 功能:创建 scott 数据库中的 dept 表 */ create table dept( deptno int ...

  5. 我的MYSQL学习心得(八) 插入 更新 删除

    我的MYSQL学习心得(八) 插入 更新 删除 我的MYSQL学习心得(一) 简单语法 我的MYSQL学习心得(二) 数据类型宽度 我的MYSQL学习心得(三) 查看字段长度 我的MYSQL学习心得( ...

  6. 使用PreparedStatement向数据表中插入、修改、删除、获取Blob类型的数据

    使用PreparedStatement向数据表中插入.修改.删除.获取Blob类型的数据 2014-09-07 20:17 Blob介绍 BLOB类型的字段用于存储二进制数据 MySQL中,BLOB是 ...

  7. Mysql数据库(四)表记录的更新操作

    一.插入表记录 1.使用INSERT...VALUES语句插入新纪录 (1)插入完整数据 mysql> desc tb_manager; +-------+------------------+ ...

  8. 向mysql数据表中插入数据失败的原因

    1.案例代码: $sql1="insert into content(category,subject,content,username,release_date) values('{$ca ...

  9. SQL Server大量数据秒级插入/新增/删除

    原文:SQL Server大量数据秒级插入/新增/删除 1.快速保存,该方法有四个参数,第一个参数为数据库连接,第二个参数为需要保存的DataTable,该参数的TableName属性需要设置为数据库 ...

随机推荐

  1. Combination Sum II Combinations

    https://leetcode.com/problems/combination-sum-ii/ 题目跟前面几道题很类似,直接写代码: class Solution { public: vector ...

  2. js多种切换图片

    分享通过js实现多种图片切换特效,这里只有手动切换哦,自动效果需自写,效果地址:http://dwz.cn/1drD5u. 下载地址:http://***/download/index/52209 适 ...

  3. thinkphp学习笔记(一)

    一.入门与安装 1.进入C:\Windows\System32\drivers\etc的hosts文件中增加127.0.0.1 www.tp5.com 即访问这个域名就相当于访问127.0.0.1 2 ...

  4. babylonjs

    A Babylon.js Primer Table of contents Babylon.js WebGL Game Creation System! The Browser Useful Link ...

  5. iOS开发零基础--Swift篇 元组

    元组的介绍 元组是Swift中特有的,OC中并没有相关类型 它是什么呢? 它是一种数据结构,在数学中应用广泛 类似于数组或者字典 可以用于定义一组数据 组成元组类型的数据可以称为“元素” 元组的定义 ...

  6. core的生成

    ubuntu12.04,默认无法生成core文件 输入ulimit -c 1024就ok了 列一下ulimit的参数,貌似这个命令是系统性能控制相关的,先不管了. 表 1. ulimit 参数说明 选 ...

  7. onBlur事件与onfocus事件(js)

      onFocus事件就是当光标落在文本框中时发生的事件. onBlur事件是光标失去焦点时发生的事件. 可以编如下例子 1.html <HTML><HEAD><TITL ...

  8. Mac中使用port升级gcc版本

    Mac OS中的gcc版本可能不会满足实际使用要求,需要对其升级. 这里介绍使用port方式来升级gcc版本.Macports是Mac OS中的软件包管理工具. 首先,安装Macports 这里提供O ...

  9. Windows Server 2008 系统设置集合

    1.禁用IPV6 netsh interface teredo set state disabled netsh interface 6to4 set state disabled netsh int ...

  10. PostgreSQL基础整理(三)

    1.触发器 有更新操作时记录一条日志 DROP FUNCTION IF EXIST log_test(); CREATE OR REPLACE FUNCTION log_test() RETURNS ...