MySQL(八)之DML

时间:2022-03-01 15:27:42

昨天晚上很晚的时候才写完MySQL的常用函数,今天给大家讲一下MySQL的DML。接下来让我们直接来学习了,今天感冒了。身体很难受下午的时候要去买一波药了,不然程序员也扛不住呀。

DML全称Data Manipulation Language,数据操作语言。

一、插入数据


创建格式

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

首先先创建一张表:

      MySQL(八)之DML

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

    1)insert into student(id,name,age)values(1,'zhangsan',12);

      MySQL(八)之DML

    2)insert into student values(2,'lisi',20);

      MySQL(八)之DML

    3)insert into student(name,id,age)values('wangwu',3,30);

     MySQL(八)之DML

   总结:

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

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

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

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

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

    MySQL(八)之DML

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

  1.3、同时插入多条记录

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

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

    MySQL(八)之DML

    同时插入多条记录时,会出现三个名词 Records:表明插入的记录条数  Duplicates:表名插入时被忽略的记录,原因可能是这些记录包含了重复的主键值 

     Warnings:表明有问题的数据值,例如发生数据类型转换。  上面提示的是 2个Records,确实是插入了两条记录数

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

    在有的时候,可能需要将一张表中的数据搬到另一张表中,但是一条条输入记录,很慢,所以就有了这个将查询结果插入到表中,也就是说,将一张表中查询到的结果,全部一次性插入到另一张表中,这样就很方便了,

    但是也有前提条件,那就是查询的结果的字段个数和插入到目标表的字段个数是一样的,并且数据类型也要相同。

    1)首先在这里先创建一个student_new的表,和上面的那一张student的建表格式是一样的

      MySQL(八)之DML

    2)将student表中的所有数据转移到student_new表中

      MySQL(八)之DML

    3)insert into student_new(name,age) select name,age from student;

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

二、更新数据


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

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

  需求:将id为2的lisi的name改成meinv

  MySQL(八)之DML

  注意:可以同时改好多个值,不一定就只更改名字。主键id也能更改,只要主键不冲突,随便改成什么值

三、删除数据


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

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

  需求:将name=deft的 删除

    MySQL(八)之DML