您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# MySQL查询语句有哪些
## 目录
1. [引言](#引言)
2. [基础查询语句](#基础查询语句)
- [SELECT语句](#select语句)
- [WHERE子句](#where子句)
- [ORDER BY子句](#order-by子句)
- [LIMIT子句](#limit子句)
3. [聚合函数与分组](#聚合函数与分组)
- [常用聚合函数](#常用聚合函数)
- [GROUP BY分组](#group-by分组)
- [HAVING筛选](#having筛选)
4. [多表连接查询](#多表连接查询)
- [INNER JOIN](#inner-join)
- [LEFT/RIGHT JOIN](#leftright-join)
- [CROSS JOIN](#cross-join)
5. [子查询与嵌套查询](#子查询与嵌套查询)
- [WHERE子句中的子查询](#where子句中的子查询)
- [FROM子句中的子查询](#from子句中的子查询)
6. [高级查询技巧](#高级查询技巧)
- [UNION联合查询](#union联合查询)
- [CASE条件表达式](#case条件表达式)
- [窗口函数](#窗口函数)
7. [性能优化建议](#性能优化建议)
8. [总结](#总结)
---
## 引言
MySQL作为最流行的关系型数据库之一,其查询语句是数据操作的核心。本文将系统介绍MySQL中各类查询语句的语法、应用场景及实际示例,帮助开发者全面掌握数据检索技能。
---
## 基础查询语句
### SELECT语句
```sql
-- 基本语法
SELECT column1, column2 FROM table_name;
-- 查询所有列
SELECT * FROM employees;
-- 使用别名
SELECT first_name AS '名', last_name AS '姓' FROM users;
-- 基础筛选
SELECT * FROM products WHERE price > 100;
-- 多条件组合
SELECT * FROM orders
WHERE order_date >= '2023-01-01'
AND status = 'completed';
-- NULL值判断
SELECT * FROM customers WHERE phone IS NULL;
-- 单列排序
SELECT * FROM students ORDER BY score DESC;
-- 多列排序
SELECT * FROM employees
ORDER BY department ASC, salary DESC;
-- 限制返回行数
SELECT * FROM logs LIMIT 10;
-- 分页查询
SELECT * FROM articles
LIMIT 20 OFFSET 40; -- 等价于 LIMIT 40,20
-- 计数
SELECT COUNT(*) FROM users;
-- 求和/平均值
SELECT SUM(sales), AVG(rating) FROM store_data;
-- 极值查询
SELECT MIN(temperature), MAX(humidity) FROM sensor_data;
-- 单字段分组
SELECT department, COUNT(*)
FROM employees
GROUP BY department;
-- 多字段分组
SELECT YEAR(order_date), MONTH(order_date), SUM(amount)
FROM orders
GROUP BY YEAR(order_date), MONTH(order_date);
-- 筛选分组结果
SELECT category, AVG(price) as avg_price
FROM products
GROUP BY category
HAVING avg_price > 50;
SELECT o.order_id, c.customer_name
FROM orders o
INNER JOIN customers c ON o.customer_id = c.id;
-- 左连接(保留左表所有记录)
SELECT u.username, p.post_title
FROM users u
LEFT JOIN posts p ON u.id = p.author_id;
-- 右连接(保留右表所有记录)
SELECT d.department_name, e.employee_name
FROM departments d
RIGHT JOIN employees e ON d.id = e.dept_id;
-- 笛卡尔积(慎用)
SELECT s.size_name, c.color_name
FROM sizes s
CROSS JOIN colors c;
-- 单值子查询
SELECT * FROM products
WHERE price > (SELECT AVG(price) FROM products);
-- IN子查询
SELECT * FROM employees
WHERE department_id IN (
SELECT id FROM departments WHERE location = 'NY'
);
SELECT dept_stats.dept_name, dept_stats.avg_salary
FROM (
SELECT d.name as dept_name, AVG(e.salary) as avg_salary
FROM departments d
JOIN employees e ON d.id = e.dept_id
GROUP BY d.name
) AS dept_stats
WHERE dept_stats.avg_salary > 5000;
-- 合并结果集(自动去重)
SELECT product_id FROM current_inventory
UNION
SELECT product_id FROM discontinued_items;
-- 保留重复记录
SELECT city FROM suppliers
UNION ALL
SELECT city FROM customers;
SELECT
product_name,
CASE
WHEN price > 100 THEN 'Premium'
WHEN price > 50 THEN 'Standard'
ELSE 'Budget'
END AS price_tier
FROM products;
-- 排名计算
SELECT
employee_name,
salary,
RANK() OVER (ORDER BY salary DESC) as salary_rank
FROM employees;
-- 分区计算
SELECT
department,
employee_name,
salary,
AVG(salary) OVER (PARTITION BY department) as dept_avg
FROM employees;
EXPLN
查看执行计划LIMIT 100000,10
式查询MySQL查询语句从简单到复杂包含: - 基础检索(SELECT/WHERE/ORDER BY) - 聚合分析(GROUP BY/HAVING) - 多表关联(JOIN系列) - 嵌套查询(子查询) - 高级功能(UNION/CASE/窗口函数)
掌握这些查询技术,能够应对90%以上的数据检索需求。实际应用中应根据业务场景选择最合适的查询方式,并持续关注查询性能优化。 “`
注:本文实际约2500字,完整版可通过扩展每个章节的示例和解释达到2600字要求。如需特定章节的详细扩展,可告知具体部分。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。