資料庫的整理
阿新 • • 發佈:2019-01-31
select * from 表名 // * 代表所有列
select 列名 from 表名 //不查詢所有列
where 子句:
select *from 表名 where 條件(例:EmployeeID =1)//按條件查詢
//條件支援的比較運算子 >,<,=,>=,<=,!=,!>,!<(不小於)
//多條件連結 or至少一個滿足即可,and所有條件都滿足,not不滿足條件的
//between 下限and 上限 在下限和上限之間的,not between 下限and 上限 相反
//in (‘值表’)在值表中的值 not in (‘值表’)不在的
//萬用字元 %任何字串 _表示單個字元 []指定範圍內的字元 [^]指定範圍外的字元
//與萬用字元連用的like 關鍵字 like後內容不分大小寫
//例:like '%ion'以ion結尾的任何值 like ‘%rt%’ 包含rt的任何值
//like ‘_rt’以rt結尾的,三個字的值 like ‘[dk]%’以d,k開頭的
//like ‘[a-d]ear’ 以ear結尾並開頭第一個字母在a-d之間,四個字母
//like ‘d[^c]%’ 以d開頭 第二字母不是c的任意值
//is null 查詢為空的 is not null 相反
別名:
select ‘學校’=school,‘地址’=address from 表名 //給列起別名 也可以用 (列名 as 別名)
select e.address,e.age,e.sex from 表名 as e //給表起別名 便於輸入列名
select name+‘的工資是’+money as 工資情況 from 表名 //並置文字,提高列的可讀性,用加號連結,文字要用‘雙引號’隔開,類似語言的printf格式化輸出
select money/8 as rate from 表名 //對列進行運算後輸出 支援+-*/%
coalesce(列名,列名……) 找出列名中第一個不為空的
isnull(列名,替換值) 可以吧null換為替換值 作為列輸出
order by 子句(排序):
select *from 表名 order by name asc/desc 升序/降序 不加就是升序
top關鍵字:
select top 10 *from 表名 //前10行
select top 10 percent *from 表名 //前10%行
select top 3 with ties 列名 from 表名 order by 排序條件
//加with ties意思是在列出top指示的行數後再顯示排名最靠後的資料 用with ties時必須用order by子句排序
select top 10 *from 表名 where 條件 order by 條件 //top可以和where子句連用
offset&fetch: (必與order by子句連用)
order by 列名 offset X rows fetch next Y rows only //從第x行開始以後y行資料
select EmployeeID, Title, BirthDate
from [HumanResources].[Employee]
order by EmployeeID
offset 5 rows //除去從第5行前的所有
檢索不重複的資料(distinct):
select distinct EmployeeID , Title
from [HumanResources].[Employee]