SELECT
是 SQL 語言中用來從數據庫表中查詢數據的基本語句。其主要功能包括:
選擇列:指定從哪個列中取數據。
SELECT column1, column2
FROM table_name;
選擇所有列:用 *`` 來選擇表中的所有列。
SELECT *
FROM table_name;
篩選數據:使用 WHERE
子句來過濾結果集,只顯示符合條件的行。
SELECT column1, column2
FROM table_name
WHERE condition;
排序數據:使用 ORDER BY
子句來對結果集進行排序。可以指定升序(ASC
)或降序(DESC
)。
SELECT column1, column2
FROM table_name
ORDER BY column1 ASC, column2 DESC;
分組數據:使用 GROUP BY
子句來將結果集按照指定列分組,常與聚合函數(如 COUNT
, SUM
, AVG
等)一起使用。
SELECT column1, COUNT(*)
FROM table_name
GROUP BY column1;
聚合數據:使用聚合函數來計算分組或整個結果集的統計信息。
SELECT AVG(column1), SUM(column2)
FROM table_name;
限制結果:使用 LIMIT
或 TOP
子句來限制結果集的行數。
SELECT column1, column2
FROM table_name
LIMIT 10;
連接表:使用 JOIN
來從多個表中查詢數據,根據指定的連接條件將行進行配對。
SELECT table1.column1, table2.column2
FROM table1
INNER JOIN table2 ON table1.common_column = table2.common_column;
子查詢:在 SELECT
語句中嵌套其他 SELECT
查詢,以根據嵌套查詢的結果來過濾或計算數據。
SELECT column1
FROM table_name
WHERE column2 IN (SELECT column2 FROM other_table);
SELECT
語句是 SQL 查詢操作的核心,能夠靈活地從數據庫中提取和處理數據。
GROUP BY
子句是 SQL 中用於將結果集按照指定的列進行分組的語句。這使得可以在每個分組內進行聚合操作(例如計算總和、平均值、計數等)。以下是 GROUP BY
子句的詳細介紹:
SELECT column1, aggregate_function(column2)
FROM table_name
GROUP BY column1;
分組數據:
GROUP BY
將結果集按照指定的列進行分組。每個分組包含具有相同值的行。
例如,計算每個部門的總薪水:
SELECT department, SUM(salary)
FROM employees
GROUP BY department;
使用聚合函數:
GROUP BY
常與聚合函數(如 COUNT
, SUM
, AVG
, MIN
, MAX
)一起使用,來計算每個分組的統計信息。
例如,計算每個部門的員工數量:
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
多列分組:
可以根據多列進行分組。這樣會根據多個列的組合值來分組。
例如,計算每個部門和職位的薪水總和:
SELECT department, job_title, SUM(salary)
FROM employees
GROUP BY department, job_title;
HAVING 子句:
HAVING
子句用於過濾分組後的結果集。它的功能類似於 WHERE
子句,但 WHERE
子句在 GROUP BY
之前過濾數據,而 HAVING
用於分組後過濾結果。
例如,僅顯示薪水總和超過 100,000 的部門:
SELECT department, SUM(salary)
FROM employees
GROUP BY department
HAVING SUM(salary) > 100000;