自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

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

數(shù)據(jù)庫 SQL Server
今天我們討論的是SQL Server數(shù)據(jù)查詢方面的問題,包括二十二種不同的方法介紹,希望對大家有所幫助。

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

一 基本查詢

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

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

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

  1. Select * from Student_TBL 

二 where條件查詢

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

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

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

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

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

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

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

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

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

四 between和 Not between的使用

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

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

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

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

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

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

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

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

  1. Select distinct column1,… from Student_TBL 

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

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

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

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

  1. Select top 10 * from Student_TBL 

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

  1. Select top 10 percent * from Student_TBL 

七 改變查詢標題

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

說明:改變的只是查詢結(jié)果的標題,并沒有改變表的標題

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

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

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

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

基本語法:在select 語句中,將增加的字符串用單引號括起來然后和列的名字寫在一起,中間用逗號分開

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

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

九 order by的使用

基本語法:

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

說明:order by 后面可以指定多個列,默認是按升序方式排列的,order by 放在where 語句之后

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

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

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

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

說明:“%”匹配任意長度的(長度可以為0)字符串,“_”匹配任意單個字符,“[]”:匹配所給定范圍或集合中的任意單個字符,“[^]”匹配所給定的不在所給定的集合或范圍中的任意單個字符,通配符或字符串必須用單引號括起來

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

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

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

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

查詢所有編號中含有’e,t,y’字符的班級信息

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

查詢所有編號中不含有’e,t,y’字符的班級信息

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

十一 使用is null

基本語法:

  1. select * from table_Name where column is null 

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

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

  1. Select * from Student_TBL where CNO is null 

十二 使用compute進行計算

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

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

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

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

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

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

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

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

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

十四 使用group by

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

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

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

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

十五使用having語句

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

說明:having子句用于限定對組或者聚合函數(shù)的查詢條件,該子句常用于group by 子句后面,在查詢結(jié)果分組后對組判斷是否滿足查詢條件,在分組之前可以用where語句判斷查詢條件,使用where比使用having更有效,因為它先將不滿足條件的行過濾掉,從而減少了要進行分組的行數(shù)

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

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

十六 子查詢

基本語法:

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

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

  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運算符合并多個查詢結(jié)果

基本語法:

  1. select column1 from table1_name union select column2 from table2_name 

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

十八 查詢多個表或視圖的信息

基本語法:select column1,column2,… from talbe1,table2,…

說明:在涉及多表查詢時必須使用where語句給出多表之間的連接條件,對來自N各表或視圖查詢要寫出N-1 個連接條件

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

  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 

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

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

二十一 自連接就是表與它自己進行連接

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

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

原文標題:關(guān)于SQL Server數(shù)據(jù)查詢基本方法的總結(jié)

鏈接:http://www.cnblogs.com/lidingbin/archive/2010/09/23/1833380.html

【編輯推薦】

  1. SQL Server 2000刪除實戰(zhàn)演習(xí)
  2. SQL Server存儲過程的命名標準如何進行?
  3. 卸載SQL Server 2005組件的正確順序
  4. 對SQL Server字符串數(shù)據(jù)類型的具體描述
  5. SQL Server數(shù)據(jù)類型的種類與應(yīng)用
責任編輯:彭凡 來源: 博客園
相關(guān)推薦

2011-08-17 09:34:57

SQL Server

2023-11-28 07:48:23

SQL Server數(shù)據(jù)庫

2011-08-22 16:23:47

SQL Server數(shù)視圖復(fù)雜的數(shù)據(jù)查詢

2009-01-27 21:00:00

服務(wù)器數(shù)據(jù)庫SQL Server

2020-11-26 15:51:11

SQL數(shù)據(jù)庫大數(shù)據(jù)

2011-04-06 11:16:47

SQL Server數(shù)查詢優(yōu)化

2010-11-09 13:09:58

SQL Server分

2010-11-09 11:11:12

SQL Server查

2010-09-26 16:51:03

SQL Server查

2024-12-20 16:41:22

2021-04-09 23:00:12

SQL數(shù)據(jù)庫Pandas

2013-09-08 22:40:38

EF Code Fir數(shù)據(jù)查詢架構(gòu)設(shè)計

2012-08-29 09:29:28

SQL Server

2010-06-30 14:45:07

SQL Server業(yè)

2010-11-08 17:13:21

SQL Server跨

2010-11-11 14:36:11

SQL Server系

2010-09-14 09:53:52

sql server還

2010-09-13 16:06:48

sql server數(shù)

2020-06-17 12:36:45

查詢數(shù)據(jù)Python

2011-04-06 11:34:52

SQL Server數(shù)查詢優(yōu)化
點贊
收藏

51CTO技術(shù)棧公眾號