目录
基础查询
查询数据的基本语法是:
SELECT column1, column2, ...
FROM table_name;
示例:查询所有数据
SELECT * FROM users;
此查询会返回 users
表中的所有列和所有记录。
示例:查询特定列
SELECT username, email FROM users;
此查询只会返回 users
表中的 username
和 email
列。
条件查询(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_id
为 NULL
。
聚合函数
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%';
参考资料
如果你需要进一步了解如何优化查询性能,或者如何处理复杂的查询条件,可以随时告诉我!
发表回复