欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

MySQL入门(四) 数据表的数据插入、更新、删除

程序员文章站 2023-10-19 19:02:35
序言 数据表的插入、更新、删除非常简单,但是简单的也要学习,细节决定成败。                                          ---wh...

序言

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

                                         ---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'); 

                  MySQL入门(四) 数据表的数据插入、更新、删除  

        方式二:insert into person values(2,'aaa',18,'man');

                  MySQL入门(四) 数据表的数据插入、更新、删除

        方式三:insert into person (name,id,age,info) values('bbb',3,17,'haha');

                  MySQL入门(四) 数据表的数据插入、更新、删除

        总结:

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

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

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

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

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

          insert into person(name,age,info) values('willam',20,'sports man');

                  MySQL入门(四) 数据表的数据插入、更新、删除

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

    1.3、同时插入多条记录

          格式:insert into 表名(字段名) values(记录行值1),(记录行值2),...;

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

          insert into person(name,age,info) values('qqq',19,'haha'),('eee',14,'heihei');  //插入两条数据。

                  MySQL入门(四) 数据表的数据插入、更新、删除

          同时插入多条记录时,会出现三个名词 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');

                 MySQL入门(四) 数据表的数据插入、更新、删除 

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

          insert into person(id,name,age,info) select id,name,age,info from person_old;

                 MySQL入门(四) 数据表的数据插入、更新、删除 

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

          insert into person(name,age,info) select name,age,info from person_old; 

                 MySQL入门(四) 数据表的数据插入、更新、删除   

          不指定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。

                MySQL入门(四) 数据表的数据插入、更新、删除

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

        update person set id = 7 where id = 14;  //将id=14的记录行的id改为7

                MySQL入门(四) 数据表的数据插入、更新、删除    

三、删除数据  

        格式:delete from 表名[where <condition>];

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

        delete from person where id = 13;  //将person表中id=13的记录行给删除。

                MySQL入门(四) 数据表的数据插入、更新、删除

        delete from person;  //将person表中所有数据度删除

                MySQL入门(四) 数据表的数据插入、更新、删除

四、综合案例

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

        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

            );

            MySQL入门(四) 数据表的数据插入、更新、删除

      

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

              MySQL入门(四) 数据表的数据插入、更新、删除 

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

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

          4.2.3、同时插入多条记录

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

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

      4.7、删除库存为5的记录