SQL Server數據庫--》top關鍵字,order by排序,distinct去除重復記錄,sql聚合函數,模糊查詢,通配符,空值處理。。。。


  

top關鍵字:寫在select后面 字段的前面

比如你要顯示查詢的前5條記錄,如下所示:

select top 5 * from Student

一般情況下,top是和order by連用的

order by用在表名的后面 order by后面就填你要按它排序的字段,是升序排序(從小到大排序)

percent:百分比 %=percent

比如要顯示5%的數據處理,不能寫top 5%,而是top 5 percent

提示:如果top 5 percent出來的數是3.1條數據的話,是取四條數據,而不是3條

 

使用distinct去除重復記錄:

注意:重復記錄與表的原始數據無關,它只關注通過查詢語句查詢出來之后的結果集,如果虛擬結果集的每一列的值都一樣,那么才算重復記錄,如果有一個值不一樣,那么就是一條單獨的記錄

 

--sql聚合函數--

count();求滿足條件的記錄數,與值無關 

注意:count()括弧中隨意傳入參數,因為它與具體值無關,只與記錄數有關,一般傳入0或 * 號。如count(*)

max();求最大值 括弧中傳入字段名  如max(age)

min();求最小值

sum();求和    括弧中傳入要求和的字段名

avg();求平均值   括弧中傳入要求平均值的字段名

注意:sum/avg不能針對日期和名字計算

 

--模糊查詢--

注:select 字段列表 from 表列表 where 條件 Order by 排序字段

下面的都是作為條件,用在where后面

1.between...and  相當於>=n,<=m 優先使用between...and,因為做過優先處理,效率高

它是用來描述數值或日期值的,對字符串沒用

2.in相當於and,and,and 其實可以in(1,2,3)三選一

3.not in(1,2,3)不在這個范圍之內

以上的between...and,in,not in 都是用在where后面的字段的后面

 

通配符:

1  %代表任意個任意字符 

2  _:它就代表一個字符占位,相當於.代表一個具體的字符

3 []:相當於指定一個具體的范圍或者具體的值范圍。這點用 法與正則表達式一樣

4 [^]:取反

like:像。。一樣:如果要使用通配符,則必須配合 模糊查詢關鍵字

 

空值處理:null是指不知道,而不是像C#里面一樣說沒有分配地址 所以判斷是否為null值的時候不能用等號(=),而是用is,如:select * from Student where name is null

判斷的是學生表中的name字段是不是null

 

ISNULL()方法:用在select 字段 的后面,為的是判斷所查詢出的結果(這個字段)是否為null,如果為null值就用指定內容進行替換如下所示:

Select *,ISNULL(name,‘沒有寫名字’) from Student 

 

數據排序:order by 

排序默認是升序排序

升序:asc

降序:desc

如果排序有多個字段,是指先按第一個字段進行排序,相同的記錄再按第二個字段排序

如:select * from Student order by sex,name desc

 

分組統計:先分組再統計

分組:group by 對指定的字段進行分類 用再表的后面 然后group by 后面再接要被分組的字段

如:

--得到男生女生的總人數

Select sex,Count(*) from Student group by sex

查詢語句的順序:

Select from where group by having order by

注意:where是對源數據做篩選的。它只能去使用from后面的表中所指的列

Where條件后面不能使用聚合函數,如果使用了就會報錯

 

having:

如果是對分組之后的結果集做篩選,那么就需要使用having,因為where條件后面不能釋懷聚合函數

如:

Select classId,Count(*) from Student group by classId having COUNT(*) >2

 

Sql的分類

1、DDL(數據定義語言,建表,建庫等語言)

2.DML(數據操作語言mutipulation) 增加刪除修改和查詢 也叫CUID:數據庫的增刪改查3.DCL(數據庫控制語言)

類型轉換

1.--cast(源數據 as 目標類型)--

2.--Convert(目標類型,源數據,格式(日期值的格式))

 

Select getdate()--得到當前系統時間  select GETDATE()

 

聯合結果集union  (很少使用)

Union all :不管結果是否重復,都顯示出來

Union:重復的數據不顯示出來

Union在合並多個結果集的限制:

1.要有相同數量的列

2.對應的列的類型要一致,類型可以強制轉換()cast或Convert

 

 

 

 

 

 

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM