MySQL 基础速记:库表操作、增删改查与权限管理
MySQL 是应用最广泛的开源关系型数据库之一。无论是本地开发联调,还是云上使用 RDS for MySQL,日常打交道最多的就是建库建表、增删改查和账号权限这三类操作。下面这组高频命令覆盖了绝大多数开发场景,建议收藏后亲手敲一遍,加深记忆。
一、连接与建库建表
先用命令行客户端连上数据库,-p 后面不直接跟密码,回车后再输入更安全:
mysql -h 127.0.0.1 -P 3306 -u root -p
创建数据库时务必指定字符集为 utf8mb4,否则存 emoji 或生僻字会出现乱码:
CREATE DATABASE shop DEFAULT CHARACTER SET utf8mb4;
接着建一张用户表。主键用自增整型,时间字段给默认值,建表语句一次写规范,后面能省很多麻烦:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
age INT DEFAULT 0,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP
);
随时用 DESC users; 查看表结构,确认字段是否符合预期。
二、增删改查速记
插入支持一次多行,效率更高:
INSERT INTO users(name, age) VALUES('张三', 28), ('李四', 31);
查询是最常用的操作,条件、排序、分页经常组合使用:
SELECT * FROM users WHERE age >= 30 ORDER BY age DESC LIMIT 10;
需要分组统计时配合 HAVING 过滤聚合结果:
SELECT age, COUNT(*) AS c FROM users GROUP BY age HAVING c > 1;
更新和删除务必带 WHERE 条件,否则整表数据都会被改掉或清空,生产环境中这是最高频的误操作:
UPDATE users SET age = 29 WHERE name = '张三';
DELETE FROM users WHERE age < 18;
拿不准影响范围时,可以先把 UPDATE/DELETE 改写成 SELECT,用同样的 WHERE 条件预览将要命中的行。
三、用户与权限管理
生产环境不要所有应用共用 root 账号,应当按最小权限原则分配。新建一个只能查 shop 库的只读账号:
CREATE USER 'reader'@'%' IDENTIFIED BY 'StrongPass123';
GRANT SELECT ON shop.* TO 'reader'@'%';
FLUSH PRIVILEGES;
账号交接或权限回收时,查看、回收、删除账号的命令要熟练:
SHOW GRANTS FOR 'reader'@'%';
REVOKE SELECT ON shop.* FROM 'reader'@'%';
DROP USER 'reader'@'%';
注意 'reader'@'%' 中的 % 表示允许任意主机连接,内网使用时建议收紧为具体 IP 段。
四、两个实用小技巧
- 逻辑备份与恢复:迁移数据、演练恢复最常用的手段,适合数据量不大的库:
mysqldump -u root -p shop > shop.sql
mysql -u root -p shop < shop.sql
- SQL 变慢先看执行计划:通过 EXPLAIN 确认是否命中索引,再决定是加索引还是改写法,而不是凭感觉优化:
EXPLAIN SELECT * FROM users WHERE name = '张三';
小结
建库指定 utf8mb4、UPDATE/DELETE 必带 WHERE、按最小权限分配账号——养成这三个习惯,能帮你避开大多数“删库跑路”式事故。上面的命令都不长,找个测试库亲手敲一遍,MySQL 基础就算真正入门了。
- 点赞
- 收藏
- 关注作者
评论(0)