以下是常见的 SQL 子句和语句成分的汇总,并在每个后面加上例子:
-
SELECT
子句:用于指定要从表中检索的列。- 例子:
SELECT column1, column2 FROM table_name;
(选择表中的两列)。
- 例子:
-
FROM
子句:指定要查询的表或视图。- 例子:
SELECT * FROM employees;
(从 employees 表中选择所有列)。
- 例子:
-
WHERE
子句:用于筛选出符合条件的行。- 例子:
SELECT * FROM customers WHERE age > 30;
(选择年龄大于 30 的客户)。
- 例子:
-
GROUP BY
子句:按照指定的列对结果进行分组。- 例子:
SELECT department, AVG(salary) FROM employees GROUP BY department;
(按部门分组并计算平均工资)。
- 例子:
-
HAVING
子句:筛选分组后的结果。- 例子:
SELECT department, SUM(salary) FROM employees GROUP BY department HAVING SUM(salary) > 100000;
(选择总工资大于 100000 的部门)。
- 例子:
-
ORDER BY
子句:对查询结果进行排序。- 例子:
SELECT * FROM products ORDER BY price DESC;
(按价格降序排列产品)。
- 例子:
-
LIMIT
子句(在某些数据库中):用于限制返回的行数。- 例子:
SELECT * FROM orders LIMIT 10;
(选择前 10 个订单)。
- 例子:
-
JOIN
子句(如INNER JOIN
、LEFT JOIN
、RIGHT JOIN
等):用于连接多个表以获取相关数据。- 例子:
SELECT c.customer_name, o.order_id FROM customers c INNER JOIN orders o ON c.customer_id = o.customer_id;
(通过客户 ID 连接客户表和订单表)。
- 例子:
-
UNION
子句:用于合并多个查询的结果集。- 例子:
SELECT column1 FROM table1 UNION SELECT column1 FROM table2;
(合并两个表中相同列的结果)。
- 例子:
-
CASE WHEN
表达式:用于在查询中进行条件判断和值的转换。
- 例子:
SELECT name, CASE WHEN age > 30 THEN 'Adult' ELSE 'Young' END AS category FROM people;
(根据年龄判断类别)。
SUBQUERY
(子查询):嵌套在其他查询中的查询,用于提供更复杂的条件或数据来源。
- 例子:
SELECT * FROM employees WHERE department_id IN (SELECT department_id FROM departments WHERE name = 'Sales');
(选择部门名称为 “Sales” 的员工)。