一文帶你學(xué)透SQL語(yǔ)言的核心之DML操作
我們已經(jīng)基本學(xué)會(huì)了寫(xiě)SQL來(lái)操作數(shù)據(jù)庫(kù),但在命令行中寫(xiě)SQL時(shí),往往有體驗(yàn)感差,效率低等問(wèn)題,今天開(kāi)始我們就學(xué)習(xí)一下在MySQL的圖形化客戶端Navicat中執(zhí)行SQL語(yǔ)句
。
Navicat 為數(shù)據(jù)庫(kù)管理、開(kāi)發(fā)和維護(hù)提供了一款直觀而強(qiáng)大的圖形界面,大大的提高了工作效率,建議在學(xué)習(xí)中也使用這款開(kāi)發(fā)工具。接下來(lái),在Navicat中新建查詢,我們就可以編寫(xiě)SQL并且執(zhí)行SQL語(yǔ)句了。
1.添加數(shù)據(jù)
給指定列添加數(shù)據(jù):
insert into 表名(列名1,列名2...) values(值1,值2...);
?????給全部列添加數(shù)據(jù):
insert into 表名 values(值1,值2...);
批量添加數(shù)據(jù):
insert into 表名(列名1,列名2...) values(值1,值2...),(值1,值2...),(值1,值2...)...;
批量添加數(shù)據(jù)(省略字段名):
insert into 表名 values(值1,值2...),(值1,值2...),(值1,值2...)...;
在開(kāi)發(fā)過(guò)程中添加數(shù)據(jù)的時(shí)間是不建議省略字段名的,這樣降低了代碼的可讀性,使效率下降。下面是添加數(shù)據(jù)的小案例:
查詢表中的所有數(shù)據(jù)的方法是:
select * from 表名;
后面會(huì)用到的。
需求:往下面的tb_user
表中添加一條數(shù)據(jù)。
insert into tb_user(id,name) values(2,'李四');
添加成功:
2.修改數(shù)據(jù)
修改表的數(shù)據(jù):
update 表名 set 列名1=值1,列名2=值2...[where 條件];
在修改數(shù)據(jù)時(shí),也可以不使用where條件,此時(shí)的操作是修改整列數(shù)據(jù),這樣的操作是很危險(xiǎn)的。
需求:把下面tb_user
表中的張三的密碼改為abc23
update tb_user set passwor d ='abc123' where name='張三';
修改成功:
3.刪除數(shù)據(jù)
刪除表的數(shù)據(jù):
delete from 表名 [where 條件];
在刪除某條數(shù)據(jù)時(shí),如果不使用where條件,將會(huì)導(dǎo)致刪除整個(gè)表的數(shù)據(jù)。
需求:刪除tb_user表中的李四記錄。
delete from tb_user where name='李四';
操作成功:
4.查詢數(shù)據(jù)
下面給出一些SQL語(yǔ)言的DML查詢數(shù)據(jù)的例子:
- 查詢student表中所有數(shù)據(jù)
SELECT * FROM student;
- 查詢student表中所有年齡大于等于18歲的學(xué)生數(shù)據(jù)
SELECT * FROM student WHERE age >= 18;
- 查詢student表中男生(gender為’男’)的平均年齡
SELECT AVG(age) FROM student WHERE gender = '男';
- 查詢student表中年齡最大的學(xué)生的信息
SELECT * FROM student WHERE age = (SELECT MAX(age) FROM student);
- 查詢student表中,各性別(gender)的學(xué)生數(shù)量
SELECT gender, COUNT(*) FROM student GROUP BY gender;
- 查詢student表中,年齡排名前三的學(xué)生的姓名和年齡
SELECT name, age FROM ( SELECT name, age, RANK() OVER (ORDER BY age DESC) AS rank FROM student ) AS tbl WHERE rank <= 3;
上面這些例子涉及到了查詢?nèi)繑?shù)據(jù)、條件查詢、聚合函數(shù)、子查詢、分組和排序等多種查詢方式。在實(shí)際應(yīng)用中,可根據(jù)需要選擇不同的查詢方式來(lái)獲取所需的數(shù)據(jù)。
5.注意事項(xiàng)
- 在學(xué)習(xí)DML操作時(shí),需要注意以下幾點(diǎn):
- 注意SQL語(yǔ)句的語(yǔ)法和格式,不要犯錯(cuò)。
- 在進(jìn)行數(shù)據(jù)修改操作時(shí),一定要謹(jǐn)慎,尤其是DELETE語(yǔ)句,一定要確認(rèn)數(shù)據(jù)刪除的范圍和內(nèi)容。
- 在進(jìn)行數(shù)據(jù)查詢操作時(shí),要明確查詢的條件和要檢索的列名,以避免不必要的查詢負(fù)擔(dān)。
- 在進(jìn)行復(fù)雜查詢操作時(shí),要深入理解SQL語(yǔ)言的實(shí)現(xiàn)原理和查詢優(yōu)化技術(shù),以提高數(shù)據(jù)操作效率和質(zhì)量。
6.總結(jié)
學(xué)習(xí)DML操作是學(xué)習(xí)數(shù)據(jù)操作的重要基礎(chǔ)步驟,只有熟練掌握并靈活運(yùn)用DML操作,才能更好地管理和利用數(shù)據(jù)。
到此這篇關(guān)于一文帶你學(xué)透SQL語(yǔ)言的核心之DML操作的文章就介紹到這了,更多相關(guān)SQL語(yǔ)言之DML操作內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
MySql如何查看索引并實(shí)現(xiàn)優(yōu)化
這篇文章主要介紹了MySql如何查看索引并實(shí)現(xiàn)優(yōu)化,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-12-12MySQL數(shù)據(jù)庫(kù)子查詢?sub?query
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)子查詢?sub?query,子查詢指嵌套查詢下層的程序模塊,當(dāng)一個(gè)查詢是另一個(gè)查詢的條件的時(shí)候,更多相關(guān)內(nèi)容需要的小伙伴可以參考一下下面文章內(nèi)容介紹2022-06-06詳解MySQL誤操作后怎樣進(jìn)行數(shù)據(jù)恢復(fù)
在大家日常操作數(shù)據(jù)庫(kù)時(shí)候難免會(huì)因?yàn)椤按笠狻倍`操作,那么誤操作后怎樣進(jìn)行數(shù)據(jù)恢復(fù)呢,下面跟著小編一起來(lái)學(xué)習(xí)學(xué)習(xí)。2016-08-08MySQL一次性創(chuàng)建表格存儲(chǔ)過(guò)程實(shí)戰(zhàn)
這篇文章主要介紹了MySQL一次性創(chuàng)建表格存儲(chǔ)過(guò)程實(shí)戰(zhàn),文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的朋友可以參考一下2022-07-07一文帶你理解MySql中explain結(jié)果filtered
使用EXPLAIN關(guān)鍵字可以模擬優(yōu)化器執(zhí)行SQL查詢語(yǔ)句,從而知道MySQL是如何處理你的SQL語(yǔ)句的,下面這篇文章主要給大家介紹了關(guān)于MySql中explain結(jié)果filtered的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-09-09MySQL數(shù)據(jù)庫(kù)遭到攻擊篡改(使用備份和binlog進(jìn)行數(shù)據(jù)恢復(fù))
這篇文章主要介紹了MySQL數(shù)據(jù)庫(kù)遭到攻擊篡改(使用備份和binlog進(jìn)行數(shù)據(jù)恢復(fù)),需要的朋友可以參考下2016-04-04