MySql的回顧七:DDL增/刪/改

  連綿不斷的降雨沖洗着四散的灰塵,順便也將樹葉洗的綠油油的。spa

  雨只會越下越小,知識也會越學越少。(在必定範圍)3d

  漫長的查詢過去,今天將帶領讀者們走進DDL語言的大廳,感覺別緻SQL語句吧!code

#DML語言 數據操做語言 插入:INSERT 修改:UPDATE 刪除:DELETE #一.插入語句 #方式一:經典的插入 語法: INSERT INTO 表名(列名,....) VALUES(值1,...) 插入三要素:表名,列名,新值 #1.插入的值的類型要與列的類型一致或兼容 INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'糖稀','女','1990-2-2','18699888880',NULL,2); #photo照片,二進制文件,暫未空

#2.不能夠爲NULL的列必須插入值,能夠爲NULL的列如何插入值? 方式一:用NULL INSERT INTO beauty(id,NAME,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'糖稀','女','1990-2-2','18699888880',NULL,2); #方式二:跳過字段 INSERT INTO beauty(id,NAME,sex,borndate,phone,boyfriend_id) VALUES(14,'河緒','女','1990-2-2','19952111333',9);

#跳過,省略插入 INSERT INTO beauty(id,NAME,sex,phone) VALUES(15,'緒淼','女','13700156035');

#3.列的順序是否能夠調換 INSERT INTO beauty(NAME,sex,id,phone) VALUE('仁忻','女','16','12345');

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

#5.能夠省略列名,默認全部列,並且列的順序和表的順序一致,但要遵照第四點。 INSERT INTO beauty VALUES(17,'李玉婷','女',NULL,'19999999999',NULL,NULL);

#方式二: 語法: INSERT INTO 表名 SET 列名=值,列名=值,... #1.插入 INSERT INTO beauty SET id=19,NAME='凜',phone='119';

#兩種插入方式對比 #1.方式一支持插入多行,方式二不支持 INSERT INTO beauty VALUES(20,'清水','女','1990-5-20','19899990000',NULL,2), (21,'清淼','女','1990-5-20','19899991111',NULL,2), (22,'妙法','女','1210-2-20','19899991111',NULL,2);

 

#2.方式一支持子查詢,方式二不支持 INSERT INTO beauty(id,NAME,phone) SELECT 23,'丹止','12315';

#二:修改語句 1.修改單表的記錄★ 語法: ① UPDATE 表名 ③ SET 列=新值,列=新值... ② WHERE 篩選條件;【若是不加篩選條件,表內全部數據都會被修改】 執行順序①②③ 2.修改多表的記錄【補充】 語法: SQL1992語法 UPDATE 表1 別名,表2 別名 SET 列=值... WHERE 鏈接條件 AND 篩選條件 SQL1999語法 UPDATE 表1 別名 INNER|LEFT|RIGHT JOIN 表2 別名 ON 鏈接條件 SET 列=值,... WHERE 篩選條件; #修改單表的記錄 #案例1.修改beauty表中清開頭的電話爲13322333
UPDATE beauty SET phone='1332233'
WHERE NAME LIKE '清%';
SELECT * FROM beauty;

#案例2.修改boys表中id號爲4的名稱爲伯納德,魅力值200 UPDATE boys SET boyname='伯納德',usercp=200 WHERE id = 4;

#2.修改多表的記錄 #案例1.修改光頭強的朋友的手機號爲116。【1999語法】 UPDATE boys bo INNER JOIN beauty be ON be.boyfriend_id=bo.id SET be.phone='116' WHERE bo.boyName='光頭強';

#案例2.修改沒有男友的女友的男友編號都爲4號。 UPDATE boys bo RIGHT JOIN beauty be ON be.boyfriend_id=bo.id SET be.boyfriend_id=4 WHERE bo.id IS NULL;

#三.刪除語句 方式一:DELETE 語法: 1.單表的刪除★ DELETE FROM 表 WHERE 篩選條件; 2.多表的刪除【補充】 SQL1992語法 DELETE 表1的別名,表2的別名【刪那個表的數據寫那個表,全刪要寫所有】 FROM 表1 別名,表2 別名 WHERE 鏈接條件 AND 篩選條件; SQL1999語法 DELETE 表1的別名,表2的別名 FROM 表1 別名 INNER|LEFT|RIGHT JOIN 表2 別名 ON 鏈接條件 WHERE 篩選條件; 方式二: TRUNCATE 語法: TRUNCATE 表名; #方式一:DELETE #1.單表的刪除 #案例1.刪除手機號以3結尾的女生信息。 DELETE FROM beauty WHERE phone LIKE '%3'; #案例:刪除喜羊羊的朋友信息 DELETE b  #刪哪一個表的信息就寫哪一個表, FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id WHERE bo.boyName='喜羊羊'; #案例:刪除伯納德的信息以及他朋友的信息。【級聯刪除】 DELETE b,bo  #兩張表裏的信息知足條件的都刪除 FROM beauty b INNER JOIN boys bo ON b.boyfriend_id=bo.id WHERE bo.boyName='伯納德'; #方式二:TRUNCATE刪除 #案例:把魅力值>100的男神刪除。 TRUNCATE TABLE boys WHERE userCP>100; #最終結果報錯,TRUNCATE後面不能加WHERE條件。因此通常用來清空整張表的數據。
#刪除一張表內的數據
DELETE FROM boys;

#插入數據,查看ID INSERT INTO boys(boyname,usercp) VALUES('喜羊羊','200'),('灰太狼','150'),('虹貓','300');

先清空表格
TRUNCATE boys;
#插入數據,查看ID

DELETE與TRUNCATE的區別 1.delete 能夠加WHERE 條件,TRUNCATE不能加 2.TRUNCATE刪除,效率高一些 3.假如要刪除的表中有自增加列,若是用DELETE刪除後,再插入數據, 自增加列從斷點開始,而TRUNCATE刪除後,再插入數據,自增加從1開始。 4.TRUNCAT刪除沒有返回值,DELETE刪除有返回值【 Affected rows: 3 三行受影響】。 5.TRUNCATE刪除不能回滾,DELETE刪除能夠回滾。
練習 #1.創建兩個表 CREATE TABLE my_eployees( Id INT(10), First_name VARCHAR(10), Last_name VARCHAR(10), Userid VARCHAR(10), Salary DOUBLE(10,2) ); ================= CREATE TABLE users( id INT, userid VARCHAR(10), department_id INT );

#2.查看錶結構 DESC my_employees; DESC users; #3.插入數據 #方式一: INSERT INTO my_employees VALUES(1,'patel','Ralph','Rpatel',895), (2,'Dancs','Betty','Bdancs',860), (3,'Biri','Ben','Bbiri',1100), (4,'Newman','Chad','Cnewman',750), (5,'Ropeburn','Audrey','Aropebur',1550); DELETE FROM my_employees; #方式二: 子查詢,UNION鏈接成爲一條SQL語句 INSERT INTO my_employees SELECT 1,'patel','Ralph','Rpatel',895 UNION SELECT 2,'Dancs','Betty','Bdancs',860 UNION SELECT 3,'Biri','Ben','Bbiri',1100 UNION SELECT 4,'Newman','Chad','Cnewman',750 UNION SELECT 5,'Ropeburn','Audrey','Aropebur',1550;

#4.插入數據 INSERT INTO users VALUES (1,'Rpatel',10), (2,'Bdancs',10), (3,'Cnewman',20), (4,'Bbiri',30), (5,'Aropebur',40); #5.將3號員工的last_name修改成"drelxer" UPDATE my_employees SET last_name='drelxer' WHERE Id=3;

#6.將全部工資少於900的員工的工資修改成1000 UPDATE my_employees SET Salary=1000 WHERE Salary<900;

#7.將userid爲Bbiri的user表和my_employees表的記錄所有刪除。 DELETE u,m FROM users u INNER JOIN my_employees m ON u.userid=m.Userid WHERE u.userid='Bbiri'; #8.刪除全部數據 DELETE FROM my_employees; DELETE FROM users;

#9.檢查所做的修正 SELECT * FROM my_employees; SELECT * FROM users; #10.清空my_employees TRUNCATE TABLE my_employees; TRUNCATE TABLE users;
相關文章
相關標籤/搜索