DML語言

DML語言
/*
數據操作語言
插入:insert
修改:update
刪除:delete

*/

#一、插入語句
#方式一:經典的插入
/
語法:
insert into 表名(列名, ... ) values(值1, ...);
/

#1.插入的值的類型要與列的類型一致或兼容
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'haha','女','1990-4-23','123456789',NULL,2);

#2.不可以爲null的列必須插入值。可以爲NULL的列如何插入值?
#方式一:
INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id)
VALUES(13,'haha','女','1990-4-23','123456789',NULL,2);

#方式二:
INSERT INTO beauty(id,name,sex,borndate,phone,boyfriend_id)
VALUES(13,'haha','女','1990-4-23','123456789',2);

#3.列的順序是否可以調換 yes
INSERT INTO beauty(name,sex,id, phone)
VALUES('asd','nv',12,'134');

#4.列數和值的個數必須一致

#5.可以省略列名,默認所有列,而且列的順序和表中列的順序一致
INSERT INTO beauty
VALUES(13,'haha','女','1990-4-23','123456789',NULL,2);

#方式二
/
語法:
insert into 表名
set 列名=值, 列名=值, ...
/

#1.
INSERT INTO beauty
SET id=19, name = 'faf', phone = '1231';

#兩種方式大pk
#1.方式一支持插入多行,方式二不支持
INSERT INTO beauty
VALUES(13,'haha','女','1990-4-23','123456789',NULL,2),
(14,'haha','女','1990-4-23','123456789',NULL,2),
(15,'haha','女','1990-4-23','123456789',NULL,2);

#2.方式一支持子查詢,方式二不支持
INSERT INTO beauty(id , name, phone)
SELECT 45,'ha','154633';

#二、修改語句
/*
1.修改單表的記錄
語法:
update 表名
set 列 = 新值, 列 = 新值, ...
where 篩選條件;

2。修改多表的記錄【補充】
語法:
sql92語法
update 表1 別名, 表2 別名
set 列 = 值, ...
where 連接條件
and 篩選條件;

sql99語法
update 表1 別名
inner|left|right join 表2 別名
on 連接條件
set 列 = 值, ...
where 篩選條件;
*/

#1.修改單表的記錄
UPDATE beauty
SET phone = '57938427'
WHERE name LIKE 'ha';

#2.修改多表的記錄
#修改張無忌的女朋友的手機號爲114
UPDATE boys bo
INNER JOIN beauty b
ON bo.id = b.boyfriend_id
SET b.phone = '114'
WHERE bo.boyName = '張無忌';

#三、刪除語句
/*
方式一:delete
語法:
1.單表的刪除
delete from 表名 where 篩選條件

2.多表的刪除【補充】
sql92
delete 表1的別名, 表2的別名
from 表1 別名, 表2 別名
where 連接條件
and 篩選條件;

sql99語法:
delete 表1的別名, 表2的別名
from 表1 別名
inner|left|right 表2 別名
on 連接條件
where 篩選條件;

方式二:truncate
語法: truncate table 表名;
*/

#方式一:delete
#1.單表的刪除
#案例1:刪除手機號以9結尾的女神信息
DELETE FROM beauty WHERE phone LIKE '%9';

#2.多表的刪除
#案例:刪除張無忌的女朋友的信息
DELETE b
FROM beauty b
INNER JOIN boys bo
ON b.boyfriend_id = bo.id
WHERE bo.boyName = '張無忌';

#方式二:truncate語句
#案例:將魅力值>100的男神信息刪除
TRUNCATE TABLE boys; //清空 不能添加篩選條件

#delete vs truncate
#1.delete 可以添加where條件,truncate不能
#2.truncate刪除,效率高
#3.假如要刪除的表中有自增長列,如果用delete刪除後,再插入數據,自增長列的值從斷點開始,而truncate刪除後,再插入數據,自增長列的值從1開始
#4.truncate刪除沒有返回值,delete刪除有返回值
#5.truncate刪除不能回滾,delete刪除可以回滾

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章