- 在 MySQL 中,SQL 查询用于从数据库中检索数据。这些查询可以简单到仅检索一个表中的几列,也可以复杂到涉及多表连接、子查询、聚合函数等。下面是一些基本的 SQL 查询示例以及一些更复杂的查询。
基本查询
- 选择特定列 :
SELECT column1, column2 FROM table_name;
- 选择所有列 :
SELECT * FROM table_name;
- 带条件的查询 :
SELECT * FROM table_name WHERE condition;
例如:
SELECT * FROM employees WHERE age > 30;
- 指定列的唯一值 :
SELECT DISTINCT column_name FROM table_name;
聚合函数
- 计数 :
SELECT COUNT(column_name) FROM table_name;
- 最大值 :
SELECT MAX(column_name) FROM table_name;
- 最小值 :
SELECT MIN(column_name) FROM table_name;
- 平均值 :
SELECT AVG(column_name) FROM table_name;
- 总和 :
SELECT SUM(column_name) FROM table_name;
排序和分组
- 排序 :
SELECT * FROM table_name ORDER BY column_name ASC|DESC;
例如:
SELECT * FROM employees ORDER BY salary DESC;
- 分组 :
SELECT column1, COUNT(column2) FROM table_name GROUP BY column1;
连接(Join)
- 内连接 :
SELECT * FROM table1 INNER JOIN table2 ON table1.column_name = table2.column_name;
- 左连接 :
SELECT * FROM table1 LEFT JOIN table2 ON table1.column_name = table2.column_name;
- 右连接 :
SELECT * FROM table1 RIGHT JOIN table2 ON table1.column_name = table2.column_name;
- 全连接 :
SELECT * FROM table1 FULL OUTER JOIN table2 ON table1.column_name = table2.column_name;
子查询
SELECT column_name(s) FROM table_name WHERE column_name OPERATOR (SELECT column_name FROM table_name WHERE condition);
分页
SELECT * FROM table_name LIMIT offset, count;
例如:
SELECT * FROM employees LIMIT 5, 10; -- 跳过前5条记录,返回接下来的10条记录
组合查询
使用 UNION
或 UNION ALL
(UNION ALL
会包括重复的行):
SELECT column_name(s) FROM table1
UNION
SELECT column_name(s) FROM table2;
这些只是一些基本的示例。SQL 查询可以根据需要变得非常复杂和强大,包括使用子查询、多表连接、复杂的条件和函数等。