目录

  1. 基础查询
  2. 条件查询(WHERE
  3. 排序查询(ORDER BY
  4. 限制查询结果(LIMIT
  5. 联合查询(JOIN
  6. 聚合函数
  7. 分组查询(GROUP BY
  8. 子查询
  9. 模糊查询(LIKE
  10. 参考资料

基础查询

查询数据的基本语法是:

SELECT column1, column2, ... 
FROM table_name;

示例:查询所有数据

SELECT * FROM users;

此查询会返回 users 表中的所有列和所有记录。

示例:查询特定列

SELECT username, email FROM users;

此查询只会返回 users 表中的 usernameemail 列。


条件查询(WHERE

WHERE 子句用于筛选数据,返回满足条件的记录。

基本语法:

SELECT column1, column2, ...
FROM table_name
WHERE condition;

示例:查询用户名为 ‘alice’ 的用户

SELECT * FROM users
WHERE username = 'alice';

示例:查询价格大于 100 的产品

SELECT * FROM products
WHERE price > 100;

使用多个条件

SELECT * FROM users
WHERE age > 25 AND status = 'active';

此查询返回 age 大于 25 且 status 为 ‘active’ 的所有用户。


排序查询(ORDER BY

ORDER BY 子句用于按指定列的顺序对结果集进行排序,默认升序 (ASC),也可以指定降序 (DESC)。

基本语法:

SELECT column1, column2, ...
FROM table_name
ORDER BY column_name [ASC | DESC];

示例:按用户名升序排序

SELECT * FROM users
ORDER BY username ASC;

示例:按价格降序排序

SELECT * FROM products
ORDER BY price DESC;


限制查询结果(LIMIT

LIMIT 子句用于限制查询结果的返回条数。

基本语法:

SELECT column1, column2, ...
FROM table_name
LIMIT number;

示例:查询前 5 条记录

SELECT * FROM users
LIMIT 5;

示例:从第 6 条记录开始查询 5 条记录

SELECT * FROM users
LIMIT 5 OFFSET 5;


联合查询(JOIN

JOIN 用于联合两个或多个表的相关数据。常见的联接类型有 INNER JOIN, LEFT JOIN, RIGHT JOIN, 和 FULL OUTER JOIN

基本语法:

SELECT columns
FROM table1
JOIN table2
ON table1.common_column = table2.common_column;

示例:使用 INNER JOIN 查询订单及其用户信息

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 查询所有用户及其订单信息

SELECT users.username, orders.order_id
FROM users
LEFT JOIN orders ON users.id = orders.user_id;

此查询返回所有用户的 username,以及他们的 order_id(如果有订单的话)。如果用户没有订单,order_idNULL


聚合函数

MySQL 提供了多种聚合函数,用于对数据进行汇总和分析,如 COUNT(), SUM(), AVG(), MAX(), MIN()

示例:计算用户表中的记录数

SELECT COUNT(*) FROM users;

示例:计算价格的总和

SELECT SUM(price) FROM products;

示例:查询某个字段的最大值

SELECT MAX(price) FROM products;


分组查询(GROUP BY

GROUP BY 子句用于将数据分组,通常与聚合函数一起使用。

基本语法:

SELECT column, aggregate_function(column)
FROM table_name
GROUP BY column;

示例:按用户分组并计算每个用户的订单数

SELECT user_id, COUNT(*) 
FROM orders
GROUP BY user_id;

示例:按产品类别分组并计算每个类别的总销售额

SELECT category, SUM(price)
FROM products
GROUP BY category;


子查询

子查询是一个嵌套在其他查询中的查询,可以用来过滤、计算、更新数据。

示例:查询拥有最多订单的用户

SELECT username
FROM users
WHERE id = (
    SELECT user_id
    FROM orders
    GROUP BY user_id
    ORDER BY COUNT(*) DESC
    LIMIT 1
);

此查询返回拥有最多订单的用户的 username


模糊查询(LIKE

LIKE 用于匹配字符模式,常用于执行模糊查询。

基本语法:

SELECT column1, column2
FROM table_name
WHERE column LIKE pattern;

示例:查询用户名以 ‘a’ 开头的用户

SELECT * FROM users
WHERE username LIKE 'a%';

示例:查询包含 ‘example’ 的邮箱地址

SELECT * FROM users
WHERE email LIKE '%example%';


参考资料


如果你需要进一步了解如何优化查询性能,或者如何处理复杂的查询条件,可以随时告诉我!