DML语言

#DML语言
        /*
        数据操作语言:
        插入:insert
        修改:update
        删除:delete

        */

        #一、插入语句
        /*
        语法:
        insert into 表名(列名...)  values(值1,...);
        */

        #1.插入的值的类型要与列的类型一致或兼容

        INSERT INTO beauty(id, NAME, sex, phone, boyfriend) 
        VALUES(12, '张三', '13525252525', NULL);

        #2.列的顺序是否可以调换
        #可以调换,但要一一对应,列数和值数必须一致


        #方式二:
        /*
        语法:
        insert into 表名
        set 列名=值, 列名=值....

        */

        #两种方式大PK
        1、方式一支持插入多行,方式二不支持
        INSERT INTO beauty 
        VALUES(12, '张三', '13525252525', NULL),
        VALUES(13, '张三三', '13525252565', NULL),
        VALUES(14, '张四', '13525256525', NULL)

        2、方式一支持子查询,方式二不支持
        INSERT INTO beauty(id, NAME, sex, phone, boyfriend) 
        SELECT 12, '张三', '13525252525', NULL;


        INSERT INTO beauty(id, NAME, sex, phone, boyfriend) 
        SELECT id, NAME, sex, phone, boyfriend 
        FROM beauty_2 WHERE id>16;



        #二、修改语句

        /*
        1、修改单表中的记录
        语法:

        update 表
        set 列1=新值,列2=新值.....
        where 筛选条件(不加where,所有的值都改变);

        2、修改多表中的记录【补充】
        语法:

        update 表1 别名, 表2 别名
        set 列=值
        where 连接条件
        and 筛选条件;

        sql99语法:

        update 表1 别名
        inner|left|right join 表2 别名
        on 连接条件
        set 列=值....
        where 筛选条件;
        */

        #1.修改单表的记录
        UPDATE beauty SET id=5, NAME='李四' WHERE NAME='张三';

        #2.修改夺表的记录

        UPDATE boys bo
        INNER JOIN beauty b ON bo.'id'=b.'boyfriend_id'
        SET b.'phone'='114'
        WHERE bo.boy='张无忌';


        #三、删除语句
        /*
        方式一:delete
        语法:

        1、单表删除
        delete from 表名 where 筛选条件;
        不加where 筛选条件,该表所有内容都删除;

        2、多表删除【补充】

        sql92语法:
        delete 表1的别名
        from 表1 别名, 表2 别名
        where 连接条件
        and 筛选条件;

        sql99语法:

        delete 表1的别名,表2的别名
        from 表1 别名
        inner|left|right join 表2 别名  on 连接条件
        where 筛选条件;

        方式二:truncate
        语法: truncate table 表名;
        (清空,不允许加where语句)
        */
        #1、单表删除
        DELETE FROM beauty WHERE phone LIKE '%156%';

        #2、多表删除
        SELECT b1, b2 FROM beauty b1 INNER JOIN boy b2 ON b1.name = b2.name
        WHERE b1.boyName='张无忌';

        #3、truncate语句(清空,不允许加where语句)
        TRUNCATE  TABLE boys;

        # delete PK truncate
        1. DELETE 可以加where 条件,truncate 不可以

        2.truncate删除,效率高一丢丢

        3.假如我们要删除的表中有自增长列,如果用delete删除后,
        再插入数据,自增长列从断点开始。
        而 TRUNCATE 删除后在插入语句,自增长列从1开始.

        4.truncate 删除没有返回值,delete 删除有返回值。
         
        5.truncate 删除不能回滚,delete删除可以回滚

 

posted @ 2020-02-26 11:26  gupanpan  阅读(254)  评论(0)    收藏  举报