DML -- 數據操縱預言: insert/delete/update --多表連接修改/.多表連接刪除/多表連接查詢-- truncate 和 delete的區別
阿新 • • 發佈:2018-10-27
color _id friend 增長 code 方法 spa 全部 join
/* 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的區別