MySQL DML语句

DML(Data Manipulate Language):数据操作语言,主要涉及的关键字为INSERT、UPDATE、DELETE(主要是对表数据进行修改).

  一、INSERT

    INSERT INTO 表名 (字段1,字段2、字段3.......) VALUES (值1,值2,值3);

INSERT INTO beauty (id,name,sex,borndate,phone,boyfriend_id) VALUES (NULL,'任盈盈','','1999-07-06',13865427898,8);  
(由于ID列为主键,MySQL支持主键自增,所以插入的值为null时,实际插入的id就是原来最大的id值+1)
INSERT INTO beauty (id,name,sex,borndate,phone,boyfriend_id) VALUES (15,'穆念慈','','1989-07-06',13863327238,10);
INSERT INTO beauty VALUES (17,'小毛毛','','1992-10-10',13863327238,null);
(字段可以省略,默认的字段顺序和MySQL表中存储的顺序一致)

    注意事项:

      1、字段类型和值的类型必须保持一致或者是支持兼容,而且一一对应

      2、可以为空的字段,可以不插入值,或者是用null值填充

      3、不可以为空的字段必须要插入值

      4、字段的个数和值的个数必须保持一致.

  二、UPDATE

    1、修改单表数据

      UPDATE 表名 SET 字段1=新值,字段2=新值... [WHERE 筛选条件]

UPDATE beauty SET borndate='1999-12-12',phone=13876029843 WHERE id=1;

    2、修改多表数据

       UPDATE 表名1 别名1,表名2 别名2

       SET 字段1=新值,字段2=新值...

       WHERE 连接条件

       AND 筛选条件

UPDATE beauty b,boys bo
SET b.borndate='2020-02-02',b.phone=123456790,bo.boyName='令狐冲'
WHERE b.boyfriend_id = bo.id
AND b.id=1;

  三、DELETE

    1、删除单表数据

       DELETE FROM 表名 WHERE 筛选条件

DELETE FROM beauty WHERE NAME = '任盈盈';

    2、删除多表数据

       DELETE 别名1,别名2

       FROM 表名1 别名1,表名2 别名2

       WHERE 连接条件

       AND 筛选条件

DELETE b,bo
FROM beauty b,boys bo
WHERE b.boyfriend_id = bo.id
AND b.boyfriend_id = 4;

    3、DELETE 和 TRUNCATE的区别

      1、DELETE可以添加WHERE条件,而TRUNCATE不能添加WHERE条件

      2、TRUNCATE效率稍高(因为TRUNCATE后面没有条件筛选,做删除操作的时候不需要去判断条件,所有效率稍高一点)

      3、TRUNCATE删除了自增长的列之后,插入数据数据是从1开始的,而DELETE删除了数据之后是从上一个断点开始

        (例如删除的自增长列是id,开始表中有15条数据,那么最大的id是15,DELETE 删除之后,重新插入一条新纪录,新纪录的id是16,而使用TRUNCATE删除,

        重新插入数据,id是从1开始)

      4、DELETE删除可以回滚,TRUNCATE删除不能回滚

原文地址:https://www.cnblogs.com/xiaomaomao/p/13235899.html