1. distinct的使用
distinct 用於在查詢中返回列的唯一不同值(去重複),支持單列或多列。(只能寫在SELECT的後面)
比如,我們想獲取員工表中所有的部門,可以將SQL語句寫成如下:
SELECT DISTINCT department FROM employee;
2. 子查詢in
如果運算符 in 後面的值是來源於某個查詢結果,並非是指定的幾個值,這是就需要用到子查詢。子查詢又稱爲內部查詢或嵌套查詢,即在SQL查詢的WHERE子句中嵌入查詢語句。
它的基本形式如下:
SELECT column_name FROM table_name
WHERE column_name IN(
SELECT column_name FROM table_name [WHERE]
);
下面是一個簡單的示例,根據表 score 中student_no字段,顯示 student 表中的具體學生信息。
SELECT * FROM student
WHERE id
IN (SELECT student_no FROM score);
3. 子查詢exists
exists 是子查詢中用於測試內部查詢是否返回任何行的布爾運算符。將主查詢的數據放到子查詢中
做條件驗證,根據驗證結果(TRUE 或 FALSE)來決定主查詢的數據結果是否保留。
它的一般形式如下:
#where子句使用exists語法
SELECT column_name1
FROM table_name1
WHERE EXISTS (SELECT * FROM table_name2 WHERE condition);
簡單的示例:
select * from
student A
where exists
(select * from score B where A.id = B.student_no and B.course = '線性代數');