技术文章

SQL入门零基础保姆级教程 从查询到联表 看懂日常开发99%场景
技术文章 2026-07-26 49 阅读

SQL入门零基础保姆级教程 从查询到联表 看懂日常开发99%场景

小泥吧 本站 2026-07-26

我给你写一套真正新手能从零看懂、看完直接精通日常开发99%场景的《SQL 从入门到精通完整版教程》。 不讲废话、不讲学术概念,全部通俗大白话 + 可直接复制代码 + 避坑点 + 实战逻辑。 适配:MySQL / SQLite / PbootCMS / 网站运维 / 后端开发通用。

SQL 从入门到精通【零基础保姆级完整版】

适合:完全零基础、站长、运维、PHP开发者、PbootCMS使用者 学完效果:能独立写查询、筛选、联表、更新、删除、排查数据、优化语句,胜任99%网站日常SQL工作

前言:SQL到底是什么?

SQL 就是 操作数据库的语言。 你网站所有文章、会员、下载记录、配置,全部存在数据库里。 你要查数据、改数据、删数据、统计数据,全部靠 SQL。

SQL 只有 4大核心动作(记住这4个就学会80%)

  1. SELECT 查询(最常用):看数据

  2. INSERT 新增:加数据

  3. UPDATE 更新:改数据

  4. DELETE 删除:删数据

所有复杂SQL,都是这4句拼接出来的。

第一章:最基础语法规则(新手90%报错原因)

1、固定规则(必须记住)

  1. 语句结尾 英文分号 ;

  2. 字符串用 单引号 '内容',不要双引号、不要中文引号

  3. 大小写不敏感(select=SELECT)

  4. 空格随便加,不影响执行

  5. 字段不能用中文,表名不能空格

2、最简单万能模板

SELECT 字段 FROM 表名 WHERE 条件;

第二章:SELECT 查询(最核心、最常用)

1、查询整张表所有数据

SELECT * FROM ay_content;

* = 代表所有字段

2、只查指定字段(推荐,速度快)

SELECT id,title,source,scode FROM ay_content;

3、WHERE 条件筛选(重中之重)

等于 =

SELECT * FROM ay_content WHERE source='本站';

不等于 !=

SELECT * FROM ay_content WHERE source!='本站';

大于、小于

SELECT * FROM ay_content WHERE id>100;

AND 并且、OR 或者

-- 同时满足两个条件
SELECT * FROM ay_content WHERE source='本站' AND scode=14;

-- 满足任意一个
SELECT * FROM ay_content WHERE scode=14 OR scode=15;

4、IN 多值匹配(替代一堆OR)

SELECT * FROM ay_content WHERE scode IN(14,15,16);

5、模糊查询 LIKE

% = 任意字符

-- 标题包含“软件”两个字
SELECT * FROM ay_content WHERE title LIKE '%软件%';

-- 以“教程”结尾
SELECT * FROM ay_content WHERE title LIKE '%教程';

6、trim() 去除空格(解决你查不到数据最大坑)

数据库很多内容带隐形空格,肉眼看不见但匹配不到

SELECT * FROM ay_content WHERE trim(source)='本站';

7、排序 ORDER BY

-- id 从大到小(最新的在前)
SELECT * FROM ay_content ORDER BY id DESC;

-- 从小到大
SELECT * FROM ay_content ORDER BY id ASC;

8、限制条数 LIMIT

-- 只取前10条
SELECT * FROM ay_content LIMIT 10;

9、统计数量 COUNT

-- 统计一共有多少条符合条件的数据
SELECT COUNT(*) FROM ay_content WHERE source='本站';

第三章:UPDATE 更新数据(改数据)

基础模板

UPDATE 表名 SET 字段='值' WHERE 条件;

实战1:单条件更新

UPDATE ay_content SET source='互联网' WHERE source='本站';

实战2:多条件(你刚才的需求)

UPDATE ay_content 
SET source='互联网' 
WHERE trim(source)='本站' AND scode IN(14,15);

⚠️ 新手第一大忌:忘记 WHERE

-- 绝对不要写!!!
UPDATE ay_content SET source='本站';

不带 WHERE = 整张表所有数据全部被改掉,无法恢复!

第四章:DELETE 删除数据

安全删除(带条件)

DELETE FROM ay_content WHERE id=100;

高危提醒

永远不要执行:

DELETE FROM ay_content; -- 清空整张表

第五章:高级核心:联表查询 JOIN(你刚才问的重点)

1、先记住一句话终极真理

  • 左连接 LEFT JOIN:左表数据全部保留,右表有就显示、没有就空

  • 内连接 INNER JOIN:两边都匹配上才显示,缺一个就消失

2、PbootCMS 标准双表关联(ay_content + ay_extra_field)

关联关系:
ay_content.id = ay_extra_field.contentid

最推荐:LEFT JOIN 万能写法(99%场景用这个)

SELECT c.*,e.*
FROM ay_content c
LEFT JOIN ay_extra_field e 
ON c.id = e.contentid
WHERE trim(c.source)='本站' AND c.scode IN(14,15);

别名解释

  • c = ay_content(主表)

  • e = ay_extra_field(扩展附表)

3、为什么你必须用 LEFT JOIN?

因为:很多文章没有自定义扩展字段,ay_extra_field 里根本没有数据

  • INNER JOIN:这些文章直接消失

  • LEFT JOIN:文章保留,扩展字段空白,不丢数据

4、JOIN 超级致命坑(新手必踩)

错误写法(左连接失效)

WHERE e.xxx = 'xx'

右表字段不能放 WHERE 后面,会把空数据过滤掉,直接变成内连接!

正确写法:右表条件放 ON 后面

LEFT JOIN ay_extra_field e ON c.id=e.contentid AND e.xxx='xx'

第六章:子查询(高级玩家必备)

场景:只更新「在扩展表里存在的文章」

UPDATE ay_content
SET source='互联网'
WHERE id IN (
    SELECT DISTINCT contentid FROM ay_extra_field
);

含义: 先查扩展表里所有文章ID,再更新主表对应数据

第七章:日常开发高频万能语句(直接收藏)

1、查指定分类、指定来源、最新20条

SELECT * FROM ay_content 
WHERE scode=14 AND trim(source)='本站'
ORDER BY id DESC 
LIMIT 20;

2、统计每个分类文章数量

SELECT scode,COUNT(*) FROM ay_content GROUP BY scode;

3、批量替换字段内容(超级常用)

UPDATE ay_content SET source='本站' WHERE source='互联网';

第八章:新手最完整避坑手册(99%报错原因)

1、查不到数据 99%原因

  1. 字段有空格 → 用 trim()

  2. 中英文引号混用

  3. OR/AND 优先级混乱,没加括号

  4. JOIN 用反了(用了内连接丢数据)

2、更新错数据原因

  1. 没写 WHERE

  2. WHERE 条件写错

  3. 没先 SELECT 验证直接 UPDATE

3、联表错乱原因

  • 右表筛选条件写在 WHERE 里

第九章:新手标准操作流程(永远不翻车)

任何修改数据操作,必须遵守顺序:

  1. 先 SELECT 查询,确认条数、数据对不对

  2. 确认无误,再改成 UPDATE / DELETE

  3. 小范围测试 → 再批量执行

示范:

-- 1.先查
SELECT * FROM ay_content WHERE trim(source)='本站' AND scode IN(14,15);

-- 2.没问题再改
UPDATE ay_content SET source='互联网' WHERE trim(source)='本站' AND scode IN(14,15);

第十章:学完这套你达到的水平

  1. 独立写所有网站筛选、列表、统计 SQL

  2. 熟练双表联查、主附表关联

  3. 不会再出现「查不到数据、改错数据、联表丢数据」

  4. 完全够用:PbootCMS、WordPress、企业站、运维、后端开发

终极一句话总结SQL核心

  1. 查数据用 SELECT

  2. 改数据用 UPDATE(必带WHERE)

  3. 多条件用 AND/OR/IN

  4. 联表优先 LEFT JOIN

  5. 所有操作:先查后改,永不翻车

需要我再给你整理一份**PB网站专用高频SQL速查表(直接复制即用)**吗?


相关标签: sql sqlite mysql 数据库

发表评论:

评论记录:

未查询到任何数据!
QQ咨询
回电话
回拨通话

我们稍后回拨您的电话

座机请加区号

微信联系
微信扫一扫
微信二维码

扫码加微信