MySQL——DML資料增、刪、改
阿新 • • 發佈:2021-07-15
DML(Data Manipulation Language –資料操縱語言)
插入
方式一(經典)
語法:
insert into 表名(列名,...) values(值,...);
若要一次插入多行
create table if NOT EXISTS user(
name VARCHAR(20),
sex VARCHAR(2),
age INT
)
INSERT INTO `user` VALUES('丸子','male',23),('莉香','female',22)
【說明】
- 要求值的型別和欄位的型別一致或相容
- 欄位的個數和順序可以與原始表中的欄位個數和順序不一致,但必須保證值和欄位的型別一一對應
- 假如表中有可以為null的欄位,可以通過以下兩種方式插入null值
①欄位和值都省略
②欄位寫上,值使用null - 欄位和值的個數必須一致
- 欄位名可以省略,預設所有列,且順序與預設順序相同
- 字元和日期型資料應包含在單引號
方式二
語法:
insert into 表名 set 欄位=值,欄位=值,...;
兩種方式的區別:
- 方式一支援一次插入多行,方式二不支援
- 方式一支援子查詢,即從其他表中拷貝資料,方式二不支援
修改
修改單表的記錄 (重點)
update 表名 set 欄位=值,欄位=值 where 篩選條件;
修改多表的記錄【補充】
update 表1 別名 left|right|inner join 表2 別名 on 連線條件 set 欄位=值,欄位=值 where 篩選條件;
案例
#修改張無忌的女朋友的手機號為114
UPDATE boys bo
INNER JOIN beauty b ON bo.id=b.boyfriend_id
SET b.phone='119',bo.userCP=1000
WHERE bo.boyName='張無忌';
刪除
方式一:delete
刪除單表的記錄★
語法:
delete from 表名 where 篩選條件 limit 條目數
注意:使用 WHERE 子句 刪除指定的記錄。如果省略 WHERE 子句,則表中的全部資料將被刪除
多表級聯刪除[補充]
語法:
delete 別名1,別名2 from 表1 別名 inner|left|right join 表2 別名 on 連線條件 where 篩選條件
方式二:truncate
語法:
truncate table 表名
兩種方式的區別【面試題】★
- truncate刪除後,如果再插入,標識列從1開始; delete刪除後,如果再插入,標識列從斷點開始
- delete可以新增篩選條件,truncate不可以新增篩選條件
- truncate效率較高
- truncate沒有返回值,delete可以返回受影響的行數
- truncate不可以回滾,delete可以回滾