基本數據檢索:單表 複雜數據檢索:多表:連接查詢、子查詢(嵌套查詢)、集合運算 基本select語句: select <檢索欄位> from <表> where <檢索條件> group by<分類> having<檢索條件> order by <排序欄位> 操縱列: 1.輸出所有列:select ...
基本數據檢索:單表
複雜數據檢索:多表:連接查詢、子查詢(嵌套查詢)、集合運算
基本select語句:
- select <檢索欄位>
- from <表>
- where <檢索條件>
- group by<分類>
- having<檢索條件>
- order by <排序欄位>
操縱列:
- 1.輸出所有列:select *
- 2.輸出指定列:select <欄位>[,...n]
- 3.計算表達式:select <表達式>[,...n]
- 4.設置列表標題名:<表達式> [AS] <別名>|<別名>=<表達式>
- 5.消除重覆記錄:distinct
1 select * from <表名> --查詢表中所有數據
2
3 select <欄位名>,<欄位名> form <表名> --投影
4
5 select <表達式> from <表名> --查詢計算列
6 --eg:表達式為:2020-sage sage為欄位名
7 --:select 2020-sage from 表名
8
9 --計算列沒有名稱,通常需要 命別名
10 --1.欄位 as 別名 : select 2020-sage as 別名 from 表名
11 --2.欄位 別名,即as 可省: select 2020-sage 別名 from 表名
12 --3.別名=欄位: select 出身年=2020-sage from 表名
13
14 select [謂詞] 欄位 from 表名
15 --1. distinct 去重 : select distinct 2020-sage as 別名 from 表名
操作行
1.普通查詢:where <邏輯表達式>
2.模糊查詢:1. 運算符 like 2.通配符 :%任意個字元,_任意一個字元
select [謂詞] 欄位 from 表名
--2.top n:查詢記錄的前n行
select top 3 * from 表名 --選擇前 n 行
--3.top n percent :查詢前n%行
select top 3 percent * from 表名 --選擇前 n% 行
select top n percent 欄位 from 表 where 表達式 order by 排序欄位名 [asc]/desc
--order 預設的排序方式是升序asc,可不寫
select top n percent with ties 欄位 from 表 where 表達式 order by 排序欄位名 [asc]/desc
--with ties 顯示排序欄位的併列值
--eg: top 3 :但第三名與第四名排序欄位相同,則with ties 使第三名和第四名都顯示出來
--in /not in (子查詢/表達式列表) :過濾記錄
select * from 表名 where grade in (88,99)
--between/not between 起始值 and 終止值 :過濾記錄
select * from 表名 where grade between 80 and 90
--欄位 like '正則表達式' :模糊匹配
select * from where 學號 like '%[1,4]' --匹配以1,或4結尾的學號
分組查詢
group by 分組欄位
聚合函數
select count(欄位名) from 表 group by 分組欄位 --查找每個分組的記錄數量
--當使用 count(*)時,統計所有記錄
--當使用 count(欄位名)是,統計記錄不包含null
--當使用 count(distinct 欄位名)時,統計記錄不包含重覆和null
若分組增加條件則使用 having,可在彙總後過濾
即,分組之前的條件使用where ,分組之後的條件使用having