MYSQL

MySQL 精华总结

一、SQL 四大分类(必须记住)

分类 全称 作用 常用命令
DDL 数据定义语言 操作数据库结构 CREATEALTERDROP
DML 数据操作语言 操作数据 INSERTUPDATEDELETE
DQL 数据查询语言 查数据 SELECT
DCL 数据控制语言 权限管理 GRANTREVOKE

二、最常用的 10 条命令(背下来)

sql

复制代码
-- 1. 查数据(最重要)
SELECT * FROM 表名 WHERE 条件;

-- 2. 插数据
INSERT INTO 表名 (列1, 列2) VALUES (值1, 值2);

-- 3. 改数据
UPDATE 表名 SET 列=新值 WHERE 条件;

-- 4. 删数据(小心!)
DELETE FROM 表名 WHERE 条件;

-- 5. 建表
CREATE TABLE 表名 (列名 数据类型, ...);

-- 6. 改表结构
ALTER TABLE 表名 ADD/DROP/MODIFY 列名;

-- 7. 排序
SELECT * FROM 表名 ORDER BY 列名 DESC/ASC;

-- 8. 分组统计
SELECT 列名, COUNT(*) FROM 表名 GROUP BY 列名;

-- 9. 分页
SELECT * FROM 表名 LIMIT 起始位置, 数量;

-- 10. 多表连接
SELECT * FROM 表A JOIN 表B ON 表A.列 = 表B.列;

三、常用数据类型(记这6个就够了)

类型 示例 用途
INT 18 整数(年龄、数量)
DECIMAL(10,2) 99.99 带小数的(价格、金额)
VARCHAR(50) "张三" 变长字符串(姓名、地址)
TEXT 长文章 长文本
DATE '2024-01-01' 日期
DATETIME '2024-01-01 12:00:00' 日期时间

四、查询条件 WHERE(核心语法)

sql

复制代码
-- 比较运算
WHERE age > 18              -- 大于
WHERE age BETWEEN 18 AND 30 -- 范围
WHERE name = '张三'          -- 等于(字符串要加引号)
WHERE name IS NULL          -- 是空(不是 = NULL!)

-- 模糊查询
WHERE name LIKE '张%'        -- 以张开头的
WHERE name LIKE '_三'        -- 第二个字是"三"的

-- 多条件
WHERE age > 18 AND city = '北京'
WHERE age > 18 OR city = '上海'
WHERE city IN ('北京', '上海', '广州')

五、分组和聚合(统计必备)

sql

复制代码
-- 5个聚合函数
COUNT(*)   -- 统计行数
SUM(列)    -- 求和
AVG(列)    -- 平均值
MAX(列)    -- 最大值
MIN(列)    -- 最小值

-- 标准分组查询模板
SELECT 
    分组列,
    COUNT(*) as 数量,
    SUM(金额列) as 总金额
FROM 表名
WHERE 筛选条件          -- 分组前筛选
GROUP BY 分组列
HAVING 分组后筛选       -- 分组后筛选
ORDER BY 总金额 DESC
LIMIT 10;

六、多表连接(3种就够了)

sql

复制代码
-- 内连接:两表都有才显示
SELECT * FROM 订单表 
JOIN 用户表 ON 订单表.user_id = 用户表.id;

-- 左连接:左表全显示,右表没有的为NULL
SELECT * FROM 用户表 
LEFT JOIN 订单表 ON 用户表.id = 订单表.user_id;

-- 右连接:右表全显示
SELECT * FROM 订单表 
RIGHT JOIN 用户表 ON 订单表.user_id = 用户表.id;

七、NULL 的坑(面试常考)

sql

复制代码
-- ❌ 错误写法
WHERE 列 = NULL    -- 永远查不到数据!
WHERE 列 != NULL   -- 也永远查不到!

-- ✅ 正确写法
WHERE 列 IS NULL
WHERE 列 IS NOT NULL

八、事务(保证数据一致性)

sql

复制代码
-- 4个步骤
BEGIN;              -- 1. 开始事务
UPDATE ...;         -- 2. 执行操作
INSERT ...;         -- 3. 执行操作
COMMIT;             -- 4. 提交(成功)
ROLLBACK;           -- 或者回滚(失败时撤销)

事务的四大特性 ACID

  • A:原子性(要么全成功,要么全失败)

  • C:一致性(数据保持正确)

  • I:隔离性(事务间互不干扰)

  • D:持久性(提交后永久保存)


九、用户权限(常用3条)

sql

复制代码
-- 创建用户
CREATE USER '用户名'@'主机' IDENTIFIED BY '密码';

-- 授权
GRANT SELECT, INSERT ON 数据库.* TO '用户名'@'主机';

-- 查看权限
SHOW GRANTS FOR '用户名'@'主机';

十、备份恢复(保命技能)

bash

复制代码
# 备份整个数据库
mysqldump -u root -p 数据库名 > backup.sql

# 恢复数据库
mysql -u root -p 数据库名 < backup.sql

# 备份所有数据库
mysqldump -u root -p --all-databases > all_backup.sql

📌 一句话记住精华

SELECT 查数据,WHERE 定条件,JOIN 连多表,GROUP BY 分组,ORDER BY 排序,LIMIT 分页,加上 ACID 事务保安全,定期备份不丢数据。

相关推荐
骇客野人3 小时前
Redis 完整安装部署方案(Linux,分【源码编译】+【Docker】两种,推荐生产用源码,测试快速用 Docker)
运维
蓝速科技6 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
chicheese6 小时前
Linux 面试速查表:从初级到高级,附高频场景答题模板
linux·运维
Linux-lucky7 小时前
32-38-Linux学习之旅之MySQL综合
linux·运维·学习·mysql·ubuntu
智能运维指南8 小时前
2026年ITSM系统怎么选?四款主流方案与五维评估模型
运维·itsm·嘉为蓝鲸
我命由我123458 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
骇客野人8 小时前
测试环境MySQL迁移Vastbase(海量数据库)完整改造与落地实施方案
运维·服务器
迪康Defender8 小时前
终端安全实战:如何高效解决企业U盘泄密与管控难题
运维·网络·安全·web安全·终端安全管理
zly35009 小时前
VMware Converter Standalone 物理机转化为虚拟机后源1硬盘变成了2个硬盘(2个硬盘文件)虚拟机无法启动。
linux·运维·服务器
智能运维指南9 小时前
2026 企业智能运维平台选型:私有化、信创、全链路打通该怎么权衡?
运维·嘉为蓝鲸·aiops平台·一体化运维平台