狠狠色丁香婷婷综合尤物/久久精品综合一区二区三区/中国有色金属学报/国产日韩欧美在线观看 - 国产一区二区三区四区五区tv

LOGO OA教程 ERP教程 模切知識(shí)交流 PMS教程 CRM教程 開(kāi)發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

SQL Server數(shù)據(jù)查詢基本方法的探討

admin
2011年5月4日 17:57 本文熱度 3072

首先創(chuàng)建一個(gè)簡(jiǎn)單的數(shù)據(jù)庫(kù)作為示例數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名稱為school_db,里面有三張表 Department_TBL(DNO,DName),Class_TBL(CNO,CName,DNO),Student_TBL(SNO,SName,SSex,CNO)


一 基本查詢


基本語(yǔ)法:select (查詢列表|*) from  (表列表)


說(shuō)明:“查詢列表”可以是表的字段,表達(dá)式,函數(shù)。“表列表”可以包含多張表


示例:查詢所有學(xué)生的基本信息

  1. Select * from Student_TBL 

二 where條件查詢


基本語(yǔ)法:select (查詢列表|*) from (表列表) where (限制條件)


說(shuō)明:where關(guān)鍵字后面的限制條件不能包含聚合函數(shù)


示例:查詢所在班級(jí)編號(hào)是“003”的學(xué)生的基本信息

  1. Select * from Student_TBL where CNO=’003’ 

三 關(guān)鍵字in的使用


基本語(yǔ)法:select (查詢列表|*) from (表列表) where (字段名) in (值集合)


說(shuō)明:in關(guān)鍵字的作用是查詢某一字段是否在一個(gè)集合中,一般在where語(yǔ)句中使用


示例:查詢學(xué)號(hào)為23,34,35,40 學(xué)生的信息

  1. Select * from Student_TBL where SNO in (23,34,35,40) 

四 between和 Not between的使用


基本語(yǔ)法:select (查詢列表|*) from (表列表) where (字段名) between||not between 值1 AND 值2


說(shuō)明:判斷某個(gè)字段的值是否在一個(gè)范圍之內(nèi)


示例:查詢所有學(xué)號(hào)大于5小于30的學(xué)生的信息

  1. Select * from Student_TBL where SNO between 5 and 30 

五 消除結(jié)果集中的重復(fù)行


基本語(yǔ)法:select distinct column1,… from (表列表)


說(shuō)明:去除結(jié)果集中跟在distinct關(guān)鍵字后面所有字段的值相等的記錄


示例:查詢所有學(xué)生的信息,刪除名字相同的多余行

  1. Select distinct column1,… from Student_TBL 

六 返回指定的行數(shù)(百分率)


基本語(yǔ)法:select top n [percent](column1,…) from (表列表)


說(shuō)明:n為要返回的行數(shù),若含有percent關(guān)鍵字則按百分比返回,則此時(shí)n必須在0~100之間,若查詢語(yǔ)句中含有order by 則先對(duì)查詢結(jié)果進(jìn)行排序,再執(zhí)行篩選


示例:返回前十名學(xué)生的基本信息

  1. Select top 10 * from Student_TBL 

返回前百分之十的學(xué)生的基本信息

  1. Select top 10 percent * from Student_TBL 

七 改變查詢標(biāo)題


基本語(yǔ)法:select  ‘自定義標(biāo)題’=column1,…. From (表列表),select column1 ‘自定義標(biāo)題’,…. From (表列表),select column1 as ‘自定義標(biāo)題’,… from (表列表)


說(shuō)明:改變的只是查詢結(jié)果的標(biāo)題,并沒(méi)有改變表的標(biāo)題


示例:查詢學(xué)生的基本信息,SNO,SName,CNO分別用“學(xué)號(hào)”,“姓名”,”所屬班級(jí)”顯示


、這里只使用第三種方法演示了


Select ‘學(xué)號(hào)’ as SNO,’姓名’ as SName,’所屬班級(jí)’ as ‘CNO’ from Student_TBL


八 在查詢結(jié)果中顯示字符串


基本語(yǔ)法:在select 語(yǔ)句中,將增加的字符串用單引號(hào)括起來(lái)然后和列的名字寫在一起,中間用逗號(hào)分開(kāi)


示例:查詢所有學(xué)生信息,顯示的結(jié)果的形式是“學(xué)號(hào)+“我的姓名是+”性命+班級(jí)編號(hào)”


Select SNO,’我的姓名是’,SName,CNO from Student_TBL


九 order by的使用


基本語(yǔ)法:

  1. select * from table_Name [where..] order by column1 [asc]desc]… 

說(shuō)明:order by 后面可以指定多個(gè)列,默認(rèn)是按升序方式排列的,order by 放在where 語(yǔ)句之后


示例:查詢所有學(xué)好大于23號(hào)的學(xué)生信息,并按學(xué)號(hào)的降序排列

  1. Select * from Student_TBL where SNO>23 order by SNO desc 

十 使用Like實(shí)現(xiàn)模糊查詢


基本語(yǔ)法:select * from table_Name where column like (匹配條件)


說(shuō)明:“%”匹配任意長(zhǎng)度的(長(zhǎng)度可以為0)字符串,“_”匹配任意單個(gè)字符,“[]”:匹配所給定范圍或集合中的任意單個(gè)字符,“[^]”匹配所給定的不在所給定的集合或范圍中的任意單個(gè)字符,通配符或字符串必須用單引號(hào)括起來(lái)


示例:查詢所有姓李的同學(xué)地信息

  1. Select * from Student_TBL where SName like ‘李%’ 

查詢所有學(xué)生名字中第二個(gè)字為“冰”的同學(xué)的信息

  1. Select * from Student_TBL where SName like ‘_冰%’ 

查詢所有編號(hào)中含有’e,t,y’字符的班級(jí)信息

  1. Select * from Class_TBL where CNO like ‘[e,t,y]’ 

查詢所有編號(hào)中不含有’e,t,y’字符的班級(jí)信息

  1. Select * from Class_TBL where CNO like ‘[^e,t,y]’ 

十一 使用is null


基本語(yǔ)法:

  1. select * from table_Name where column is null 

說(shuō)明:查詢指定列為輸入數(shù)據(jù)的數(shù)據(jù)行,通常用在where語(yǔ)句中


示例:查詢還沒(méi)有分配班級(jí)的學(xué)生的信息

  1. Select * from Student_TBL where CNO is null 

十二 使用compute進(jìn)行計(jì)算


基本語(yǔ)法:select * from table_name where 查詢條件 compute 聚合函數(shù)


說(shuō)明:用來(lái)計(jì)算總計(jì)或進(jìn)行分組小計(jì),總計(jì)或小計(jì)值作為附加行出現(xiàn)在查詢結(jié)果中


示例:計(jì)算在編號(hào)為‘001’班級(jí)的學(xué)生的信息并統(tǒng)計(jì)該班有多少個(gè)學(xué)生

  1. Select * from Student_TBL where CNO=’001’ compute count(*) 

十三 使用compute by分組查詢結(jié)果


基本語(yǔ)法:select * from table_Name [where..] order by column compute 聚合函數(shù) by column


說(shuō)明:在使用compute by之前必須先使用order by 對(duì)要進(jìn)行分組的列進(jìn)行排序,注意,在oerder by 中進(jìn)行排序的列的數(shù)量和順序必須和compute by 后的項(xiàng)一樣


示例:根據(jù)不同班級(jí)分組統(tǒng)計(jì)各個(gè)班級(jí)學(xué)生的信息

  1. Select * from Student_TBL order by CNO compute count(SNO) by CNO 

十四 使用group by


基本語(yǔ)法:select * from table_name [where…] group by column


說(shuō)明:在select 子句中使用聚合函數(shù)時(shí),group by計(jì)算每組的匯總值,使用group by子句時(shí),在select 子句中出現(xiàn)的列名或者出現(xiàn)在聚合函數(shù)中,或者出現(xiàn)在group by 子句后面,否則會(huì)抱錯(cuò),另外group by后面還可以恩 with cube||rollup,


示例:統(tǒng)計(jì)每個(gè)班級(jí)有多少學(xué)生,不顯示學(xué)生的信息,只顯示統(tǒng)計(jì)信息

  1. Select CNO,count(SNO) from Student_TBL group by CNO 

十五使用having語(yǔ)句


基本語(yǔ)法:select * from table_name [where …] group by column having …


說(shuō)明:having子句用于限定對(duì)組或者聚合函數(shù)的查詢條件,該子句常用于group by 子句后面,在查詢結(jié)果分組后對(duì)組判斷是否滿足查詢條件,在分組之前可以用where語(yǔ)句判斷查詢條件,使用where比使用having更有效,因?yàn)樗葘⒉粷M足條件的行過(guò)濾掉,從而減少了要進(jìn)行分組的行數(shù)


示例:分組統(tǒng)計(jì)除編號(hào)為‘001’外所有班級(jí)學(xué)生的人數(shù)

  1. Select CNO,count(SNO) from Student_TBL group by CNO having CNO<>’001’ 

十六 子查詢


基本語(yǔ)法:


說(shuō)明:子查詢是在查詢中包含另一個(gè)查詢的查詢,可以使用子查詢代替表達(dá)式,自查詢只能返回一列數(shù),有時(shí)只返回但個(gè)值


示例:查詢班級(jí)人數(shù)大于平均班級(jí)人數(shù)的班級(jí)

  1. Select * from Class_TBL where (select count(*)   
  2. from student where CNO=Class_TBL.CNO)>((select count(*) from Student_TBL)/(select count(*) from Class_TBL)) 

十七 使用union運(yùn)算符合并多個(gè)查詢結(jié)果


基本語(yǔ)法:

  1. select column1 from table1_name union select column2 from table2_name 

說(shuō)明:所有查詢中的列數(shù)和列的順序必須相同,所有查詢中按順序?qū)?yīng)列的數(shù)據(jù)類型必須相同或兼容,如果希望重新排序多個(gè)查詢結(jié)果的合并結(jié)果,則在最后的select 語(yǔ)句中使用order by子句


十八 查詢多個(gè)表或視圖的信息


基本語(yǔ)法:select column1,column2,… from talbe1,table2,…


說(shuō)明:在涉及多表查詢時(shí)必須使用where語(yǔ)句給出多表之間的連接條件,對(duì)來(lái)自N各表或視圖查詢要寫出N-1 個(gè)連接條件


示例:查詢每個(gè)學(xué)生所在的系部的名稱,班級(jí)的名稱和姓名

  1. Select DName,CName,SName   
  2. from Student_TBL S,Class_TBL C,Department_TBL Dwhere S.CNO=C.CNO and C.DNO=D.DNO 

十九 相等連接與自然連接:相等連接是將要連接的列作相等比較的連接,在相等連接列中只保留一個(gè)連接列的連接稱為自然連接


二十 比較連接:表與表之間的連接不使用“=”連接,而是使用比較運(yùn)算符的連接


二十一 自連接就是表與它自己進(jìn)行連接


二十二 左連接,右連接和全連接


二十三 使用exists:在where子句中可以使用exists子句,它用于測(cè)試跟隨的子查詢中的行是否存在


該文章在 2011/5/4 17:57:16 編輯過(guò)
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對(duì)中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國(guó)內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對(duì)港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場(chǎng)、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場(chǎng)作業(yè)而開(kāi)發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉(cāng)儲(chǔ)管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購(gòu)管理,倉(cāng)儲(chǔ)管理,倉(cāng)庫(kù)管理,保質(zhì)期管理,貨位管理,庫(kù)位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號(hào)管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved