1. 程式人生 > 其它 >MySQL——DML資料增、刪、改

MySQL——DML資料增、刪、改

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)

【說明】

  1. 要求值的型別和欄位的型別一致或相容
  2. 欄位的個數和順序可以與原始表中的欄位個數和順序不一致,但必須保證值和欄位的型別一一對應
  3. 假如表中有可以為null的欄位,可以通過以下兩種方式插入null值
    ①欄位和值都省略
    ②欄位寫上,值使用null
  4. 欄位和值的個數必須一致
  5. 欄位名可以省略,預設所有列,且順序與預設順序相同
  6. 字元和日期型資料應包含在單引號

方式二

語法:

insert into 表名 set 欄位=值,欄位=值,...;

兩種方式的區別:

  1. 方式一支援一次插入多行,方式二不支援
  2. 方式一支援子查詢,即從其他表中拷貝資料,方式二不支援

修改

修改單表的記錄 (重點)

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 表名

兩種方式的區別【面試題】★

  1. truncate刪除後,如果再插入,標識列從1開始; delete刪除後,如果再插入,標識列從斷點開始
  2. delete可以新增篩選條件,truncate不可以新增篩選條件
  3. truncate效率較高
  4. truncate沒有返回值,delete可以返回受影響的行數
  5. truncate不可以回滾,delete可以回滾