這一節主要包含如下內容:
- ORDER BY 子句
- GROUP BY 子句
- HAVING 子句
- 條件查詢
—AND
—OR
—NOT
—LIKE
—IN
—BETWEEN
一、ORDER BY 子句
說明:
按序查詢表
語法:
SELECT column_list
FROM table_name
[WHERE condition]
[ORDER BY column1, column2, .. columnN] [ASC | DESC];
參數說明:
- column_list:它指定要檢索的列或計算。
- table_name:它指定要從中檢索記錄的表。FROM子句中必須至少有一個表。
- WHERE conditions:可選。 它規定必須滿足條件才能檢索記錄。
- ASC:可選。它通過表達式按升序排序結果集(默認,如果沒有修飾符是提供者)。
- DESC:可選。 它通過表達式按順序對結果集進行排序。
示例1(單列排序):
select * from employees
order by age asc;
結果1:
示例2(多列排序):
select * from employees
order by age, address asc;
結果2:
二、GROUP BY 子句
說明:
用於將具有相同數據的表中的這些行分組在一起(提取出指定列中數據內容完全不同的列)
語法:
SELECT column_list
FROM table_name
WHERE [conditions ]
GROUP BY column1, column2....columnN
ORDER BY column1, column2....columnN
示例1:
select age from employees
group by age;
結果1:
示例2:
select name,address from employees
group by name,age,address,salary;
結果2:
三、HAVING 子句
說明:
HAVING子句與GROUP BY子句組合使用,用於選擇函數結果滿足某些條件的特定行
語法:
SELECT column1, column2
FROM table1, table2
HERE [ conditions ]
GROUP BY column1, column2
HAVING [ conditions ]
ORDER BY column1, column2
示例(顯示name的重復次數小於2次的數據):
select name
from employees
group by name having count(name) < 2;
結果:
三、條件查詢
3.1 AND條件
語法:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
AND [search_condition];
示例:
select * from employees
where age > 21
and salary >100000;
結果:
3.2 OR條件
語法:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition]
OR [search_condition];
示例:
select * from employees
where age = 21
or age = 25;
結果:
3.3 NOT條件
語法:
SELECT column1, column2, ..... columnN
FROM table_name WHERE [search_condition] NOT [condition];
示例:
select * from employees
where age not in (21,23);
結果:
3.4 LIKE條件
說明:
LIKE條件與WHERE子句一起用於從指定條件滿足LIKE條件的表中獲取數據
語法:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] LIKE [condition];
示例1:
select * from employees
where name like 'Ma%';
結果1:
示例2:
select * from employees
where address like '%大道%';
結果2:
3.5 IN條件
說明:
IN條件與WHERE子句一起用於從指定條件滿足IN條件的表中獲取數據(這是個列表,而非范圍)
語法:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] IN [condition];
示例:
select * from employees
where age in (21, 24);
結果:
3.6 BETWEEN 條件
說明:
BETWEEN條件與WHERE子句一起用於從指定條件滿足BETWEEN條件的表中獲取數據(這是個范圍)
語法:
SELECT column1, column2, ..... columnN
FROM table_name
WHERE [search_condition] BETWEEN [condition];
示例:
select * from employees
where age between 21 and 24;
結果: