国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數(shù)據(jù)庫技術(shù)|

服務(wù)器之家 - 數(shù)據(jù)庫 - Mysql - MySQL基礎(chǔ)教程之DML語句詳解

MySQL基礎(chǔ)教程之DML語句詳解

2022-02-10 17:27持行非就 Mysql

DML 語句是指對數(shù)據(jù)庫中表的記錄進行的操作,下面這篇文章主要給大家介紹了關(guān)于MySQL基礎(chǔ)教程之DML語句的相關(guān)資料,文中通過實例代碼介紹的非常詳細(xì),需要的朋友可以參考下

dml 語句

dml(data manipulation language)語句:數(shù)據(jù)操縱語句。

用途:用于添加、修改、刪除和查詢數(shù)據(jù)庫記錄,并檢查數(shù)據(jù)完整性。

常用關(guān)鍵字:insert、update、delete、select等。

dml 操作的對象是庫表的數(shù)據(jù)(記錄)。

主要包括插入(insert)、更新(update)、刪除(delete)和查詢(select)。

dml 語句是開發(fā)人員使用最頻繁的操作。

1.插入記錄

插入一條記錄

?
1
insert into tablename (field1,field2,...,fieldn) values (value1,value2,...,valuen);

一次性插入多條數(shù)據(jù)

?
1
2
3
4
5
6
7
8
9
insert into tablename
 
 (field1,field2,...,fieldn)
 
values
 
 (value1,value2,...,valuen),
 
 (value1,value2,...,valuen);

2.更新記錄

更新單表數(shù)據(jù)

?
1
update tablename set field1=value1,filed2=value2,...fieldn=valuen [where condition]

同時更新多個表的數(shù)據(jù)

?
1
update t1,t2,...,tn set t1.field1=expr1,tn.field=exprn [where condition];

通常用于根據(jù)一個表的字段來動態(tài)地更新另外一個表的字段

在此說明:中括號 “[ ]” 代表的是可選參數(shù),即可有可無的參數(shù)。

3.簡單查詢記錄

簡單的條件查詢。符號“*”代表查詢所有字段,如果只想看其中某些列,則寫表的列名。

?
1
2
3
select * from tablename [where condition];
 
select field1,field2,...,fieldn from tablename [where condition];

別名

    給列名或表名取別名的關(guān)鍵字:as 或者不寫關(guān)鍵字。如:

?
1
2
3
select field1 as f1,field2 f2  from tablename;
 
select t2.field1 as f1,t1.field2 f2  from table1 as t1,table2 t2;

不取別名,則查詢結(jié)果的列名為表原本的列名;

取別名,則查詢結(jié)果的列名為別名

MySQL基礎(chǔ)教程之DML語句詳解

4.刪除記錄

刪除單表記錄

?
1
delete from tablename [where condition];

同時刪除多個表的數(shù)據(jù)

?
1
delete t1,t2,...,tn from t1,t2,...,tn [where condition];

說明:不加where 條件則刪除全表數(shù)據(jù)

單表“增改查刪”操作案例:

MySQL基礎(chǔ)教程之DML語句詳解

多表“刪除”操作案例:

MySQL基礎(chǔ)教程之DML語句詳解

  再看個刪除案例

MySQL基礎(chǔ)教程之DML語句詳解

 最后再看個刪除案例

MySQL基礎(chǔ)教程之DML語句詳解

多表刪除結(jié)論:

  條件成立,則刪除有條件表的對應(yīng)數(shù)據(jù),沒條件的則全表刪除;

  條件不成立,則都不刪除。

留個疑問:多表刪除不給where 條件會怎樣呢?

關(guān)于同時更新多個表數(shù)據(jù)的操作,可以自行探索,畢竟有思考的學(xué)習(xí)最有價值。

5.查詢記錄詳解(dql語句)

dql(data query language)即數(shù)據(jù)庫查詢語言。

數(shù)據(jù)庫查詢語句就像玩積木一樣,一塊一塊的拼湊,每個中括號“[]”代表一塊積木。

先通過遞進的方式一條一條列出查詢語法。

5.1.查詢不重復(fù)的記錄

?
1
select distinct filed from tablename;

MySQL基礎(chǔ)教程之DML語句詳解

distinct 關(guān)鍵字是對 “查詢結(jié)果集” 去重,再看個例子就明白了。

MySQL基礎(chǔ)教程之DML語句詳解

5.2.條件查詢

?
1
2
3
4
5
6
7
--查詢所有列:
 
select * from tablename [where condition];
 
--查詢指定列:
 
select [field1,field2,...,fieldn] from tablename [where condition];

常用的條件(condition)

等于:field = xxx

大于:field > xxx

小于:field < xxx

不等于:field != xxx

不等于:field <> xxx

等于null:field is null

不等于null:field is not null

多個條件之間用邏輯運算符:and 和 or 

模糊查詢之"_":field like _x_xx_     符號"_"代表匹配單個任意字符,可以在你喜歡的字符旁加上"_"

模糊查詢之"%":field like %x%xx%     符號"%"代表匹配0~n個任意字符,可以在你喜歡的字符旁加上"%"

in語句查詢:field in(value1,value2,...)  查詢field 和 in 數(shù)組配得上的,不配就沒有數(shù)據(jù)

not in語句查詢:field not in(value1,value2,...)   查詢field 和 in 數(shù)組配不上的,不配就有數(shù)據(jù)

其它常用條件具體怎么用,參考常用條件去操作。

MySQL基礎(chǔ)教程之DML語句詳解

5.3.聚合查詢

?
1
2
3
4
5
6
7
--最簡單的聚合查詢:
select [field1,field2,...,fieldn] fun_name from tablename group by field;
--完整語法:
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition];

說明:

fun_name  表示聚合函數(shù),常用有:求和sum()、記錄數(shù)count(*)、平均值avg()、最大值max()、最小值min();

[where condition] 就是上面講的條件查詢;

[group by field1,field2,...,fieldn [with rollup]] 

  group by 關(guān)鍵字表示對field字段進行分類聚合;

  with rollup 關(guān)鍵字表示是否對分類聚合后的結(jié)果進行再匯總

[having condition] 對分類聚合后的查詢結(jié)果集進行條件的過濾

where 和 having 的區(qū)別:

  1. where 是分組前的條件過濾;having 是分組后的條件過濾。
  2. where 是用原表列名做條件過濾;having 是用查詢結(jié)果集列名做條件過濾。

    優(yōu)先選擇where 條件過濾,這樣可以減少結(jié)果集,進而提高分類聚合的效率。

中括號"[]"代表可選的意思,也就是說group by 前面的[where condition] 可有可無,后面的[with rollup] 和 [having condition] 也是可有可無。

group by 和distinct 的區(qū)別:    group by 是對指定列進行分組;distinct 是對查詢結(jié)果進行去重。

MySQL基礎(chǔ)教程之DML語句詳解

加入where 和 having的例子:

MySQL基礎(chǔ)教程之DML語句詳解

列名為avg(stu_age) 看著有點怪怪,給他取個別名就一目了然:

MySQL基礎(chǔ)教程之DML語句詳解

5.4.排序查詢

?
1
2
3
4
5
6
7
8
9
--最簡單的排序查詢:
select * from tablename order by field;
--完整語法:
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition]
 [order by field1 [desc|asc], field2 [desc|asc],...,fieldn [desc|asc]];
desc 代表降序(從大到小);asc 代表升序(從小到大),asc為默認(rèn)排序。也就是說你只要記住desc 就可以了。碰巧的是desc 是查詢表設(shè)計的關(guān)鍵字,而且語法很簡單:desc tablename;

單列排序:

MySQL基礎(chǔ)教程之DML語句詳解

多列排序:用符號 “,” 隔開即可

MySQL基礎(chǔ)教程之DML語句詳解

5.5.limit查詢

  又稱為限制查詢、范圍查詢、分頁查詢

?
1
2
3
4
5
6
7
8
9
--最簡單的limit查詢:offset_start和數(shù)組下標(biāo)一樣,從0開始算
select * from tablename limit offset_start,row_count;
--完整語法:這條sql是單表查詢的完整版
select [field1,field2,...,fieldn] fun_name from tablename
 [where condition]
 [group by field1,field2,...,fieldn [with rollup]]
 [having condition]
 [order by field1 [desc|asc], field2 [desc|asc],...,fieldn [desc|asc]]
 [limit offset_start,row_count];

例子1:從第1條開始,查詢兩條數(shù)據(jù)

例子2:從第2條開始,查詢兩條數(shù)據(jù)

MySQL基礎(chǔ)教程之DML語句詳解

=========================

= 以上就是關(guān)于單表查詢的語法 =

= 以下則是關(guān)于兩表聯(lián)查的語法 =

=========================

5.6.連表查詢

在需要關(guān)聯(lián)多個表數(shù)據(jù)時使用。 學(xué)習(xí)左連接和內(nèi)連接即可。

左連接:選出左表所有的記錄,不管右表有沒有和它匹配;左表是主,關(guān)聯(lián)右表信息

?
1
select * from t1 left join t2 on t1.field1=t2.field2;

內(nèi)連接:僅選出兩張表中互相匹配的記錄,沒有匹配則結(jié)果為空

?
1
2
3
select * from t1 inner join t2 on t1.field1=t2.field2;
 
select * from t1,t2 where t1.field1=t2.field2;

MySQL基礎(chǔ)教程之DML語句詳解

5.7.子查詢

在需要另外一個查詢結(jié)果作為查詢條件時使用。子查詢用“()” 括起來。

如:查詢學(xué)生“張三”的成績

MySQL基礎(chǔ)教程之DML語句詳解

某些情況下,子查詢可以轉(zhuǎn)化為連表查詢。如上面的例子可以寫成連表查詢:

MySQL基礎(chǔ)教程之DML語句詳解

5.8.記錄聯(lián)合

 將兩個過多個表的查詢結(jié)果合并成結(jié)果集輸出。合并的條件是多個表的查詢結(jié)果字段數(shù)要相同,注意是查詢結(jié)果字段數(shù)不是表字段數(shù)。

?
1
2
3
4
5
6
7
8
9
10
11
select f1,f2,...,fn from t1
 
union/union all
 
select f1,f2,...,fn from t2
 
...
 
union/union all
 
select f1,f2,...,fn from tn

MySQL基礎(chǔ)教程之DML語句詳解

查詢結(jié)果字段數(shù)不等,則報錯

MySQL基礎(chǔ)教程之DML語句詳解

固定查詢結(jié)果集字段數(shù)

MySQL基礎(chǔ)教程之DML語句詳解

5.9.select語句的執(zhí)行順序

自行證明該執(zhí)行順序是否正確,也算是對前面所學(xué)知識的一個鞏固。?

(7)  select 

(8)  distinct <select_list>

(1)  from <left_table>

(3)  <join_type> join <right_table>

(2)  on <join_condition>

(4)  where <where_condition>

(5)  group by <group_by_list>

(6)  having <having_condition>

(9)  order by <order_by_condition>

(10) limit <limit_number>?

6.總結(jié)

到此為止,關(guān)于日常操作最為頻繁的表數(shù)據(jù)的插入(insert)、更新(update)、刪除(delete)和查詢(select)語句就講完了。最為繁雜的查詢語句,又名為dql語句,是dml語句中的重點。

到此這篇關(guān)于mysql基礎(chǔ)教程之dml語句的文章就介紹到這了,更多相關(guān)mysql基礎(chǔ)之dml語句內(nèi)容請搜索服務(wù)器之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持服務(wù)器之家!

原文鏈接:https://www.cnblogs.com/dennyLee2025/p/15699198.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 色视在线 | 亚洲欧洲一区二区三区 | 久久男人 | 九九av| 色狠狠一区 | 日本一区二区高清不卡 | 久久视频精品 | 精品一区二区三区成人精品 | 国产日韩一级片 | 另类久久 | 成人片免费看 | 亚洲乱码国产乱码精品精98午夜 | 狠狠艹av | 亚洲欧美日韩精品久久亚洲区 | 一区二区三区免费播放 | 一区二区三区中文字幕 | 久久女人 | av日韩在线播放 | 免费激情网站 | 一区二区三区在线 | 春色导航 | 久久精品国语 | 日韩欧美综合 | 成人精品视频在线 | 久久久成人精品 | 久久久久久久久久久精 | 天天射天天干 | 国内外精品一区二区三区 | 欧美一级毛片日韩一级 | 欧美成在线视频 | 精品国产欧美一区二区三区成人 | 日韩码有限公司在线观看 | 精品在线一区 | 日精品| 久久性色| 在线免费看黄视频 | 国产精品久久久亚洲 | 日本高清视频在线播放 | 国产精品无码永久免费888 | 日韩成人av在线 | 午夜影院啊啊啊 |