日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)

發(fā)布時間:2024/7/5 数据库 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

DML語言

數(shù)據(jù)操作語言:

  • 插入:insert
  • 修改:update
  • 刪除:delete

一、插入語句

(1)方式一:經(jīng)典的插入方式
語法:
insert into 表名(列名,…)values(值1,…);

(2)方式二:
語法:
insert into 表名
set 列名=值,列名=值,…

兩種方式大PK:
1、方式一 支持一次性插入多行數(shù)據(jù),但方式二不支持
2、方式一支持子查詢,但方式二不支持

# 一、插入語句# (1)方式一:經(jīng)典的插入方式 # 語法: # insert into 表名(列名,...)values(值1,...);# 1.插入的值的類型要與列的類型一致或者兼容 INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'唐藝昕','女','1990-4-23','18988888888',null,2); SELECT * FROM beauty;# 2.不可以為null的列必須插入值,但是可以為null的列如何才能達(dá)到不插入值的目的?# 方法一:該列對應(yīng)的值用null填充。例如 phone 列,為其 賦值為null INSERT INTO beauty(id,name,sex,borndate,phone,photo,boyfriend_id) VALUES(13,'唐藝昕','女','1990-4-23','18988888888',null,2);# 方法二:干脆直接不寫列名,省略該列名和該列對應(yīng)的值。例如 直接將photo列名去掉 INSERT INTO beauty(id,name,sex,borndate,phone,boyfriend_id) VALUES(14,'金星','女','1990-4-23','13888888888',9);# 3. 列的順序可以調(diào)換,列數(shù)和值的個數(shù)必須保持一致,否則會報錯 INSERT INTO beauty(name,sex,id,phone) VALUES('蔣欣','女',16,'110');# 4. 可以省略列名,默認(rèn)列名是所有列,并且列名的順序和表中列名的順序一致 INSERT INTO beauty VALUES(18,'張飛','男',NULL,'119',NULL,NULL);# (2)方式二: # 語法: # insert into 表名 # set 列名=值,列名=值,...INSERT INTO beauty SET id=19,name='劉濤',phone='999'; SELECT * FROM beauty;# 兩種方式PK # 1、方式一 支持一次性插入多行數(shù)據(jù),但方式二不支持 INSERT INTO beauty VALUES(23,'唐藝昕1','女','1990-4-23','18988888888',null,2) ,(24,'唐藝昕2','女','1990-4-23','18988888888',null,2) ,(25,'唐藝昕3','女','1990-4-23','18988888888',null,2) ,(26,'唐藝昕4','女','1990-4-23','18988888888',null,2);# 2、方式一支持子查詢,但方式二不支持 INSERT INTO beauty(id,NAME,phone) SELECT 35,'宋茜1','118098661';# 此處會報錯,報錯原因為id在表中被設(shè)置成了主鍵 INSERT INTO beauty(id,NAME,phone) SELECT id, boyname ,'118098661' FROM boys WHERE id<3;

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

2.修改多表的記錄【補充】
語法:

sql 92語法:
update 表1別名,表2別名set 列=值,.….
where 連接條件
and 篩選條件;

sql 99語法:
update 表1別名
inner/left/right join 表2 別名
on連接條件
where 篩選條件;

#1.修改單表的記錄 #【案例1】 修改beauty表中姓唐的女神的電話為1389999999 UPDATE beauty SET phone='1389999999' WHERE name LIKE '唐%';SELECT * FROM beauty;#案例2:修改boys表中id好為2的名稱為張飛,魅力值10 UPDATE boys SET boyname='張飛',usercp=10 WHERE id=2;SELECT * FROM boys;# 2.修改多表的記錄# 【案例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 bo.id IS NULL;SELECT * FROM beauty;

三、刪除語句

方式一:delete
注意:
1、如果不加where篩選條件的話,delete會刪除整張表中的數(shù)據(jù)(保留表的結(jié)構(gòu))
2、并且delete會記錄日志,意味著刪除后的數(shù)據(jù)還可以恢復(fù),但是效率低。

語法:
1、單表的刪除
delete from 表名
where 篩選條件;

2、多表的刪除【補充】

sql 92語法:
delete表1的別名,表2的別名
from表1 別名,表2 別名
where 連接條件
and 篩選條件;

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

方式二: truncate

語法:truncate table 表名;

注意:
1、truncate不會記錄日志,刪除后的數(shù)據(jù)不能恢復(fù),但是效率高;truncate不能用于有外鍵約束引用的表。
2、truncate語句后面不允許加篩選條件

#delete pk truncate:

1.delete 可以加where條件,truncate不能加
2.truncate刪除,效率高一丟丟
3.假如要刪除的表中有自增長列,如果用delete刪除后,再插入數(shù)據(jù),自增長列的值從斷點開始,而truncate刪除后,再插入數(shù)據(jù),自增長列(比如索引)的值從1開始。
4.truncate 刪除后沒有返回值,而delete刪除后有返回值(比如:刪除了幾行數(shù)據(jù))
5.truncate 刪除不能回滾,delete刪除可以回滾

# 方式一:delete # 1、單表的刪除 # 【案例1】 刪除手機號以9結(jié)尾的女神信息 DELETE FROM beauty WHERE phone LIKE '%9';SELECT * FROM beauty;# 2、多表的刪除 # 【案例2】 刪除張無忌的女朋友的信息 DELETE b FROM beauty b LEFT JOIN boys bo ON b.boyfriend_id = bo.id WHERE bo.boyName = '張無忌';# 【案例3】 刪除黃曉明的信息以及他的女朋友的信息(級聯(lián)刪除) DELETE b,bo FROM beauty b INNER JOIN boys bo ON b.boyfriend_id = bo.id WHERE bo.boyName = '黃曉明';# 方式二:truncate語句# 【案例】 將魅力值 > 100 的男神信息刪除 TRUNCATE TABLE boys;

數(shù)據(jù)的插入修改刪除強化練習(xí):

# 數(shù)據(jù)的插入修改刪除強化練習(xí) # 1、運行以下腳本創(chuàng)建表 my_employees USE myemployees; CREATE TABLE my_employees(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. 顯示表my_employees的結(jié)構(gòu) DESC my_employees;#3. 向my_employees表中插入下列數(shù)據(jù) ID FIRST_NAME LAST_NAME USERID SALARY 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#方式一: 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;#方式二: 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. 向users表中插入數(shù)據(jù) 1 Rpatel 10 2 Bdancs 10 3 Bbiri 20 4 Cnewman 30 5 Aropebur 40INSERT INTO users VALUES(1,'Rpatel',10), (2,'Bdancs',10), (3,'Bbiri',20);#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,e FROM users u JOIN my_employees e ON u.`userid`=e.`Userid` WHERE u.`userid`='Bbiri';#8.刪除所有數(shù)據(jù) DELETE FROM my_employees; DELETE FROM users;#9.檢查所作的修正 SELECT * FROM my_employees; SELECT * FROM users;#10.清空表my_employees TRUNCATE TABLE my_employees; 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎

總結(jié)

以上是生活随笔為你收集整理的六、MySQL DML数据操纵语言学习笔记(插入、修改、删除详解 + 强化复习)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。