一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

你必須掌握的SQL查詢語句全在這里了!

 L羅樂 2018-11-30

sql查詢語句基本框架

select col1,col2, ··· 

from tablename

[where 條件]

[group by  ··· ]

[having 篩選條件]

[order by  ··· ]

[limit  ··· ]


簡(jiǎn)單查詢


1. 查詢?nèi)啃小⒘校?)

    select * from 表名;


2. 別名(as,可省略)

  • 列取別名

    select user_name as '名字',user_sex as '性別'   from USER;

  • 表取別名

    select  name,sex  from  user  as  u ;


3. distinct 去掉重復(fù)值

    select distinct nama from user;


4. limit 

  • limit(n,m)——從第n條之后開始,取m行記錄(n 1 ~ n m)

  • 不指定n時(shí),取前m條(n=0)


select * from user limit  1 ;——取第1條記錄

select * from user limit  2,5; ——取第3~7條記錄

     

條件查詢(where子句)


    select  列  from  表名

    where  條件表達(dá)式


1. 比較運(yùn)算符(= , <>  ,  >  ,  >=  , <  , <=  

    select * from user  where age > 18;


2. 邏輯運(yùn)算符

  • and  且

  • or  或

  • not  非

select * from user  where age > 18  and  sex='女';


3. between  and (范圍查詢)

  • between A and B   

  • A、B可以是數(shù)值、日期、字符串等,除數(shù)值外的其他類型,要加引號(hào)

select * from user  where name between ‘a(chǎn)mada’ and ‘king’;

select * from user  where age between 10 and 30;


4. 通配符(like)

  • _    代表任一個(gè)字符

  • %   代表任意n個(gè)字符(n可以為0)

  • [  ]  在指定的范圍內(nèi)

  • [^ ]  不在指定范圍內(nèi)

select * from user   where name like '孫_' ; ——以孫開頭,且只有兩個(gè)字的名字

select  * from user  where name like '孫%' ; ——任意以孫開頭的名字


5. 查詢?yōu)榭?非空(NULL)

  • is null / is not null


查詢結(jié)果排序(order by)


  • order by  排序依據(jù)(列) [排序方式(升/降序)]

  • ASC(升序) / DESC(降序)

  • 默認(rèn)為升序ASC


1. 按單行排序

select * from user [where  ··· ] order by  age desc;——查詢結(jié)果按age降序排列

2. 按多行排列

  • 添加排序優(yōu)先級(jí),多個(gè)列先出現(xiàn)的列優(yōu)先級(jí)更高

select * from 獎(jiǎng)牌表

order by 金牌數(shù) desc,銀牌數(shù) desc ,銅牌數(shù) desc;  ——先按金牌數(shù)降序排序,金牌數(shù)相等的再按照銀牌數(shù)降序排列


分組匯總(group by)


聚合函數(shù)——對(duì)多條記錄進(jìn)行統(tǒng)計(jì)

常用的聚合函數(shù):

  • sum() 求和

  • avg() 求平均

  • max()/min()      最大/最小值

  • count()   用于任意基于行的數(shù)據(jù)類型(該列不為空的個(gè)數(shù))

【eg】學(xué)生成績(jī)表scores(id,name,score)

查詢每個(gè)學(xué)生的總分、平均分、最高分

select  id,sum(score),avg(score),max(score) from  score

group by  id;


篩選分組結(jié)果(having)


  • having子句為分組統(tǒng)計(jì)結(jié)果進(jìn)一步設(shè)置篩選條件(先分組統(tǒng)計(jì),再篩選)

  • having子句用在group by后面

eg】成績(jī)表scores表(id,name,kecheng,score)

查詢平均成績(jī)大于90的學(xué)生的總成績(jī)、平均成績(jī):

先分組統(tǒng)計(jì)每個(gè)學(xué)生的總成績(jī)、平均成績(jī)

select id,sum(score),avg(score)

from scores

group by  id;


分組統(tǒng)計(jì)結(jié)果中,篩選出avg(score)大于90的

select id,sum(score),avg(score)

from scores

group by  id

having avg(score)>90 ;


連接查詢(join)


  • 多表查詢——內(nèi)連接、外連接(左/右連接)語句

     select  col1,col2,...

     from  table1  [left/right]  join  table2

     on  連接條件(table1.col=table2.col)


1. 內(nèi)連接([inner] join)使用較多

  • 連接的兩個(gè)表地位平等,如果一張表中的記錄在另一個(gè)表中不存在對(duì)應(yīng)數(shù)據(jù),則不做連接,不返回結(jié)果

2. 外連接(left/right join)

  • 連接的兩個(gè)表地位不平等,left join:左表為基礎(chǔ)表;right join:右表為基礎(chǔ)表

基礎(chǔ)表中的記錄在另一個(gè)表中沒有對(duì)應(yīng)數(shù)據(jù),也會(huì)返回

【eg】

表一:學(xué)生表stu(id,name)

表二:成績(jī)表score(id,scores)

查詢每個(gè)學(xué)生的name、scores:

     select id,name,scores

     from stu join score

     on stu.id = score.id ;


子查詢


子查詢的幾點(diǎn)說明:

  • 外層的SELECT語句叫做外部查詢,內(nèi)層的SELECT語句叫做子查詢

  • 使用子查詢主要是將查詢的結(jié)果作為外部主查詢的查詢條件

  • 子查詢可以嵌套多層,但每層嵌套需要使用圓括號(hào)()括起來

  • 大部分子查詢是放在select語句的where子句中使用;也有在from子句中使用的子查詢,即將子查詢的結(jié)果集作為外層查詢的查詢范圍

  • 根據(jù)子查詢返回一行或多行查詢結(jié)果,可將子查詢分為2類: 單行子查詢、多行子查詢:

     單行子查詢的操作符: 、>、<、>=、<=、<>和!<>

     多行子查詢的操作符:IN、ALL、ANY或函數(shù)min,max


1. 使用比較運(yùn)算符的子查詢

  • 子查詢結(jié)果為單行(一個(gè)數(shù)值)時(shí),常配合比較運(yùn)算符使用

【eg】:stu表(id,name,score)中,查詢大于全班平均成績(jī)的同學(xué)id、name:

select id,name

from stu

where score >  (select  avg(score)  from  stu );


2. 使用in/not in關(guān)鍵字的子查詢

【eg】選課表course(stuid,coursename,stuname),查詢沒有選過“政治經(jīng)濟(jì)學(xué)”的學(xué)生

select stuid,stuname

from course

where stuid not in (select stuid from course where coursename='政治經(jīng)濟(jì)學(xué)');


3. 使用exists關(guān)鍵字的子查詢

     select ··· from ··· 

     where exists  (select ··· from ··· where ··· )

  • 使用exists關(guān)鍵字的子查詢結(jié)果不返回任何結(jié)果,只返回邏輯值TRUE或FALSE;當(dāng)子查詢結(jié)果集非空時(shí)返回TRUE,子查詢結(jié)果集為空時(shí),返回FALSE;當(dāng)子查詢結(jié)果不為空時(shí)才執(zhí)行外層查詢



聯(lián)合查詢(union)


  • 聯(lián)合查詢:將多個(gè)查詢語句所產(chǎn)生的結(jié)果集縱向連接成一個(gè)(列數(shù)要相同,對(duì)應(yīng)的列類型要兼容)

    select .... from ... [where....]

    union [all]

    select .... from ... [where....]

    union [all]

    ......


  • 有all時(shí),會(huì)顯示全部數(shù)據(jù),不去重

  • 沒有all時(shí),重復(fù)記錄會(huì)被去掉



本文主要為查詢部分,后續(xù)會(huì)繼續(xù)介紹有關(guān)數(shù)據(jù)類型、數(shù)據(jù)表操作、約束條件、函數(shù)等相關(guān)內(nèi)容。

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多

    国产毛片对白精品看片| 国产在线观看不卡一区二区| 在线观看视频日韩精品| 日本深夜福利在线播放| 精品少妇一区二区三区四区| 日韩精品人妻少妇一区二区| 日韩蜜桃一区二区三区| 亚洲永久一区二区三区在线| 日韩女优视频国产一区| 夫妻性生活真人动作视频| 妻子的新妈妈中文字幕| 成人免费在线视频大香蕉| 成人午夜爽爽爽免费视频| 内射精子视频欧美一区二区| 亚洲一区二区欧美激情| 精品少妇人妻av免费看| 91人妻人人澡人人人人精品| 国产又粗又猛又长又大| 翘臀少妇成人一区二区| 午夜福利精品视频视频| 日韩国产亚洲欧美另类| 日本成人三级在线播放| 91人妻人人精品人人爽| 不卡一区二区在线视频| 欧美日韩国产福利在线观看| 国产麻豆视频一二三区| 久久经典一区二区三区| 亚洲欧洲一区二区中文字幕| 欧美日韩一级黄片免费观看| 懂色一区二区三区四区| 五月婷婷六月丁香狠狠| 日韩av亚洲一区二区三区| 日本淫片一区二区三区| 亚洲av专区在线观看| 日韩一区二区三区在线日| 日韩精品视频高清在线观看| 欧美人妻一区二区三区| 男人大臿蕉香蕉大视频| 精品国产亚洲av久一区二区三区 | 欧美在线观看视频三区| 国产成人精品一区在线观看|