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;