国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

T-SQL 查詢語(yǔ)句總結(jié)

2024-07-21 02:47:33
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
T-SQL 查詢語(yǔ)句總結(jié)

我們使用一下兩張表作為范例:

select * from [dbo].[employee]

select * from [dbo].[dept]

1、select語(yǔ)句

  • DISTINCT:去掉記錄中的重復(fù)值。

select distinct dept_no from [dbo].[employee]

  • TOP:返回第一行或者是前幾行

select top(3) * from [dbo].[employee]

  • AS:修改列標(biāo)題

select e_no as '員工編號(hào)', e_name as '員工姓名' from [dbo].[employee]

注:AS關(guān)鍵字也可以省略

  • 使用等號(hào)‘=’修改列標(biāo)題

select '員工編號(hào)'=e_no, '員工姓名'=e_name from [dbo].[employee]

2、在查詢的結(jié)果內(nèi)集中顯示某字符串

select '員工姓名:' ,e_name from [dbo].[employee]

3、查詢的列為表達(dá)式

select e_no+10 as '新員工編號(hào)' ,e_name '員工姓名' from [dbo].[employee]

4、where子句條件查詢

  • BETWEEN AND 表示范圍

select * from [dbo].[employee] where e_no between 1001 and 1006

  • 使用IN關(guān)鍵字

select * from [dbo].[employee] where e_no in (1001 , 1007 )

使用IN關(guān)鍵詞時(shí),將所有檢索條件用逗號(hào)分隔開(kāi)。與括號(hào)內(nèi)的值相匹配便可以被查出。

  • 使用LIKE關(guān)鍵字

LIKE關(guān)鍵字使用的通配符:

%:包含零個(gè)或多個(gè)字符的任意字符串。

_:任何單個(gè)字符。

[]:指定范圍[a-f]或者是集合[abcdef]中的任何單個(gè)字符。

[^]:不屬于該范圍的任何單個(gè)字符。

select * from [dbo].[employee] where e_name like 'a%'

  • IS NULL (IS NOT NULL)

在SELECT語(yǔ)句中使用IS NULL(IN NOT NULL)某字段內(nèi)容是否為空(不為空)

select * from [dbo].[employee] where e_name is null

5、EXISTS(NOT EXISTS)關(guān)鍵字

EXISTS關(guān)鍵字后面的參數(shù)是一個(gè)任意的子查詢,系統(tǒng)對(duì)子查詢進(jìn)行運(yùn)算以判斷它是否返回行,如果至少返回一行,那么EXISTS的結(jié)果為TURE,此時(shí)外層查詢語(yǔ)句將進(jìn)行查詢;如果子查詢沒(méi)有返回行,那么EXISTS反悔的結(jié)果為FALSE,此時(shí)外層語(yǔ)句將不進(jìn)行查詢。EXISTS語(yǔ)句可以與where或if一起使用。

select top(2) * from [dbo].[employee] where exists (select top (1) * from [dbo].[employee])

注:EXISTS的結(jié)果只取決于是否會(huì)返回行,而不取決于這些行的內(nèi)容具體是什么。

6、ORDER BY

對(duì)指定的列數(shù)據(jù)進(jìn)行排序。

升序(ASC)

降序(DESC)

select * from [dbo].[employee] order by e_no desc

多列排序:先按照第一列排序,若第一列中有相同的值,則在這些值中再按照第二列排序。

select * from [dbo].[employee] order by dept_no desc ,e_no

7、GROUP BY 分組

GROUP BY 子句通常和聚合函數(shù)一起使用,例如:MAX,MIN,COUNT,SUM,AVG。

select dept_no ,count(*) as '部門人數(shù)' from [dbo].[employee] group by dept_no

注意:選擇列表中任一非聚合表達(dá)式內(nèi)的所有列都應(yīng)包含在 GROUP BY 列表中,或者 GROUP BY 表達(dá)式必須與選擇列表表達(dá)式完全匹配。

多字段分組:GROUP BY 子句后面根據(jù)需要分組的字段,分組層次從左到右,先按照第一個(gè)字段分組,然后在第一個(gè)字段值相同的記錄中,再根據(jù)第二個(gè)字段的值進(jìn)行分組,以此類推。

  • 使用HAVING對(duì)分組結(jié)果過(guò)濾

GROUP BY 和HAVING一起限定顯示記錄所需滿足的條件,只有滿足條件的分組才會(huì)被顯示。

select dept_no ,count(*) as '部門人數(shù)' from [dbo].[employee] group by dept_no having count(*)>2

注:HAVING與WHERE都可以用來(lái)過(guò)濾數(shù)據(jù),兩者的區(qū)別是:HAVING用在數(shù)據(jù)分組之后進(jìn)行過(guò)濾,即用來(lái)選擇分組;WHERE在分組之前用來(lái)選擇記錄,它排除的記錄不包括在分組中。

8、UNION合并查詢結(jié)果集

利用UNION關(guān)鍵字,可以給出多條SELECT語(yǔ)句,并將他們的結(jié)果組合成單個(gè)結(jié)果集。若UNION不使用關(guān)鍵字ALL,執(zhí)行的時(shí)候會(huì)自動(dòng)刪除重復(fù)的記錄,所有返回值的行都是唯一的;使用關(guān)鍵字ALL的作用是不刪除重復(fù)行也不對(duì)結(jié)果進(jìn)行自動(dòng)排序。注意合并是兩個(gè)表對(duì)應(yīng)的列數(shù)和數(shù)據(jù)類型必須是相同的。

select%20*%20from%20[dbo].[employee]%20where%20dept_no=20

union

select%20*%20from%20[dbo].[employee]%20where%20dept_no=30

9、多表連接查詢

會(huì)有另外博文單獨(dú)講解


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 阳山县| 牙克石市| 信宜市| 杨浦区| 昔阳县| 宜都市| 都昌县| 金川县| 腾冲县| 津南区| 兰西县| 五常市| 阜城县| 西盟| 开远市| 蕉岭县| 浦县| 肥东县| 临泽县| 荣成市| 新晃| 鹤山市| 临漳县| 揭西县| 博客| 二连浩特市| 清苑县| 牡丹江市| 靖江市| 长垣县| 石渠县| 张家界市| 长武县| 屯留县| 舟曲县| 仪陇县| 太湖县| 乐昌市| 丘北县| 景泰县| 太湖县|