SELECT 语句基本语法
SQL Server 中的 SELECT 语句用于从数据库中检索数据。基本语法如下:
sql
SELECT 查询内容
FROM 表名
[WHERE 条件表达式]
[GROUP BY 待分组的列名]
[HAVING condition]
[ORDER BY 待排序的列名 [ASC | DESC]]
查询所有列
检索表中的所有列可以使用 *:
sql
SELECT *
FROM employees;
查询特定列
仅选择需要的列:
sql
SELECT first_name, last_name, salary
FROM employees;
使用 WHERE 子句过滤数据
WHERE 子句用于筛选符合条件的记录:
sql
SELECT employee_id, first_name, last_name
FROM employees
WHERE salary > 50000;
使用 ORDER BY 排序
ORDER BY 用于对结果进行升序(ASC)或降序(DESC)排序:
sql
SELECT employee_id, first_name, last_name
FROM employees
ORDER BY last_name ASC;
使用 GROUP BY 分组
GROUP BY 用于对数据进行分组,通常与聚合函数(如 COUNT、SUM、AVG)一起使用:
sql
SELECT department_id, COUNT(*) AS employee_count
FROM employees
GROUP BY department_id;
使用 HAVING 筛选分组
HAVING 子句用于对分组后的数据进行筛选:
sql
SELECT department_id, AVG(salary) AS avg_salary
FROM employees
GROUP BY department_id
HAVING AVG(salary) > 60000;
使用 DISTINCT 去重
DISTINCT 用于返回唯一不同的值:
sql
SELECT DISTINCT department_id
FROM employees;
使用 TOP 限制返回行数
SQL Server 使用 TOP 限制查询返回的行数:
sql
SELECT TOP 10 employee_id, first_name, last_name
FROM employees
ORDER BY salary DESC;
使用别名提高可读性
列或表可以使用别名(AS 可省略):
sql
SELECT first_name AS "First Name", last_name AS "Last Name"
FROM employees AS e;
使用 JOIN 关联表
JOIN 用于从多个表中检索数据:
sql
SELECT e.first_name, e.last_name, d.department_name
FROM employees e
JOIN departments d ON e.department_id = d.department_id;
使用子查询
子查询可以嵌套在 SELECT 语句中:
sql
SELECT employee_id, first_name, last_name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE location_id = 1700);
这些基本语法涵盖了 SQL Server 中 SELECT 语句的常见用法,适用于大多数数据检索需求。