插入
插入方式一語法
insert into 表名(字段名/列名,...)
values(值1,...);
特色
#1.字段類型和值類型一致或兼容,並且一一對應(插入的值的類型要與列的類型一致或兼容)
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(13,'唐藝昕','女','1990-4-23','1898888888',NULL,2);
SELECT *
FROM beauty
#2.不能夠爲null的列必須插入值,能夠爲空的字段,能夠不用插入值,或用null填充
#用null填充
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(13,'唐藝昕','女','1990-4-23','1898888888',NULL,2);
#不插入
INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id)#直接刪去photo,沒有輸入的會自動輸入默認值
VALUE(14,'金星','女','1990-4-23','1398888888',2);
#3.列的順序能夠調換,須要一一對應
INSERT INTO beauty(NAME,sex,id,phone)
VALUES('蔣欣','女',16,'110')
#4.列數和值的個數必須一致
INSERT INTO beauty(NAME,sex,id,phone,boyfriend_id)
VALUES('關曉彤','女',17,'110');#會報錯,列數和值的個數不一致
#5.能夠省略列名,默認全部列,並且列的順序和表中的順序一致
INSERT INTO beauty
VALUES(18,'張飛','男',NULL,'119',NULL,NULL);
插入方式二語法
insert into 表名(字段名/列名,...)
set 列名=值,列名=值,...
INSERT INTO beauty
SET id=19,NAME='劉濤',phone=999
兩種方式pk
#1.方式一支持插入多行,方式二不支持
INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id)
VALUE(23,'唐藝昕1','女','1990-4-23','1898888888',NULL,2),(24,'唐藝昕2','女','1990-4-23','1898888888',NULL,2),(25,'唐藝昕3','女','1990-4-23','1898888888',NULL,2);
#2.方式一支持子查詢,方式二不支持
insert into beauty(id,name,phone)
select 26,'宋茜','11809866';
修改
修改單表語法(重點)
update 表名
set 字段=新值,字段=新值;
【where 篩選條件】
#案例1 修改beauty表中姓唐的女神的電話爲13899888899
UPDATE beauty
SET phone='13899888899'
WHERE NAME LIKE'唐';
#案例2 修改boys表中的id號爲2的名稱爲張飛,魅力值爲10
UPDATE boys
SET boyname='張飛',usercp=10
WHERE id=2;
修改多表語法(補充用,量力而爲)
#92語法
update 表1 別名1,表2 別名2
set 字段=新值,字段=新值
where 鏈接條件
and 篩選條件
#99語法
update 表1 別名1
inner/left/right joiin 表2 別名2
on 鏈接條件
set 列=新值,列=新值
where 篩選條件
and 篩選條件
#案例1:修改張無忌的女友手機號爲114
UPDATE boys bo
INNER JOIN beauty b
ON bo.id=b.`boyfriend_id`
SET b.`phone`='114'
WHERE bo.`boyName`='張無忌'
#案例2:修改沒有男友的女神的男友編號都爲2號
UPDATE boys bo
RIGHT JOIN beauty b
ON bo.`id`=b.`boyfriend_id`
SET b.`boyfriend_id`=2
WHERE b.`id` IS NULL;
刪除
方式1:delete語句
單表的刪除 ★
delete
from 表名
【where 篩選條件】
#案例1 刪除手機號以9結尾的女神信息
DELETE
FROM beauty
WHERE phone LIKE'%9';
多表的刪除
#92語法
delete 別名1,別名2
from 表1 別名1,表2 別名2
where 鏈接條件
and 篩選條件;
#99語法
delete 表1的別名,表2的別名
from 表1 別民
inner/left/right join 表2 別名
on 鏈接條件
where 篩選條件
#案例1:刪除張無忌的女友的信息
DELETE b
FROM beauty b
INNER JOIN boys bo
ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='張無忌'
#案例2:刪除黃曉明的信息以及他女友的信息
DELETE b,bo
FROM beauty b
INNER JOIN boys bo
ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='黃曉明';
方式2:truncate語句
truncate table 表名#所有表的數據都刪除
#案例:將魅力值>100的男神信息刪除
TRUNCATE TABLE boys;#實際上這樣行不通, truncate table不能加where,只能全刪
兩種方式的區別【面試題】
#1.truncate不能加where條件,而delete能夠加where條件
#2.truncate的效率高一丟丟
#3.truncate 刪除帶自增加的列的表後,若是再插入數據,數據從1開始(truncate 刪除再插入能夠理解爲刪除後建立新表)
#delete 刪除帶自增加列的表後,若是再插入數據,數據從上一次的斷點處開始(delete 刪除再插入能夠理解爲刪除後續表)
#4.truncate刪除沒有返回值,delete刪除有返回值,告訴你有多少行受影響)
#5. truncate刪除不能回滾,delete刪除能夠回滾