
學習目标
1.基本的查詢語句
2.指定查詢條件
3.注釋和SQL語句注意事項
4.運算符
5.字元串模糊查詢
一. 基本的查詢語句
我們通過向資料庫發送SQL查詢語句,資料庫裡運作SQL語句,将查詢結果傳回。
最基本的查詢語句包括兩個子句:
SELECT子句,
FROM子句。
子句是SQL語句的組成要素,是五個以關鍵字作為開始的語句。
- 從student表中查找姓名,學号兩列資料
SELECT 姓名, 學号 FROM student;
注:查詢結果中列的順序和SELECT子句中列的順序一緻
- 查詢student表裡全部列(*)
SELECT * FROM student;
- 删除重複資料:在SELECT子句的列名前添加DISTINCT
SELECT DISTINCT 姓名 FROM student;
注:列名不能加單引号,有特殊含義,不是字元串
SELECT DISTINCT 姓名, 學号 FROM student;
注:聯合考慮姓名和學号的重複性
- 使用AS為列設定别名,别名可以讓SELECT語句更加容易了解和操作。
SELECT 姓名 AS '學生姓名', 學号 AS '學生學号' FROM student;
注:中文别名需要使用' '
二. 指定查詢條件
查詢語句通過WHERE子句來指定查找條件:
SELECT *
FROM student
WHERE 姓名 = '猴子'; /* 查詢條件的表達式 */
SQL子句的書寫順序和SQL的運作順序不同
SQL運作順序:SELECT子句最後運作,其他子句按書寫順序運作。
三. 注釋sql語句
注釋能夠幫助閱讀者更好的了解SQL語句,特别是書寫複雜SQL語句。
單行注釋
-- 查詢出全部列
SELECT * FROM student;
多行注釋
/*
查找姓名是猴子學生
的學号
*/
SELECT 學号 FROM student WHERE 姓名 = '猴子';
四. 運算符
算數運算符
加法:+
減法: -
乘法: *
除法:/
SELECT 學号,成績,
成績/100 AS '百分比成績'
FROM score;
注:含有NULL的運算,結果還是NULL
比較運算符
相等:=
不等于 :<>
大于 : >
大于等于: >=
小于: <
小于等于: <=
空值: IS NULL
-- 數值比較
SELECT 學号, 成績
FROM score
WHERE 成績 > 60;
-- 日期比較
SELECT 姓名, 出生日期
FROM student
WHERE 出生日期 < '1990-01-01';
-- 如何查詢出 NULL 值?
SELECT 教師号, 教師姓名
FROM teacher
WHERE 教師姓名 IS NULL
補充:字元串比較
'10' > '2'
邏輯運算符
NOT:否定某一條件
AND:并且
BETWEEN:範圍查詢
OR:或者
IN:OR的簡單寫法
NOT(一般不使用)SELECT 學号, 成績
FROM score
WHERE NOT 成績 >= 80;
SELECT 學号, 成績
FROM score
WHERE 成績 < 80;
注:兩條語句查詢結果一緻
ANDSELECT 學号, 成績
FROM score
WHERE 成績>=60
AND 成績<=90;
BETWEEN
SELECT 學号, 成績
FROM score
WHERE 成績 >= 60
AND 成績 <= 90;
SELECT 學号, 成績
FROM score
WHERE 成績 BETWEEN 60 AND 90;
注:BETWEEN運算符會查找包括兩個邊界的值
INSELECT 姓名, 性别
FROM student
WHERE 姓名 IN ('猴子', '馬雲');
SELECT 姓名, 性别
FROM student
WHERE 姓名 NOT IN ('猴子', '馬雲');
五. 字元串模糊查詢
字元串模糊查詢:LIKE e.g. 搜尋引擎搜尋關鍵詞
%表示任意字元串:
1.猴%
-- 查詢姓猴的學生名單
SELECT *
FROM student
WHERE 姓名 LIKE '猴%';
2.%猴
-- 查詢姓名中最後一個字是聰的學生名單
SELECT *
FROM student
WHERE 姓名 LIKE '%聰';
3.%猴%
-- 查詢姓名中帶猴的學生名單
SELECT *
FROM student
WHERE 姓名 LIKE '%馬%';
_一個下劃線表示任意1個字元
-- 查詢姓王的學生名單,并且姓名是三個字的
SELECT *
FROM student
WHERE 姓名 LIKE '王__';