DML -- 数据操纵预言: insert/delete/update --多表连接修改/.多表连接删除/多表连接查询-- truncate 和 delete的区别
Posted zhazhaacmer
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DML -- 数据操纵预言: insert/delete/update --多表连接修改/.多表连接删除/多表连接查询-- truncate 和 delete的区别相关的知识,希望对你有一定的参考价值。
/* 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的区别的主要内容,如果未能解决你的问题,请参考以下文章