一、引言
SQL(Structured Query Language)是与关系型数据库沟通的标准语言。无论是日常开发、数据分析还是后台维护,熟练掌握常用 SQL 语句都能大幅提升工作效率。本文整理了最常用、最核心的 SQL 操作,方便日常查阅。
二、数据定义语言(DDL)
1. 数据库操作
-- 创建数据库
CREATE DATABASE db_name DEFAULT CHARACTER SET utf8mb4;
-- 查看所有数据库
SHOW DATABASES;
-- 使用/切换数据库
USE db_name;
-- 删除数据库
DROP DATABASE db_name;2. 数据表操作
-- 创建表
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) NOT NULL,
email VARCHAR(100),
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
-- 查看表结构
DESCRIBE users;
-- 添加字段
ALTER TABLE users ADD COLUMN age INT DEFAULT 0;
-- 修改字段类型
ALTER TABLE users MODIFY COLUMN age TINYINT UNSIGNED DEFAULT 0;
-- 删除字段
ALTER TABLE users DROP COLUMN age;
-- 删除表
DROP TABLE users;三、数据操作语言(DML)
1. 插入数据(INSERT)
-- 插入单条记录
INSERT INTO users (username, email) VALUES ('张三', 'zhangsan@example.com');
-- 插入多条记录
INSERT INTO users (username, email) VALUES
('李四', 'lisi@example.com'),
('王五', 'wangwu@example.com');2. 更新数据(UPDATE)
-- 更新指定记录(切记带上 WHERE 条件!)
UPDATE users SET email = 'new_email@example.com' WHERE id = 1;3. 删除数据(DELETE)
-- 删除指定数据
DELETE FROM users WHERE id = 3;
-- 清空整张表数据(重置自增主键)
TRUNCATE TABLE users;四、数据查询语言(DQL)
1. 基础与条件查询
-- 查询全部字段
SELECT * FROM users;
-- 条件查询与模糊匹配
SELECT id, username FROM users WHERE email LIKE '%@example.com' AND id > 0;
-- 去重查询
SELECT DISTINCT username FROM users;2. 排序与分页
-- 排序(ASC升序,DESC降序)
SELECT * FROM users ORDER BY created_at DESC;
-- 分页查询(跳过 0 条,取 10 条)
SELECT * FROM users ORDER BY id ASC LIMIT 0, 10;3. 聚合与分组
-- 常用聚合函数:COUNT、SUM、AVG、MAX、MIN
SELECT COUNT(*) AS total_users FROM users;
-- 分组统计与 HAVING 过滤
SELECT age, COUNT(*) AS user_count
FROM users
GROUP BY age
HAVING user_count > 1;4. 多表联查(JOIN)
-- 内连接(INNER JOIN)
SELECT u.username, o.order_no, o.amount
FROM users u
INNER JOIN orders o ON u.id = o.user_id;
-- 左外连接(LEFT JOIN)
SELECT u.username, o.order_no
FROM users u
LEFT JOIN orders o ON u.id = o.user_id;五、实用技巧与注意事项
- 更新与删除务必加 WHERE:在执行 UPDATE 或 DELETE 语句前,最好先用 SELECT 语句查一遍确认影响行数。
- 合理使用索引:对经常用于
WHERE、JOIN和ORDER BY的列建立索引,避免全表扫描。 - 避免 SELECT *:在生产环境中尽量指明具体字段名,既节省网络 IO,也能更好地利用覆盖索引。