1. 程式人生 > >DML -- 數據操縱預言: insert/delete/update --多表連接修改/.多表連接刪除/多表連接查詢-- truncate 和 delete的區別

DML -- 數據操縱預言: insert/delete/update --多表連接修改/.多表連接刪除/多表連接查詢-- truncate 和 delete的區別

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的區別