MySQL 基础 CRUD 语法
TIP
CRUD(Create、Read、Update、Delete)是数据库操作的基础。掌握这些基本操作是使用 MySQL 的第一步。
数据库与表操作
sql
-- 创建数据库
CREATE DATABASE IF NOT EXISTS demo DEFAULT CHARACTER SET utf8mb4;
-- 使用数据库
USE demo;
-- 创建表
CREATE TABLE user (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL COMMENT '姓名',
age INT DEFAULT 0 COMMENT '年龄',
email VARCHAR(100) COMMENT '邮箱',
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';插入数据(Create)
sql
-- 单条插入
INSERT INTO user(name, age, email) VALUES('张三', 25, 'zhangsan@example.com');
-- 批量插入(推荐)
INSERT INTO user(name, age, email) VALUES
('李四', 28, 'lisi@example.com'),
('王五', 32, 'wangwu@example.com'),
('赵六', 22, 'zhaoliu@example.com');
-- 忽略重复
INSERT IGNORE INTO user(name, email) VALUES('张三', 'zhangsan@example.com');
-- 替换(存在则更新,不存在则插入)
REPLACE INTO user(id, name, age) VALUES(1, '张三', 26);查询数据(Select)
sql
-- 查询所有列
SELECT * FROM user;
-- 查询指定列
SELECT id, name, age FROM user;
-- 条件查询
SELECT * FROM user WHERE age >= 18;
-- 多条件
SELECT * FROM user WHERE age BETWEEN 20 AND 30 AND name LIKE '张%';
-- 排序
SELECT * FROM user ORDER BY age DESC, id ASC;
-- 分页
SELECT * FROM user LIMIT 10 OFFSET 0; -- 第1页
SELECT * FROM user LIMIT 10 OFFSET 10; -- 第2页
-- 聚合查询
SELECT COUNT(*) total, AVG(age) avg_age, MAX(age) max_age FROM user;更新数据(Update)
sql
-- 更新单列
UPDATE user SET age = 26 WHERE id = 1;
-- 更新多列
UPDATE user SET age = 30, email = 'new@example.com' WHERE name = '张三';
-- 注意:不加 WHERE 会更新所有记录!删除数据(Delete)
sql
-- 删除指定记录
DELETE FROM user WHERE id = 1;
-- 清空表(比 DELETE 快)
TRUNCATE TABLE user;
-- 注意:不加 WHERE 会删除所有记录!WARNING
- 生产环境 UPDATE 和 DELETE 务必加 WHERE 条件
- 建议先 SELECT 确认 WHERE 条件正确再执行
- 批量操作时注意事务控制