SQL基础备忘

By pocaster

一、SQL架构大白话

SQL就像仓库管理员,负责管理数据仓库里的货物(数据),主要干4件事:

  1. DDL(数据定义语言) 📌 作用:建仓库、修货架、拆仓库 ✂️ 类比
    • CREATE TABLE = 盖新仓库
    • ALTER TABLE = 给仓库加个新货架
    • DROP TABLE = 炸掉整个仓库
  2. DML(数据操作语言) 📌 作用:往货架上搬货/换货/扔货 🖐️ 类比
    • INSERT = 把新玩具放进货架
    • UPDATE = 把过期食品换成新鲜的
    • DELETE = 把破损商品扔垃圾桶
  3. DQL(数据查询语言) 📌 作用:查货架上的东西 🔍 核心SELECT 就像手电筒,照哪里看哪里
    SELECT 商品名 FROM 货架 WHERE 生产日期 > '2023-01-01';
    
  4. DCL(数据控制语言) 📌 作用:管仓库钥匙 🔑 示例
    • GRANT = 给小王配仓库钥匙
    • REVOKE = 把老李的钥匙没收

二、SELECT语句超简图解

flowchart LR A[SELECT 拿什么] --> B[FROM 从哪拿] B --> C[WHERE 条件] C --> D[GROUP BY 分组] D --> E[HAVING 组条件] E --> F[ORDER BY 排序] F --> G[LIMIT 拿多少]

生活案例:在冰箱找饮料

SELECT 可乐, 雪碧          -- 只要这两种
FROM 冰箱                 -- 找的地方
WHERE 温度 < 10           -- 冰镇的
ORDER BY 生产日期 DESC    -- 拿最新的
LIMIT 2;                  -- 最多拿两瓶

三、必知必会的5个语法

  1. WHERE条件过滤
    • = 等于
    • > 大于
    • LIKE '%牛奶%' 模糊找(含”牛奶”的文字)
    • BETWEEN 10 AND 20 区间找
  2. JOIN连接表
    • 就像拼积木,把多个表的列拼在一起
      SELECT 学生.名字, 成绩.分数 
      FROM 学生
      JOIN 成绩 ON 学生.学号 = 成绩.学号;
      
  3. GROUP BY分组统计
    -- 统计每个班的平均分
    SELECT 班级, AVG(分数) 
    FROM 成绩表 
    GROUP BY 班级;
    
  4. ORDER BY排序
    • ASC 升序(1→10)
    • DESC 降序(10→1)
  5. LIMIT限制结果
    • LIMIT 5 只要前5条
    • LIMIT 2,3 跳过前2条,拿3条(适合分页)

四、避坑指南

  1. 忘记WHEREUPDATE 用户 SET 密码='123' → 所有人密码都被改! ✅ 一定要加:WHERE 用户名='张三'

  2. GROUP BY漏列SELECT 班级, 姓名, AVG(分数) → 姓名不在GROUP BY里会报错

  3. LIKE效率低

    • LIKE '%牛奶%' 慢(像翻整本字典)
    • LIKE '牛奶%' 快(像查字典目录)

五、一句话记住核心

“SELECT是眼睛,WHERE是筛子, JOIN是胶水,GROUP BY是分类盒, ORDER BY是排队器,LIMIT是闸机”

Tags: Public