一 查詢常量
1. SELECT 學生編號, 學生姓名,性別 FROM tb_Student
2. SELECT 學生姓名 AS 姓名, 性別 AS 學生性別 FROM tb_Student
3. SELECT 學生姓名 姓名, 性別 學生性別 FROM tb_Student
4. SELECT 學生姓名 姓名, 高數+外語 AS 高數加外語分數 FROM tb_Student
5. SELECT 學生姓名,學生編號 FROM tb_Student WHERE LEN(學生姓名) = 2
6. SELECT 學生姓名,年齡 FROM tb_Student WHERE 年齡 = 24
7. SELECT 學生姓名,年齡,性別 FROM tb_Student WHERE 學生姓名 = ‘安心’
8. SELECT 學生姓名,年齡,出生年月 FROM tb_Student WHERE 出生年月 = ‘1981/12/8’
9. SELECT 學生姓名,年齡,統招否 FROM tb_Student WHERE 出生年月 = ‘TRUE’
10.SELECT 學生姓名,年齡,家庭住址 FROM tb_student WHERE 家庭住址 IS NULL OR 家庭地址 = ‘’
二 查詢變量(string.Format())
1. SELECT 學生姓名,年齡,性別,家庭住址 FROM tb_Student WHERE 學生姓名 = ‘{0}’,Name
2. SELECT 學生姓名,年齡,性別,家庭住址 FROM tb_Student WHERE 年齡 = {0},Age
3. SELECT 學生姓名,年齡,性別,出生日期 FROM tb_Student WHERE 出生日期 = {0},dt.ToShortDatestring
4. SELECT 學生姓名,年齡,性別,出生日期 FROM tb_Student WHERE 出生日期 BETWEEN '2014/1/1' AND '2014/2/1'
三 模糊查詢
1. SELECT 學生姓名,年齡,性別 FROM tb_Student WHERE 學生姓名 LIKE ‘張_’
2. SELECT 學生姓名,年齡,性別 FROM tb_Student WHERE 學生姓名 LIKE ‘張__’
3. SELECT 學生姓名,年齡,性別 FROM tb_Student WHERE 學生姓名 LIKE ‘張%’
4. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 出生日期 LIKE ‘%1981%’
5. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 年齡 LIKE ‘2[0-9]’
6. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 年齡 LIKE ‘[1-2][0-9]’
7. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 學生姓名 LIKE ‘[^李]%’
8. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 年齡 LIKE ‘[1-2][^0-5]
9. SELECT 學生姓名,年齡,出生日期 FROM tb_Student WHERE 年齡 LIKE ‘[1-2][^0-5] AND 學生姓名 LIKE ‘李%’
四 TOP 和 PERCENT 限制查詢結果
1. SELECT Top 10 學生編號,學生姓名,年齡,家庭住址 FROM tb_Student ORDER BY 學生編號 ASC
2. SELECT Top 10 學生編號,學生姓名,高數,外語 FROM tb_Student ORDER BY 高數+外語 ASC
3. SELECT Top 10 * FROM(SELECT TOP 20 * FROM tb_Grade ORDER BY 總分 DESC) AS st ORDER BY 總分 ASC
4. SELECT TOP 50 PERCENT 書號,書名,SUM(銷售數量) AS 合計銷售數量 FROM tb_Book GROUP BY 書號,書名,做者 ORDER BY 3 DESC
5. SELECT TOP 20 PERCENT * FROM tb_BookMessage ORDER BY 現存數量 ASC
五 數值查詢
1. SELECT 學生姓名,ISNUMERIC(年齡)FROM tb_Student
2. SELECT dm AS 數值取整前, CEILING(dm) AS 數值取整後 FROM tb_Money
3. SELECT dm AS 數值取整前, FLOOR(dm) AS 數值取整後 FROM tb_Money
4. SELECT dm AS 四捨五入前, ROUND(dm,2) AS 四捨五入後 FROM tb_Money
5. SELECT angle AS 角度, SIN(ANGLE*PI()/180) AS 正弦值 FROM tb_Angle
6. SELECT angle AS 角度, COS(ANGLE*PI()/180) AS 餘弦值 FROM tb_Angle
7. SELECT myvalue AS 數值, ABS(myvalue) AS 求絕對值後 FROM tb_Value
8. SELECT * FROM tb_Student WHERE 學生編號 = 22050110+FLOOR(RAND()*10)
9. SELECT myvalue AS 數值,SIGN(myvalue) AS 判斷數值 FROM tb_value
六 字符串查詢
1. SELECT friendname AS 字符串,LOWER(friendname) AS 所有轉換爲小寫, UPPER(friendname)AS 所有轉換爲大寫 FROM tb_string
2. SELECT friendname AS 字符串,(LEN(friendname)-LEN(REPLACE(friendname,'i','')))/LEN('i') FROM tb_string
3. SELECT 學生姓名,所在院校, SUBSTRING(所在院校,2,3) AS 所在學院子串 FROM tb_Student
4. SELECT 出生年月,SUBSTRING(CONVERT(VARCHAR(20),出生年月),6,5) AS 年 FROM tb_Student
5. SELECT 所在學院 AS 刪除字符串前,STUFF(所在院校,2,3,'') AS 刪除字符串後 FROM tb_Student
6. SELECT 所在學院,CHARINDEX('學院',所在學院) AS 索引位置 FROM tb_Student
7. SELECT 所在學院, REPLACE(所在學院,'學院','XueYuan')AS 替換後的信息 FROM tb_Student
8. SELECT 學生姓名, CASE WHEN 所在學院 = '計算機學院' THEN '計算機學院學生' ELSE '否' END AS 是否爲計算機學院學生 FROM tb_Student
七 週期和日期的查詢
1. SELECT 學生編號,學生姓名, CASE WHEN ISDATE(出生年月) =1 THEN '是日期信息' ELSE '非日期新奇' END AS 生日字段是否爲日期信息 FROM tb_Student
2. SELECT 學生編號,學生姓名 FROM tb_Student WHERE 出生年月 = '1980/12/24'
3. SELECT 學生編號,學生姓名 FROM tb_Student WHERE 出生年月 LIKE '%1980%'
4. SELECT * FROM tb_Book WHERE 日期 BETWEEN '2005/8/1' AND '2005/10/1'
5. SELECT 書號,書名 FROM tb_Book WHERE YEAR(日期) = '2010'AND MONTH(日期) = '9' AND DAY(日期) = '26'
6. SELECT GETDATE() AS 當前日期時間, DATENAME(WEEKDAY,GETDATA()) AS 星期
7. SELECT 學生姓名,出生年月,DATEDIFF(TEAR,出生年月,GETDATE()) AS 學生年齡 FROM tb_Student
八 比較、邏輯、重複查詢
1. SELECT * FROM tb_Grade WHERE 軟件工程>90 AND 外語 NOT BETWEEN 70 AND 85
2. SELECT DISTINCT 書號,條形碼,書名,做者 FROM tb_Book
3. SELECT COUNT(書號) AS 記錄條數,書號,書名,做者 FROM tb_Book GROUP BY 書號,書名,做者 HAVING COUNT(書號)>1
九 在查詢中使用OR 和 AND
1. SELECT * FROM tb_Grade WHERE (外語 > 90 OR 高數> 90) AND 語文 >80
2. SELECT * FROM tb_Grade WHERE 外語 > 90 AND 高數 > 90
十 排序、分組統計
1. SELECT 出版社 SUM(金額) AS 總金額 FROM tb_Book GROUP BY 出版社
2. SELECT 書名,出版社,SUM(金額) AS 總金額 FROM tb_Book WHERE 出版社 = '人郵' GROUP BY ALL,書名,出版社
3. SELECT 所屬部門,性別, AVG(工資) AS 平均工資 FROM tb_Employee GROUP BY 所屬部門,性別 WITH CUBE
4. SELECT 所屬部門,性別, AVG(工資) AS 平均工資 FROM tb_Employee GROUP BY 所屬部門,性別 WITH ROLLUP
5. SELECT * FROM tb_Grade ORDER BY 馬經 ASC 高數 DESC
6. SELECT TOP 5 書號,書名,做者,出版社, SUM(銷售數量) AS 合計銷售數量 FROM tb_Book GROUP BY 書號,書名,做者,出版社 ORDER BY SUM(銷售數量) DESC
7. SELECT 學生姓名,性別,年齡,所在學院 FROM tb_Student ORDER BY 學生姓名 COLLATE chinese_prc_stroke_cs_as_ks_ws
8.SELECT 學生姓名,性別,年齡,所在學院 FROM tb_Student ORDER BY 學生姓名 COLLATE chinese_prc_cs_as
9. SELECT 存放位置,書名,SUM(庫存數量)AS 合計庫存數量 FROM tb_Depot GROUP BY 存放位置,書名 ORDER BY SUM(庫存數量) DESC
10. SELECT k.書號,k.書名,x.做者, SUM(k.現存數量) AS 現存數量, SUM(x.銷售數量) AS 銷售數量 FROM tb_Vendition AS x, tb_BookMessage AS k WHERE x.書號 = k.書號 GROUP k.書號,k.書名,x.做者,k.現存數量 ORDER BY 書號
11. SELECT * FROM tb_Employee ORDER BY 所屬部門 COMPUTE SUM(工資)
12. SELECT * FROM tb_Employee ORDER BY 所屬部門 COMPUTE SUM(工資) BY 所屬部門
十一 聚合函數
1. SELECT SUM(銷售數量) AS 總數量, SUM(金額) AS 總金額 FROM tb_Book
2. SELECT AVG(年齡) AS 平均年齡 FROM tb_Student
3. SELECT * FROM tb_Ware WHERE 銷價 IN (SELECT MIN(銷價) FROM tb_Ware)
4. SELECT * FROM tb_Ware WHERE 銷價 IN (SELECT MAX(銷價) FROM tb_Ware)
5. SELECT COUNT(DISTINCT 商品名稱) AS 商品數 FROM tb_Ware WHERE 銷價 > 1000
6. SELECT FIRST(BookNames) AS Bookname, FIRST(author) AS peo, FIRST(sellsum) AS 第一條數據記錄 FROM tab_booksort
7. SELECT LAST(BookNames) AS Bookname, LAST(author) AS peo, LAST(sellsum) AS 第一條數據記錄 FROM tab_booksort
8. SELECT 所在學院 COUNT(所在學院) AS 學生數量 FROM tb_Student GROUP BY 所在學院
9. SELECT 學生編號,學生姓名,高數 FROM tb_Grade WHERE 高數 > (SELECT AVG(高數) FROM tb_Grade)
10 SELECT COUNT(DISTINCT 家庭住址) FROM tb_Student WHERE NOT(家庭住址 IS NULL OR 家庭住址 = '')
11. SELECT COUNT(學生編號) AS 學生數量, SUM(高數) AS 高數總分數 FROM tb_Grade WHERE 學生編號 IN(SELECT FLOOR(RAND()*10)+22050110 AS 隨機數 UNION SELECT FLOOR(RAND()*10) +22050110 UNION SELECT FLOOR(RAND()*10)+22050110)
十二 多表查詢
1. SELECT s.學生編號,s.學生姓名,s.性別,m.高數 FROM tb_Student AS s, tb_Grade As m WHERE s.學生編號 = m.學生編號 AND m.高數 > 85
2. SELECT S.學生編號,S.學生姓名,M.高數,M.外語 FROM tb_Student AS S,tb_Grade AS M WHERE S.學生編號 = M.學生編號 AND S.所在學院 = '計算機學院'
3. SELECT 顧客編號 AS 編號,顧客姓名 AS 姓名,所在城市,郵編 FROM tb_Buyer UNION SELECT 僱員編號,僱員姓名,家庭住址,郵編 FROM tb_Saleman
4. SELECT st.學生姓名,st.性別,st.年齡, gr.高數,gr.外語,gr.軟件工程 FROM tb_Student AS st, tb_Grade AS gr (笛卡爾成績查詢)
十三 嵌套查詢
1. SELECT 學生編號,性別,姓名,所在專業 FROM tb_Student WHERE 學生編號 IN(SELECT 學生編號 FROM tb_Grade WHERE 總分 >= 580)
2. SELECT * FROM tb_EmployeeLaborage WHERE 工資月份 = 10 AND 人員姓名 IN(SELECT 負責人 FROM tb_EmployeeDepartment WHERE 負責人 IN(SELECT 人員姓名 FROM tb_EmployeePerson WHERE 學歷 ='本科')) ORDER BY 人員編號
3. SELECT * FROM tb_Grade WHERE 高數 > ALL (SELECT 高數 FROM tb_Grade WHERE 學生姓名 IN('王立','李麗'))
4. SELECT * FROM tb_Grade WHERE 高數 > ANY (SELECT 高數 FROM tb_Grade WHERE 學生姓名 IN('王立','李麗'))
十四 子查詢
1. SELECT * FROM (SELECT * FROM tb_Student WHERE 學生編號 IN(SELECT 學生編號 FROM tb_Grade WHERE 軟件工程 > (SELECT 軟件工程 > FROM tb_Grade WHERE tb_Grade WHERE 學生姓名 ='王曉亮'))) AS stu ORDER BY stu.學生編號
2. SELECT * FROM tb_Student WHERE 學生編號 IN(SELECT 學生編號 FROM tb_Grade WHERE 高數 > (SELECT AVG(高數) FROM tb_Grade))
3. SELECT st.*, gr.總分 FROM tb_student AS st INNER JOIN tb_Grade AS gr ON st.學生編號 = gr.學生編號 WHERE 所在學院 = '理學院' AND gr.總分 > ALL(SELECT gr.總分 FROM tb_Grade AS gr INNER JOIN tb_Student AS st ON st.學生編號 = gr.學生編號 WHERE st.所在學院 = '管理學院')
4. SELECT st.*, gr.總分 FROM tb_student AS st INNER JOIN tb_Grade AS gr ON st.學生編號 = gr.學生編號 WHERE 所在學院 = '理學院' AND gr.總分 > ANY(SELECT AVG(CONVERT(INT,總分) FROM tb_Grade)
5. SELECT * FROM tb_Student AS st WHERE EXISTS (SELECT * FROM tb_Grade AS gr WHERE st.學生編號 = gr.學生編號 AND gr.總分 > 580)
6. SELECT 所在學院,學生姓名,年齡,(SELECT AVG(年齡) FROM tb_Student) AS 平均年齡 FROM tb_Student GROUP BY 所在學院,學生姓名,年齡 HAVING 年齡 > (SELECT AVG(年齡) FROM tb_Student)
7. UPDATE tb_Laborage SET 基本工資 = (SELECT 基本工資 FROM tb_AppointedLaborage WHERE 工做時間 = '1年') WHERE 員工姓名 = '江南'
8. DELETE FROM tb_Student WHERE 學生編號 IN(SELECT 學生編號 FROM tb_Student WHERE 性別 ='女' AND 出生年月 = '1981/12/12' AND 所學專業 = '會計學')
十五 組合語句
1. SELECT 學生編號,學生姓名,性別,年齡 FROM tb_Student WHERE 所在學院 = '理學院' UNION SELECT 學生編號,學生姓名,性別,年齡 FROM tb_Student WHERE 學生編號 IN(SELECT 學生編號 FROM tb_Grade WHERE 總分 > 600)
2. SELECT 學生姓名 FROM tb_Student UNION SELECT CONVERT(VARCHAR(20),總分) FROM tb_Grade WHERE 總分 > 570 UNION SELECT 課程名稱 FROM tb_Course
3. SELECT 年齡 AS 信息 FROM tb_Student UNION SELECT 總分 FROM tb_Grade UNION SELECT 課程編號 FROM tb_Course ORDER BY 信息 ASC
4. SELECT 學生編號,學生姓名 FROM tb_Student INTERSECT SELECT 學生編號,學生姓名 FROM tb_Grade
5. SELECT 學生編號,學生姓名 FROM tb_Student EXCEPT SELECT 學生編號,學生姓名 FROM tb_Grade
十六 內鏈接查詢
1. SELECT tb_Student.學生姓名,tb_student.性別,tb_Grade.總分 FROM tb_Student INNER JOIN tb_Grade ON tb_Student.學生編號 = tb.Grade.學生編號
2. SELECT st.學生姓名,st.性別,st.年齡,gr.總分,tc.出勤率 FROM tb_student AS
st INNER JOIN tb_Grade AS gr ON st.學生編號 = gr.學生編號 INNER JOIN tb_StudentTimeCard AS tc ON st.學生編號 = tc.學生編號
3. SELECT st1.* FROM tb_Student AS st1 INNER JOIN tb_Student AS st2 ON st1.所在學院 = st2.所在學院 AND st2.學生姓名 = '李小龍'
4. SELECT st1.* FROM tb_Student AS st1 INNER JOIN tb_Student AS st2 ON st1.所在學院 <>st2.所在學院 AND st2.學生姓名 = '李小龍'
5. SELECT 員工信息表.人員編號,員工信息表.人員姓名 FROM tb_employeeperson AS 員工信息表 INNER JOIN tb_EmployeeLaborage AS 員工工資表 ON 員工信息表.AS 人員編號 = 員工工資表.人員編號
十七 外鏈接查詢
1. SELECT tb_Student.學生姓名,tb_student.性別,tb_Grade.總分 FROM tb_Student LEFT OUTER JOIN tb_Grade ON tb_Student.學生編號 = tb.Grade.學生編號
2. SELECT tb_Student.學生姓名,tb_student.性別,tb_Grade.總分 FROM tb_Student RIGHT OUTER JOIN tb_Grade ON tb_Student.學生編號 = tb.Grade.學生編號
3.SELECT st.學生姓名,st.性別,st.年齡,gr.總分,tc.出勤率 FROM tb_student AS
st LEFT OUTER JOIN tb_Grade AS gr ON st.學生編號 = gr.學生編號 LEFT OUTER JOIN tb_StudentTimeCard AS tc ON st.學生編號 = tc.學生編號
十八 利用IN進行查詢
1. SELECT * FROM tb_Ware WHERE 銷價 IN (SELECT MAX(銷價) FROM tb_Ware)
2. SELECT * FROM tb_Ware WHERE 銷價 NOT IN (SELECT MAX(銷價) FROM tb_Ware)
十九 交叉運算
1. Transform aggfunction selectstatement PIVOT pivotfield [IN(value1[value2[...]])]
2. Case input_expression
WHEN when_expression THEN result_expression
[...n]
ELSE else_result_expression
END
3. 存儲過程?
二十 函數查詢
1. SELECT 員工姓名,出生日期 AS 格式化前出生日期 FORMAT(出生日期,'yyyy年mm月dd日') AS 格式化後日期 FROM 員工生日表
2. SELECT 出生年月,DATENAME(YEAR,出生年月)+'年'+DATENAME(MONTH,出生年月)+'月'+DATENAME(DAY,出生年月)+'日' AS 處理後出生年月 FROM tb_Student
3. SELECT 員工姓名, FORNAT(出生日期,'yyyy年mm月dd日') AS 出生日期,MID(出生日期,1,7) AS 出生年月 FROM 員工生日表
4. SELECT 員工姓名, FORNAT(出生日期,'yyyy年mm月dd日') AS 出生日期,SUBSTRING(出生日期,1,7) AS 出生年月 FROM 員工生日表
5. SELECT 員工姓名,出生日期,DATEDIFF('yyyy',出生日期,DATE()) AS 年齡 FROM 員工生日表
二十一 索引查詢
1. CREATE UNIQUE INDEX index_Student ON tb_Student(學生編號)
2. DROP INDEX tb_Student.index_Student
3. CREATE CLUSTERED INDEX index_Student ON tb_Student(學生編號)
4.
二十二 應用存儲過程
1.
二十三 Having語句應用
1. SELECT 所在學院,COUNT(*) AS 人數,AVG(年齡) AS 平均年齡 FROM tb_Student GROUP BY 所在學院 HAVING AVG(年齡) > 22
2. SELECT 所在學院,COUNT(*) AS 人數,MAX(高數) AS 最高成績,AVG(高數) AS 高數平均成績 FROM tb_student AS st INNER JOIN tb_grade AS gr ON st.學生編號 = gr.學生編號 GROUP BY 所在學院 HAVING AVG(高數) > 60 express