目录
基础查询
查询数据的基本语法是:
1 2 | SELECT column1, column2, ... FROM table_name; |
示例:查询所有数据
1 | SELECT * FROM users; |
此查询会返回 users
表中的所有列和所有记录。
示例:查询特定列
1 | SELECT username, email FROM users; |
此查询只会返回 users
表中的 username
和 email
列。
条件查询(WHERE
)
WHERE
子句用于筛选数据,返回满足条件的记录。
基本语法:
1 2 3 | SELECT column1, column2, ... FROM table_name WHERE condition; |
示例:查询用户名为 ‘alice’ 的用户
1 2 | SELECT * FROM users WHERE username = 'alice'; |
示例:查询价格大于 100 的产品
1 2 | SELECT * FROM products WHERE price > 100; |
使用多个条件
1 2 | SELECT * FROM users WHERE age > 25 AND status = 'active'; |
此查询返回 age
大于 25 且 status
为 ‘active’ 的所有用户。
排序查询(ORDER BY
)
ORDER BY
子句用于按指定列的顺序对结果集进行排序,默认升序 (ASC
),也可以指定降序 (DESC
)。
基本语法:
1 2 3 | SELECT column1, column2, ... FROM table_name ORDER BY column_name [ASC | DESC]; |
示例:按用户名升序排序
1 2 | SELECT * FROM users ORDER BY username ASC; |
示例:按价格降序排序
1 2 | SELECT * FROM products ORDER BY price DESC; |
限制查询结果(LIMIT
)
LIMIT
子句用于限制查询结果的返回条数。
基本语法:
1 2 3 | SELECT column1, column2, ... FROM table_name LIMIT number; |
示例:查询前 5 条记录
1 2 | SELECT * FROM users LIMIT 5; |
示例:从第 6 条记录开始查询 5 条记录
1 2 | SELECT * FROM users LIMIT 5 OFFSET 5; |
联合查询(JOIN
)
JOIN
用于联合两个或多个表的相关数据。常见的联接类型有 INNER JOIN
, LEFT JOIN
, RIGHT JOIN
, 和 FULL OUTER JOIN
。
基本语法:
1 2 3 4 | SELECT columns FROM table1 JOIN table2 ON table1.common_column = table2.common_column; |
示例:使用 INNER JOIN
查询订单及其用户信息
1 2 3 | SELECT orders.order_id, users.username, orders.order_date FROM orders INNER JOIN users ON orders.user_id = users.id; |
此查询返回所有订单的 order_id
、用户的 username
和订单的 order_date
,条件是 orders.user_id
等于 users.id
。
示例:使用 LEFT JOIN
查询所有用户及其订单信息
1 2 3 | SELECT users.username, orders.order_id FROM users LEFT JOIN orders ON users.id = orders.user_id; |
此查询返回所有用户的 username
,以及他们的 order_id
(如果有订单的话)。如果用户没有订单,order_id
为 NULL
。
聚合函数
MySQL 提供了多种聚合函数,用于对数据进行汇总和分析,如 COUNT()
, SUM()
, AVG()
, MAX()
, MIN()
。
示例:计算用户表中的记录数
1 | SELECT COUNT(*) FROM users; |
示例:计算价格的总和
1 | SELECT SUM(price) FROM products; |
示例:查询某个字段的最大值
1 | SELECT MAX(price) FROM products; |
分组查询(GROUP BY
)
GROUP BY
子句用于将数据分组,通常与聚合函数一起使用。
基本语法:
1 2 3 | SELECT column, aggregate_function(column) FROM table_name GROUP BY column; |
示例:按用户分组并计算每个用户的订单数
1 2 3 | SELECT user_id, COUNT(*) FROM orders GROUP BY user_id; |
示例:按产品类别分组并计算每个类别的总销售额
1 2 3 | SELECT category, SUM(price) FROM products GROUP BY category; |
子查询
子查询是一个嵌套在其他查询中的查询,可以用来过滤、计算、更新数据。
示例:查询拥有最多订单的用户
1 2 3 4 5 6 7 8 9 | SELECT username FROM users WHERE id = ( SELECT user_id FROM orders GROUP BY user_id ORDER BY COUNT(*) DESC LIMIT 1 ); |
此查询返回拥有最多订单的用户的 username
。
模糊查询(LIKE
)
LIKE
用于匹配字符模式,常用于执行模糊查询。
基本语法:
1 2 3 | SELECT column1, column2 FROM table_name WHERE column LIKE pattern; |
示例:查询用户名以 ‘a’ 开头的用户
1 2 | SELECT * FROM users WHERE username LIKE 'a%'; |
示例:查询包含 ‘example’ 的邮箱地址
1 2 | SELECT * FROM users WHERE email LIKE '%example%'; |
参考资料
如果你需要进一步了解如何优化查询性能,或者如何处理复杂的查询条件,可以随时告诉我!
发表回复