🐬 MySQL 常用查询语句
📌 基本操作
sql
-- 查看所有数据库
SHOW DATABASES;
-- 使用数据库
USE db_name;
-- 查看所有表
SHOW TABLES;
-- 查看表结构
DESCRIBE table_name;
📌 基本查询
sql
-- 查询所有列
SELECT * FROM users;
-- 查询指定列
SELECT id, name, email FROM users;
-- 给结果列起别名
SELECT name AS username, email AS user_email FROM users;
-- 去重
SELECT DISTINCT city FROM users;
📌 条件查询
sql
-- WHERE 子句
SELECT * FROM users WHERE age > 18;
-- 多条件 AND / OR
SELECT * FROM users WHERE age > 18 AND gender = 'M';
-- IN (多选匹配)
SELECT * FROM users WHERE city IN ('北京', '上海', '广州');
-- BETWEEN (范围查询)
SELECT * FROM users WHERE age BETWEEN 18 AND 30;
-- 模糊查询 LIKE
SELECT * FROM users WHERE name LIKE 'A%'; -- 以 A 开头
SELECT * FROM users WHERE name LIKE '%son'; -- 以 son 结尾
SELECT * FROM users WHERE name LIKE '%an%'; -- 包含 an
-- NULL 判断
SELECT * FROM users WHERE email IS NULL;
SELECT * FROM users WHERE email IS NOT NULL;
📌 排序 & 限制
sql
-- ORDER BY 排序
SELECT * FROM users ORDER BY age ASC; -- 升序
SELECT * FROM users ORDER BY age DESC; -- 降序
-- LIMIT 限制结果
SELECT * FROM users LIMIT 10; -- 前 10 条
SELECT * FROM users LIMIT 5, 10; -- 从第 6 条开始取 10 条
📌 聚合函数 & 分组
sql
-- COUNT / SUM / AVG / MAX / MIN
SELECT COUNT(*) FROM users; -- 总数
SELECT AVG(age) FROM users; -- 平均年龄
SELECT MAX(salary), MIN(salary) FROM users; -- 最大最小
-- GROUP BY 分组
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city;
-- HAVING 分组后条件过滤
SELECT city, COUNT(*) AS user_count
FROM users
GROUP BY city
HAVING user_count > 5;
📌 表连接 (JOIN)
sql
-- INNER JOIN 内连接
SELECT u.id, u.name, o.order_no
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- LEFT JOIN 左连接(保留左表所有数据)
SELECT u.id, u.name, o.order_no
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;
-- RIGHT JOIN 右连接(保留右表所有数据)
SELECT u.id, u.name, o.order_no
FROM users u
RIGHT JOIN orders o ON u.id = o.user_id;
📌 子查询
sql
-- 子查询作为条件
SELECT * FROM users
WHERE id IN (SELECT user_id FROM orders WHERE amount > 100);
-- 子查询作为临时表
SELECT t.user_id, t.total_amount
FROM (
SELECT user_id, SUM(amount) AS total_amount
FROM orders
GROUP BY user_id
) t
WHERE t.total_amount > 1000;
📌 数据操作 (DML)
sql
-- 插入数据
INSERT INTO users (name, age, email)
VALUES ('Tom', 25, 'tom@example.com');
-- 更新数据
UPDATE users
SET email = 'new@example.com'
WHERE id = 1;
-- 删除数据
DELETE FROM users WHERE id = 1;
📌 其他常用
sql
-- 去重计数
SELECT COUNT(DISTINCT city) FROM users;
-- CASE 条件判断
SELECT name,
CASE
WHEN age < 18 THEN '未成年'
WHEN age BETWEEN 18 AND 59 THEN '成年人'
ELSE '老年人'
END AS age_group
FROM users;
✅ 这份速查表适合日常开发中 80% 的 SQL 需求。