SQL Server數據查詢基本方法的探討
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
首先創建一個簡單的數據庫作為示例數據庫,數據庫名稱為school_db,里面有三張表 Department_TBL(DNO,DName),Class_TBL(CNO,CName,DNO),Student_TBL(SNO,SName,SSex,CNO) 一 基本查詢 基本語法:select (查詢列表|*) from (表列表) 說明:“查詢列表”可以是表的字段,表達式,函數。“表列表”可以包含多張表 示例:查詢所有學生的基本信息
二 where條件查詢 基本語法:select (查詢列表|*) from (表列表) where (限制條件) 說明:where關鍵字后面的限制條件不能包含聚合函數 示例:查詢所在班級編號是“003”的學生的基本信息
三 關鍵字in的使用 基本語法:select (查詢列表|*) from (表列表) where (字段名) in (值集合) 說明:in關鍵字的作用是查詢某一字段是否在一個集合中,一般在where語句中使用 示例:查詢學號為23,34,35,40 學生的信息
四 between和 Not between的使用 基本語法:select (查詢列表|*) from (表列表) where (字段名) between||not between 值1 AND 值2 說明:判斷某個字段的值是否在一個范圍之內 示例:查詢所有學號大于5小于30的學生的信息
五 消除結果集中的重復行 基本語法:select distinct column1,… from (表列表) 說明:去除結果集中跟在distinct關鍵字后面所有字段的值相等的記錄 示例:查詢所有學生的信息,刪除名字相同的多余行
六 返回指定的行數(百分率) 基本語法:select top n [percent](column1,…) from (表列表) 說明:n為要返回的行數,若含有percent關鍵字則按百分比返回,則此時n必須在0~100之間,若查詢語句中含有order by 則先對查詢結果進行排序,再執行篩選 示例:返回前十名學生的基本信息
返回前百分之十的學生的基本信息
七 改變查詢標題 基本語法:select ‘自定義標題’=column1,…. From (表列表),select column1 ‘自定義標題’,…. From (表列表),select column1 as ‘自定義標題’,… from (表列表) 說明:改變的只是查詢結果的標題,并沒有改變表的標題 示例:查詢學生的基本信息,SNO,SName,CNO分別用“學號”,“姓名”,”所屬班級”顯示 、這里只使用第三種方法演示了 Select ‘學號’ as SNO,’姓名’ as SName,’所屬班級’ as ‘CNO’ from Student_TBL 八 在查詢結果中顯示字符串 基本語法:在select 語句中,將增加的字符串用單引號括起來然后和列的名字寫在一起,中間用逗號分開 示例:查詢所有學生信息,顯示的結果的形式是“學號+“我的姓名是+”性命+班級編號” Select SNO,’我的姓名是’,SName,CNO from Student_TBL 九 order by的使用 基本語法:
說明:order by 后面可以指定多個列,默認是按升序方式排列的,order by 放在where 語句之后 示例:查詢所有學好大于23號的學生信息,并按學號的降序排列
十 使用Like實現模糊查詢 基本語法:select * from table_Name where column like (匹配條件) 說明:“%”匹配任意長度的(長度可以為0)字符串,“_”匹配任意單個字符,“[]”:匹配所給定范圍或集合中的任意單個字符,“[^]”匹配所給定的不在所給定的集合或范圍中的任意單個字符,通配符或字符串必須用單引號括起來 示例:查詢所有姓李的同學地信息
查詢所有學生名字中第二個字為“冰”的同學的信息
查詢所有編號中含有’e,t,y’字符的班級信息
查詢所有編號中不含有’e,t,y’字符的班級信息
十一 使用is null 基本語法:
說明:查詢指定列為輸入數據的數據行,通常用在where語句中 示例:查詢還沒有分配班級的學生的信息
十二 使用compute進行計算 基本語法:select * from table_name where 查詢條件 compute 聚合函數 說明:用來計算總計或進行分組小計,總計或小計值作為附加行出現在查詢結果中 示例:計算在編號為‘001’班級的學生的信息并統計該班有多少個學生
十三 使用compute by分組查詢結果 基本語法:select * from table_Name [where..] order by column compute 聚合函數 by column 說明:在使用compute by之前必須先使用order by 對要進行分組的列進行排序,注意,在oerder by 中進行排序的列的數量和順序必須和compute by 后的項一樣 示例:根據不同班級分組統計各個班級學生的信息
十四 使用group by 基本語法:select * from table_name [where…] group by column 說明:在select 子句中使用聚合函數時,group by計算每組的匯總值,使用group by子句時,在select 子句中出現的列名或者出現在聚合函數中,或者出現在group by 子句后面,否則會抱錯,另外group by后面還可以恩 with cube||rollup, 示例:統計每個班級有多少學生,不顯示學生的信息,只顯示統計信息
十五使用having語句 基本語法:select * from table_name [where …] group by column having … 說明:having子句用于限定對組或者聚合函數的查詢條件,該子句常用于group by 子句后面,在查詢結果分組后對組判斷是否滿足查詢條件,在分組之前可以用where語句判斷查詢條件,使用where比使用having更有效,因為它先將不滿足條件的行過濾掉,從而減少了要進行分組的行數 示例:分組統計除編號為‘001’外所有班級學生的人數
十六 子查詢 基本語法: 說明:子查詢是在查詢中包含另一個查詢的查詢,可以使用子查詢代替表達式,自查詢只能返回一列數,有時只返回但個值 示例:查詢班級人數大于平均班級人數的班級
十七 使用union運算符合并多個查詢結果 基本語法:
說明:所有查詢中的列數和列的順序必須相同,所有查詢中按順序對應列的數據類型必須相同或兼容,如果希望重新排序多個查詢結果的合并結果,則在最后的select 語句中使用order by子句 十八 查詢多個表或視圖的信息 基本語法:select column1,column2,… from talbe1,table2,… 說明:在涉及多表查詢時必須使用where語句給出多表之間的連接條件,對來自N各表或視圖查詢要寫出N-1 個連接條件 示例:查詢每個學生所在的系部的名稱,班級的名稱和姓名
十九 相等連接與自然連接:相等連接是將要連接的列作相等比較的連接,在相等連接列中只保留一個連接列的連接稱為自然連接 二十 比較連接:表與表之間的連接不使用“=”連接,而是使用比較運算符的連接 二十一 自連接就是表與它自己進行連接 二十二 左連接,右連接和全連接 二十三 使用exists:在where子句中可以使用exists子句,它用于測試跟隨的子查詢中的行是否存在 該文章在 2011/5/4 17:57:16 編輯過 |
關鍵字查詢
相關文章
正在查詢... |