码迷,mamicode.com
首页 > 其他好文 > 详细

DML -- 数据操纵预言: insert/delete/update --多表连接修改/.多表连接删除/多表连接查询-- truncate 和 delete的区别

时间:2018-10-27 16:07:02      阅读:163      评论:0      收藏:0      [点我收藏+]

标签:的区别   不能   sql92   序号   清空   ble   方法   sql   font   

/* DML -- 数据操纵预言: insert/delete/update */

#一: 插入语句
/*
语法1: insert into 表名(列名,..,列名....)
      values(值1,值2,...),(值1,值2,...),(值1,值2,...);
语法2: insert into 表名
    set 列名1=值1,列名2=值2,....;
*/
/*二: 修改语句

1.修改单表的记录
    语法: update 表名
    set  列1=新值1,列2=新值2,列2=新值2...
    where 筛选条件 ;  #如果省略,结果就是对全部数据进行了操作
    
2.修改多表的记录[补充]
    SQL92语法:
    update 表1 别名,表2 别名
    set 列1=新值1,列2=新值2,列2=新值2...
    where 连接条件
    and 筛选条件;
    
    SQL99语法:
    update 表1 别名
    inner/left/right join 表2 别名
    on 连接条件
    set 列=值,...
    where 筛选条件;

*/
#二: 修改语句
/*
1.修改单表的记录
    语法: update 表名
    set  列1=新值1,列2=新值2,列2=新值2...
    where 筛选条件 ;  #如果省略,结果就是对全部数据进行了操作
    
2.修改多表的记录[补充]
    SQL92语法:
    update 表1 别名,表2 别名
    set 列1=新值1,列2=新值2,列2=新值2...
    where 连接条件
    and 筛选条件;
    
    SQL99语法:
    update 表1 别名
    inner/left/right join 表2 别名
    on 连接条件
    set 列=值,...
    where 筛选条件;
*/
#三 删除条件
/*
  方式1:delete
    语法:
    1.单标删除
      delete from 表名 where 筛选条件
    2.多表的删除
        SQL92 语法:
        delete 表1的别名,表2的别名...
        from 表1 别名,表2 别名
        where 连接条件
        and 筛选条件;
         SQL99 语法:
            delete 表1的别名,表2的别名...
        from 表1 别名
        inner/left/right join 表2 别名
        on 连接条件
        where 筛选条件;
  方式2:truncate语句
    清空table数据 : truncate table; #不可以加任何条件
  ----------------------------
  两者的区别和联系:
    1.使用where 筛选条件
    2.整表删除效率
    3.面对自增长列, 用delete清空数据后,再插入数据,自增列从断点开始(删前的最大序号);
            用truncate清空数据后,再插入数据,自增长列从0开始;
    4.delete 删除,有返回值;可以回滚;
      truncate删除,无返回值; 不能回滚;
      
*/

#1.插入的values值的类型与列的一致或兼容
INSERT    INTO beauty (id,NAME,sex,borndate,phone)
VALUES(13,唐艺昕,,1990-4-23,1895555555);

#2.可以为null 的列可以不用插入,插入顺序可以颠倒,但必须一一对应,剩余所有列为默认值(NULL等)

INSERT    INTO beauty (id,NAME,borndate,sex)
VALUES(14,娜扎,1990-4-23,);

#3:可以省略列名,默认需要插入所有的列的信息,而且顺序和表中数据信息一致
INSERT INTO beauty
VALUES(15,信小呆,,1998-9-14,154666,NULL,NULL);

#---------------------
#4.方法2
INSERT INTO beauty
SET id=16,NAME=刘涛,sex=;
    
    #表间插入
INSERT INTO beauty(NAME,phone)  #从boy表选择全部数据插入beauty表
SELECT boyname,34543564
FROM boys;
    #再删除上面的插入的数据
DELETE
FROM beauty
WHERE phone=34543564;



#2 修改多表的数据 
    
    #案例1 :修改张无忌的女朋友们的手机号都为114
UPDATE boys bo
INNER JOIN beauty b
ON bo.`id`=b.`boyfriend_id`
SET b.`phone`=11114
WHERE bo.`boyName`=张无忌;

    #案例 2:修改没有男朋友的女生的男朋友的编号都为2号
UPDATE boys bo
RIGHT JOIN beauty b
ON bo.`id`=b.`boyfriend_id`
SET b.`boyfriend_id`=2
WHERE bo.`id` IS NULL;

#3 多表的删除
    #案例1: 删除张无忌的女朋友的信息
    DELETE b
    FROM beauty b
    INNER JOIN boys bo 
    ON b.`boyfriend_id` = bo.`id`
    WHERE bo.`boyName`=张无忌;

 

DML -- 数据操纵预言: insert/delete/update --多表连接修改/.多表连接删除/多表连接查询-- truncate 和 delete的区别

标签:的区别   不能   sql92   序号   清空   ble   方法   sql   font   

原文地址:https://www.cnblogs.com/zhazhaacmer/p/9861373.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!