文章目錄
- 10.4.1、內串連查詢
- 10.4.2、外串連查詢
10.1、基本查詢語句
SELECT 屬性列表
FROM表名和視圖列表
[WHERE條件運算式1]
[GROUPBY 屬性名稱1 [HAVING條件運算式2]]
[ORDERBY 屬性名稱2[ASC|DESC]]
10.2、單表查詢
列出所有欄位
*
指定欄位
指定記錄
WHERE 條件運算式
=,<,>,!及其組合
[NOT]BETWEEN AND
[NOT]IN
[NOT]LIKE
%
_
IS[NOT] NULL
AND,OR
SELECT DISTINCT 屬性名稱
ORDER BY屬性名稱[ASC|DESC]
GROUP BY, GROUP_CONTACT()函數非常好用
SELECTsex, GROUP_CONTACT(name) FROM employee GROUP BY sex;
GROUP BY與WITHROLLUP一起使用,多一行,加統計
SELECTsex COUNT(sex) FROM employee GROUP BY sex WITH ROLLUP;
LIMIT [初始位置,] 記錄數
10.3、使用集合函數查詢
COUNT(), AVG(), MAX(),MIN(), SUM()
10.4、串連查詢10.4.1、內串連查詢
select a.*, b.* from a, b wherea.xid=b.xid
10.4.2、外串連查詢
SELECT 屬性名稱列表 FROM 表名1 LEFT|RIGHT JOIN 表名2
ON 表名1.屬性1=表名2.屬性2;
LEFT JOIN 左表全記錄,右表符合條件
RIGHT JOIN 右表全記錄,左表符合條件
10.5、子查詢
IN
EXISTS 表示存在,內層查詢語句不返回查詢的記錄,而是返回一個真假值(true|false)
ANY任意一個值
SELECT * FROM computer_stu WHERE scrore>=ANY(SELECT score FROM scholarship)
ALL 滿足所有條件
10.6、合并查詢結果
SELECT 語句1
UNION | UNION ALL
SELECT 語句2
…
UNION 所有的查詢結果合并到一起,去掉重複項
UNION ALL 簡單合并
10.7、為表和欄位取別名
表名 表的別名
屬性名稱 [AS] 屬性的別名
10.8、使用Regex查詢
屬性名稱 REGEXP ‘匹配方式’
^ 字串開始
$ 字串結束
. 任意一個字元,包括斷行符號和換行
[字元集合] 匹配字元集合中的任一字元
S1|S2|S3 三者之任一
* 任意多個
+ 1+個
字串{N} 字串出現N次
字串{M,N} 字串出現至少M次,至多N次
SELECT * FROMinfo WHERE name REGEXP ‘ab{1,3}’;