Mysql學(xué)習(xí)之?dāng)?shù)據(jù)庫檢索語句DQL大全小白篇
1.簡單檢索數(shù)據(jù)
博客內(nèi)容中student表為:

1.1.檢索單個(gè)列
select + 列名 + from + 表名
1.2.檢索多個(gè)列
select + 列名1,列名2,列名3......列n + from + 表名
1.3.檢索所有列
select + *(表示通配符) +from + 表名
1.4.檢索不同的行
使用distinct關(guān)鍵字
select + distinct + 列名 + from + 表名
舉個(gè)例子:我們想要查詢一個(gè)班級學(xué)生的性別有多少種,那么就不需要把每一個(gè)同學(xué)的性別都顯示出來,只需要把不同性別顯示出來就行即distinct返回唯一值
這里有一個(gè)注意點(diǎn),distinct關(guān)鍵字應(yīng)用于所有列前,不僅僅是前置它的列,如果給出兩個(gè)列,那么除非指定的兩個(gè)列都不同,否則所有的行都會(huì)被檢測出來
1.5.限制檢索結(jié)果
使用limit關(guān)鍵字
selet + 列名 + from + 表名 + limit + 數(shù)字
我們平時(shí)select語句返回匹配的行數(shù),我們可以使用limit來限定返回的行數(shù),比如select結(jié)果可以返回10行,我們只要前5行,那么就可以使用limit后邊參數(shù)為5,如果select返回4行,而limit限制的是5行,那么會(huì)返回4行。當(dāng)然limit后邊的參數(shù)可以有兩個(gè),有兩種寫法
即:
1.selet + 列名 + from + 表名 + limit + 數(shù)字1,數(shù)字2
2.selet + 列名 + from + 表名 + limit + 數(shù)字2 + offset + 數(shù)字1
意思是從數(shù)字1所代表的行數(shù)開始,檢索數(shù)字2行,第二種寫法是在MySQL5之后才支持的
注意檢索的第一行為行0,而不是1
1.6.使用完全限制的表名檢索
select + 表名.列名 + from + 數(shù)據(jù)庫名.表名
2.排序檢索數(shù)據(jù)
2.1.基本語法
使用order by關(guān)鍵字
select + 列名(可以多個(gè)列) + from + 表名 + order by + 列名
兩個(gè)列名可以不一樣
我們?nèi)粘6伎梢詫T工的工資進(jìn)行排序,但是有的員工工資一樣,這樣我們可以在員工工資一樣的基礎(chǔ)上對年齡等進(jìn)行排序,這就是按照多個(gè)列進(jìn)行排序
即:
select + 列名(可以多個(gè)列) + from + 表名 + order by + 列1,列2
意思是在列1一致的情況下按照列2進(jìn)行排序,如果列1不一致那么就不會(huì)按照列2排序
2.2.指定排序方向
上面我們講到的排序其實(shí)都是默認(rèn)排序,默認(rèn)是按照升序(字母按'A'到‘Z‘,數(shù)字從小到大)
我們一樣可以降序排列
使用desc關(guān)鍵字
select + 列名(可以多個(gè)列) + from + 表名 + order by + 列名 desc
那么多個(gè)排序規(guī)則咋辦呢,即我們把一個(gè)班的同學(xué)按照總分進(jìn)行降序排序,那么總分一樣的按照語文成績也降序排列,這里我們注意
desc關(guān)鍵字只應(yīng)用到直接位于其前面的列
所有當(dāng)我們需要按照多個(gè)字段排序只需要在對應(yīng)字段后邊寫上對應(yīng)的排序規(guī)則,那么比如我們需要兩個(gè)字段都降序:
select + 列名(可以多個(gè)列) + from + 表名 + order by + 列名1 desc,列名2 desc
其實(shí)升序的話我們不用寫,因?yàn)槟J(rèn)是升序,關(guān)鍵字是asc
按照上邊學(xué)的,我們做一個(gè)例子:
列出年齡最大的學(xué)生的姓名性別和數(shù)學(xué)成績:
select sname,ssex,smath from student ORDER BY sage desc LIMIT 1
注意order by和limit的位置順序
3.檢索過濾數(shù)據(jù)
3.1使用簡單where子句
select + 列名 + from + 表名 where + 判斷條件
where一個(gè)特殊操作符:
1.
<>:不等于,其實(shí)和!=是一樣的
2.between:和and連用表示在指定的兩個(gè)值之間例如:select age from student where age between 18 and 20
where進(jìn)行空值檢查:
select + 列名 + from + 表名 + where + 列名 + is null
注意這里用到的是is不是=
3.2組合where子句
| 操作符 | 作用 |
|---|---|
| and | 要同時(shí)滿足and左右兩邊的條件 |
| or | 滿足or一邊的條件就行 |
| in | 用來指定條件范圍 |
| not | 用來否定條件里邊的內(nèi)容 |
作用and要同時(shí)滿足and左右兩邊的條件or滿足or一邊的條件就行in用來指定條件范圍not用來否定條件里邊的內(nèi)容
拿student表來舉例子:
1.and:我們查找女生中數(shù)學(xué)超過90分的學(xué)生的所有信息
SELECT * FROM student where ssex=“女” and smath>90
2.or:我們查找年齡大于19歲學(xué)生的姓名,或者英語成績大于90的學(xué)生姓名
SELECT sname FROM student where sage>19 or senglish>90
3.in:我們查找年齡為18和19歲學(xué)生的姓名
select sname from student where sage in(18,19)
4.not:我們查找除了年齡為18和19歲學(xué)生的姓名
select sname from student where sage not in(18,19)
5.我們查找年齡不是20歲的學(xué)生的所有信息并且把他們按照數(shù)學(xué)成績降序排列,只要第二行的內(nèi)容:
select * from student where sage not in(20) GROUP BY smath desc LIMIT 1,1
我們注意他們各個(gè)關(guān)鍵字的順序和limit后邊參數(shù)代表的含義
3.3使用通配符
通配符:用來匹配值的一部分的特殊符號(hào)
like: 根據(jù)通配符匹配而不是直接相等匹配進(jìn)行比較
| 通配符 | 作用 |
|---|---|
| % | 表示任何字符出現(xiàn)的任意的次數(shù) |
| _ | 匹配單個(gè)字符串長度 |
拿student表來舉例子:
1.%:我們查找姓名里邊帶花的同學(xué)的所有信息
select * from student where sname like “%花%”
會(huì)有兩條結(jié)果翠花和如花似玉,%只會(huì)匹配一側(cè)(不限字符串長度),如果只是“%花”,那么如花似玉就不會(huì)被查找出來。當(dāng)然,我們想要查找如花似玉也可以這么來查:
select * from student where sname like “%花%玉”
2._:我們查找如花似玉這名優(yōu)秀的同學(xué):
select * from student where sname like “_花_玉”
%能匹配0個(gè)字符和不限長度的字符串,而_只能而且必須匹配1個(gè)字符
4.使用正則表達(dá)式檢索數(shù)據(jù)
正則表達(dá)式是用來匹配文本的特殊串,將一個(gè)模式(正則表達(dá)式)與一個(gè)文本串進(jìn)行比較
正則表達(dá)式常用符號(hào):
| 符號(hào) | 符號(hào)作用 |
|---|---|
| . | 匹配單個(gè)字符 |
| | | 相當(dāng)于或的意思 |
| […] | 或的另一種表現(xiàn)形式 |
| - | 表示匹配范圍 |
| \\ | 匹配特殊字符 |
| * | 0個(gè)或者多個(gè)匹配 |
| + | 1個(gè)或多個(gè)匹配等于{1,} |
| ? | 0個(gè)或者一個(gè)匹配等于{0,1} |
| {n} | 指定數(shù)目的匹配 |
| {n,} | 不少于指定數(shù)目的匹配 |
| {n,m} | 匹配數(shù)目的范圍m不超過255 |
| ^ | 文本的開始 |
| $ | 文本的結(jié)尾 |
| [[ :<:]] | 詞的開始 |
| [[:>:]] | 詞的結(jié)尾 |
關(guān)鍵字:regexpselect + 列名(可以多個(gè)列) + from + 表名 + where + 列名 + regexp + 正則表達(dá)式
拿student表來說:
1 . 先說日regexp和like的區(qū)別
like匹配整個(gè)串然而regexp則是匹配子串
舉個(gè)例子:
我們用like匹配別為1的學(xué)生的姓名
select sname from student where othername like “1”
結(jié)果:
風(fēng)姐
我們把like換成regexp:
select sname from student where othername regexp “1”
結(jié)果:
翠花
鳳姐
秋香
現(xiàn)在是不是對區(qū)別有了很明顯的認(rèn)識(shí) 2 ..就是匹配任意一個(gè)字符
舉個(gè)例子,我們查找語文成績個(gè)位數(shù)為8的同學(xué)的名字:
select sname from student where schinese regexp “.8”
結(jié)果:
鳳姐
秋香
3.|
舉個(gè)例子我們查找別名中含1 ton或2的同學(xué)的姓名
select sname from student where othername regexp “1 ton|2”
查找結(jié)果:
翠花
旺財(cái)
如花似玉
4.[....]
舉個(gè)例子,我們查找別名為1 ton或者2 ton的學(xué)生的姓名
select sname from student where othername regexp “[1|2] ton”
運(yùn)行結(jié)果:
翠花
旺財(cái)
其實(shí)上邊就等同于select sname from student where othername regexp “1 ton|2 ton”
也等同于select sname from student where othername regexp “[12] ton” 5.-
舉個(gè)例子,查找別名中含有小寫英文字母的同學(xué)的姓名
select sname from student where othername regexp “[a-z]”
運(yùn)行結(jié)果:
翠花
旺財(cái)
秋香
如花似玉
6.\\
舉個(gè)例子我們查找別名中含有.這個(gè)字符的同學(xué)的姓名
select sname from student where othername regexp “\\.”
查找結(jié)果;
無
我們所接觸的特殊符號(hào)\,[,],等等都可以用\\來轉(zhuǎn)義
7.?我們不拿student表舉例子,把書上的例子拿過來:

注意這一句話:?匹配它前面的任何字符的0次和1次
8 .{n}再拿書上的一個(gè)例子(其他的幾個(gè)大括號(hào)同理):

這里有一個(gè)匹配字符類:

9.^還是書上的例子:

當(dāng)然^不止可以指串的開始,還可以在集合中(就是[]中)表示否定含義
為表示否定含義舉個(gè)例子:
[^a-z]:意思是匹配不是a-z的字符
我們拿student表舉例子:查找別名不是以a和1開頭的同學(xué)的名字
select sname from student where othername regexp “^[^a1]”
第一個(gè)^限制開頭,第二個(gè)^表示否定
10.補(bǔ)充一點(diǎn),不大小寫查詢
關(guān)鍵字:binary
我們平時(shí)查詢的字符串都會(huì)忽略大小寫,所以,可以使用binary不忽略大小寫
select + 列名(可以多個(gè)列) + from + 表名 + where + 列名 + regexp + binary + 正則表達(dá)式
其余的重要程度沒那么高,自己試吧
5.檢索計(jì)算字段
5.1使用拼接字段
使用concat(str1,str2,....)函數(shù)
舉個(gè)例子如果數(shù)學(xué)老師有這種請求,就是把所有學(xué)生的數(shù)學(xué)成績打印出來并且打印格式為數(shù)學(xué)成(姓名) 這種格式那么可以
select concat(smath,"(",sname,")") from student
運(yùn)行結(jié)果:

5.2使用別名
關(guān)鍵字:AS
用5.1的例子
SELECT CONCAT(LTRIM(smath),"(",sname,")") AS “數(shù)學(xué)成績” from student
結(jié)果:

AS可以不加,以上例子也可以寫成
SELECT CONCAT(LTRIM(smath),"(",sname,")") “數(shù)學(xué)成績” from student。group by,having,order by后都支持別名
5.3執(zhí)行算數(shù)計(jì)算
比如我們可以查找每一個(gè)同學(xué)的總分和該同學(xué)的名字:
SELECT sname as “姓名”,smath+schinese+senglish as “總成績” from student
運(yùn)行結(jié)果:

6.使用函數(shù)檢索數(shù)據(jù)
6.1常用文本處理函數(shù):

拿upper來舉例子,我們把同學(xué)的別名使用upper函數(shù)查詢出來:
SELECT UPPER(othername) as “別名” from student
運(yùn)行結(jié)果:

6.2日期和時(shí)間處理函數(shù):

日期的格式:

我們拿幾個(gè)重要的函數(shù)舉例子:
1.now():返回當(dāng)前系統(tǒng)日期,時(shí)間
select now()
運(yùn)行結(jié)果:

2.curdate():返回當(dāng)前系統(tǒng)日期,不包含時(shí)間
select curdate()
運(yùn)行結(jié)果:

3.curtime():返回當(dāng)前時(shí)間,不包含日期
select curtime()
運(yùn)行結(jié)果:

4.YEAR(),Hour()等:獲取指定的部分
select year(now())
運(yùn)行結(jié)果:

5.對于date_format()函數(shù)
把當(dāng)前時(shí)間轉(zhuǎn)換成字符串:
select DATE_FORMAT(now(),"%Y-%c-%d")
運(yùn)行結(jié)果:

對應(yīng)的有一個(gè)字符串轉(zhuǎn)日期的函數(shù):
例子:
select STR_TO_DATE(“2001-09-10”,"%Y-%c-%d")
運(yùn)行結(jié)果:

6.3數(shù)值處理函數(shù):

6.4聚集函數(shù):

1.AVG()函數(shù)
例子:我們拿student表來說,我們查找學(xué)生的數(shù)學(xué)平均分
select avg(smath) as “數(shù)學(xué)平均分” from student
運(yùn)行結(jié)果:

2.COUNT函數(shù)
一般的COUNT()函數(shù)有兩種用法
- 1使用count(*)進(jìn)行計(jì)數(shù),不管列是不是null值
- 2.使用count(column)對特定列中具有的值進(jìn)行計(jì)數(shù),忽略null值
用法的例子:
select count(*) from student
運(yùn)行結(jié)果:

3.指定不同值
關(guān)鍵字distinct
如果我們查找student表中不同的年齡有多少種;
select DISTINCT sage as “年齡種類” from student
運(yùn)行結(jié)果:

4.注意點(diǎn)
avg(),min(),max(),sum()函數(shù)都會(huì)忽略空值
7.分組檢索數(shù)據(jù)
7.1.簡單分組
關(guān)鍵字group by
我們舉個(gè)例子:
統(tǒng)計(jì)student表里邊男生和女生的人數(shù)
select ssex,COUNT(*) from student GROUP BY ssex
運(yùn)行結(jié)果:

注意點(diǎn):
1.如果分組里邊有null值,那么null做為一個(gè)分組返回,如果有多個(gè)null值,那么把他們分為一組
2.group by必須用到where子句之后
7.2過濾分組:
就是對簡單分組之后的數(shù)據(jù)再進(jìn)行過濾
關(guān)鍵字having
舉個(gè)例子,我們統(tǒng)計(jì)student表中數(shù)學(xué)成績80分以上的男生人數(shù)
select ssex,COUNT(*) from student where smath>80 GROUP BY ssex HAVING ssex=“男”
運(yùn)行結(jié)果:

where和having的區(qū)別:
where在分組前過濾,having在分組后過濾
8.使用子查詢檢索數(shù)據(jù)
8.1子查詢簡介
1.子查詢:出現(xiàn)在其他語句中的語句稱為子查詢或者內(nèi)查詢
內(nèi)部鑲嵌其他select語句的查詢稱為外查詢或主查詢
2.(1)子查詢分類:
按子查詢出現(xiàn)的位置
select后邊+(僅支持標(biāo)量子查詢)
from后面+(支持表子查詢)
where或者h(yuǎn)aving后邊+(支持標(biāo)量子查詢列子查詢行子查詢)
exists后邊+(表子查詢)
2.(2)按結(jié)果集的行列數(shù)不同:
標(biāo)量子查詢:(結(jié)果集只有一行一列)
列子查詢:(結(jié)果集一列多行)
行子查詢:(結(jié)果集一般一行多列)
表子查詢:(結(jié)果集一般為多行多列)
8.2各種子查詢舉例:
1.where和having后邊的子查詢:
例子1:我們查詢student表中數(shù)學(xué)分比翠花高的學(xué)生的所有信息(標(biāo)量子查詢):
select * from student where smath>(select smath from student where sname=“翠花”)
運(yùn)行結(jié)果:

例子2:如果如花似玉這名男生的語數(shù)外三科成績都大于80那么顯示所有同學(xué)的信息(行子查詢):
select * from student where (80,80,80)<(select schinese,smath,senglish from student where sname=“如花似玉”)
運(yùn)行結(jié)果:

例子3:用where查詢女同學(xué)的名字(列子查詢)(例子比較菜)
SELECT a.sname FROM student a where a.smath in (select smath from student where ssex=“女”)
運(yùn)行結(jié)果:

2.select后邊的子查詢(標(biāo)量子查詢)
我們分別查找同學(xué)們的獲獎(jiǎng)次數(shù):
這里引進(jìn)一個(gè)prize表:

select sname,(select count(*) from prize where student.sname=prize.sname ) as “獲獎(jiǎng)次數(shù)” from student
運(yùn)行結(jié)果:

3.from后邊的表子查詢:
例子:我們查找女生里邊數(shù)學(xué)高于八十分的同學(xué)的姓名:
select s.sname from (select * from student where ssex=“女”) as s
運(yùn)行結(jié)果:

4.exists后邊的表子查詢
exists的作用是判空
例子:我們查詢數(shù)學(xué)成績?yōu)?00的學(xué)生的姓名
SELECT a.sname FROM student a where EXISTS(select a.smath from student where a.smath=100 )
運(yùn)行結(jié)果:

這里注意不能這么寫:
SELECT a.sname FROM student a where EXISTS(select smath from student where smath=100 )
就是沒有取別名,這么寫是先運(yùn)行exists里邊的select,只要exists里邊有一個(gè)為真,那么就會(huì)查詢所有的同學(xué)的名字,否則所有的同學(xué)的名字都不會(huì)查出來,所以如果向上邊那么寫的話由于數(shù)學(xué)等于100的有一個(gè)同學(xué),其他的都不是100,那么有一個(gè)為真就會(huì)把同學(xué)姓名都查出來,但是用了別名之后就是每一個(gè)同學(xué)判斷一次,判斷成功一個(gè)輸出一個(gè)名字
8.3相關(guān)子查詢
相關(guān)子查詢:涉及外部查詢的子查詢
我們查詢student表中男生和女生的數(shù)學(xué)平均分:
select ssex as sssex ,(select avg(smath) FROM student where sssex=student.ssex) as “平均分” from student GROUP BY ssex
運(yùn)行結(jié)果:

我們可以看到我把第一個(gè)ssex起一個(gè)別名,第二個(gè)用了引用,那么如果我們直接使用ssex=ssex,那么就會(huì)出錯(cuò),相關(guān)子查詢避免了歧義性
9.連接查詢
我們在student表基礎(chǔ)上添加一個(gè)information表代表學(xué)生信息(里邊有身高體重學(xué)號(hào))

9.1連接查詢
分類;
連接查詢分為內(nèi)連接和外連接交叉連接
1.內(nèi)連接:等值連接,非等值連接,自連接
2.外連接:左外連接,右外連接,全外連接
3.交叉連接
1.內(nèi)連接之等值,非等值連接(sql92版本)
舉一個(gè)等值連接的例子:結(jié)合student表和information表來查詢學(xué)生的姓名,性別,年齡,身高,體重
select student.sname,ssex,sage,slength,sweigth from student,information where student.sname=information.sname
運(yùn)行結(jié)果:

內(nèi)連接之等值,非等值連接(sql99版本)
語法:
select + 查詢列表 + from 表1 (別名) + (inner)join 表2 (別名) + on 連接條件 + (where)+ (group by) + (having) + (order by)
用sql99語句寫出上述sql92版本的例子
select student.sname,ssex,sage,slength,sweigth from student join information on student.sname=information.sname
與sql2語法不同的是兩個(gè)表之間用join隔開,而且和sql92不同的還有sql92語法是把連接條件和其他篩選條件都放在where中,而sql99這是把連接條件放在on后,其他篩選條件放在where后
2.內(nèi)連接之自連接(sql92版本):
舉一個(gè)口頭例子:
例子:一張員工表里邊有員工編號(hào)和領(lǐng)導(dǎo)所對應(yīng)編號(hào),那么如果要查找員工的名字和它領(lǐng)導(dǎo)的名字就會(huì)有
select a.name,b.name from 員工表 a,員工表 b where a.編號(hào)=b.領(lǐng)導(dǎo)編號(hào)
這里一張表看成了兩張表,但是必須給這兩張表起別名,不然就會(huì)產(chǎn)生歧義必須以這種格式來寫
3.內(nèi)連接之多表等值連接:
select + 查詢列表 + from 表1 (別名) + (inner) join 表2 (別名) + on 連接條件 + (inner) join 表3 (別名) + on+連接條件 + (inner) join 表4 (別名) + on 連接條件 + ..... + (where) +(group by) + (having) + (order by)
4.外連接之左外連接:
外連接適用于一個(gè)表有另一個(gè)表沒有的記錄
左外連接基本語法:
SELECT + 查詢鏈表 + FROM + 主表 (別名) + LEFT (OUTER) JOIN +從表 (別名) +ON 連接條件右外連接基本語法:
SELECT + 查詢鏈表 + FROM + 從表 (別名) + right (OUTER) JOIN +主表 (別名) +ON 連接條件
外連接特點(diǎn)(左外右外):
1.外連接會(huì)查詢主表里邊的所有記錄
2.如果主表有但從表里沒有那么就會(huì)顯示nuil
總的來說外連接=內(nèi)連接+主表中有從表中沒有的數(shù)據(jù)
我們引進(jìn)一個(gè)新的表abord(student表中學(xué)生出國留學(xué)次數(shù))

例子:
我們把每一個(gè)同學(xué)出國留學(xué)次數(shù)查詢出來(我們使用左外連接):
select a.sname,b.scount from student a left JOIN abord b on a.sname=b.sname
運(yùn)行結(jié)果:

5.全外連接特點(diǎn)
外連接會(huì)查詢主表與從表里邊的所有記錄
10.聯(lián)合查詢查詢
關(guān)鍵字union
應(yīng)用場景:當(dāng)我們查詢的信息來自多個(gè)表而且多個(gè)表之間沒有直接連接關(guān)系,但查詢的字段信息一致(比如兩個(gè)表都查姓名性別,這樣才能合成一張表,而且查詢字段要對齊比如兩表都查姓名性別,那么第一個(gè)select字段的順序要和第二個(gè)select一致都是先姓名后性別或者先性別后姓名)
舉個(gè)例子:
查找student表中年齡為18和19歲的學(xué)生的姓名和性別:
SELECT sname,ssex from student where sage=18 UNION SELECT sname,ssex from student where sage=19
運(yùn)行結(jié)果:

看看去重的效果:我們查詢兩次年齡為18歲的同學(xué)的姓名和性別
SELECT sname,ssex from student where sage=18 UNION SELECT sname,ssex from student where sage=18
運(yùn)行結(jié)果:

但是如果我們用union all的話
SELECT sname,ssex from student where sage=18 UNION all SELECT sname,ssex from student where sage=18
運(yùn)行結(jié)果:

11.子查詢
11.1單行子查詢
單行子查詢,查詢結(jié)果只能是一行數(shù)據(jù),子查詢里不能包含order by子句
例子(在emp中查詢既不是最高工資也不是最低工資的員工信息):
select empno,ename,sal,from emp where sal>(select min(sal) from emp) and sal<(select max(sal) from emp);
11.2多行子查詢
子查詢返回多行數(shù)據(jù)的子查詢語句,使用IN或者ANY或者ALL
例子:在emp表中查詢工資大于部門編號(hào)為10的任意一個(gè)員工工資即可的其他部門的員工工資即可的其他部門的員工信息
select * from emp where sal > any(select sal from emp where deptno=10 ) and deptno<>10
11.3關(guān)聯(lián)子查詢
在單行子查詢和多行子查詢里,內(nèi)外查詢是分開執(zhí)行的,有些內(nèi)查詢的執(zhí)行是要借助于外查詢,而外查詢的執(zhí)行又離不開內(nèi)查詢,也就是說內(nèi)外查詢是相關(guān)聯(lián)的,這樣的子查詢稱為關(guān)聯(lián)子查詢
例子:
使用關(guān)聯(lián)子查詢檢索工資大于同職位的平均工資員信息
select empno,ename,sal from emp f where sal>(select avg(sal) from emp where job=f.job) order by job
上述例子子查詢里需要用到外查詢表中的職位名稱,外查詢又要用到子查詢出來的職位信息
12.補(bǔ)充
12.1自然查詢
自然查詢是檢索多個(gè)表的時(shí)候,會(huì)把兩個(gè)表中具有相同的列的表進(jìn)行自動(dòng)連接(自然連接強(qiáng)制要求有相同的列名稱)
關(guān)鍵字:natural join
比如:
select empno,ename,job,dname from emp natural join dept where sal>2000
我們的employee表里和dept都有列empno,那么這個(gè)時(shí)候,自然查詢的時(shí)候系統(tǒng)就會(huì)自動(dòng)連接
12.2交叉連接
交叉連接是不需要任何連接條件的連接(兩個(gè)表不需要有任何的關(guān)系),執(zhí)行結(jié)果是笛卡爾乘積
關(guān)鍵字:cross join
select 列1,列2 from 表1 cross join 表2
以上就是Mysql數(shù)據(jù)庫檢索語句DQL大全小白篇的詳細(xì)內(nèi)容,更多關(guān)于Mysql檢索語句DQL的資料請關(guān)注本站其它相關(guān)文章!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信