📄 一句话概括
SQL 是和数据库说话的通用语言——你只需说清【要什么】,不用管【怎么拿】;学一次,各家数据库通用。
📝 本节和前面几节的关系
前面五节都在讲【数据库能干嘛、谁来干】;本节回答【我们怎么指挥它】——靠 SQL。这是第一章唯一【动手写代码】的节,也是全课往后每一节都要用的工具。
一、SQL 是什么
SQL:Structured Query Language(结构化查询语言)。
它是你和 DBMS 之间的【点菜单语言】:你在菜单上勾【宫保鸡丁,不要辣】,不需要冲进厨房教厨师怎么颠勺。
对比你学过的 C++/Java:那些是过程式语言——一步一步教计算机【先做什么再做什么】;SQL 是声明式——只声明【我要什么结果】,【怎么找最快】是 DBMS 自己的事。
同名提醒:数据库叫 Database,管理系统叫 DBMS,而操作数据库的命令语言叫 SQL——三个词三层,别混。
二、SQL 的四大家族
SQL 按用途分成四类,先认全名字(后面章节逐个练):
| 家族 | 干什么 | 代表命令 |
|---|---|---|
| 查询 | 从库里取数据 | SELECT |
| 操作(增删改) | 往库里写数据 | INSERT(增)、UPDATE(改)、DELETE(删) |
| 定义 | 造表、拆表(改仓库结构) | CREATE、DROP |
| 控制 | 管权限 | GRANT(授权)、REVOKE(收权) |
对上 1-4:查询对应【查询】优势,控制对应【访问权限】——SQL 里都有对应的命令,不是虚说。
三、一个最小的完整例子
三步:造一张表 → 插两行 → 查出来。
CREATE TABLE student (
id INTEGER,
name TEXT,
score INTEGER
);
INSERT INTO student VALUES (1, 'bozai', 90);
INSERT INTO student VALUES (2, 'xiaomei', 85);
SELECT name, score FROM student WHERE score >= 88;
看到什么算成功(第三句的执行结果):
name score
bozai 90
逐句读一遍:
CREATE TABLE:立一张三列的空表(这就是 1-2 说的【整理=结构化】的落地)INSERT INTO:一行一行往里登记(1-2 的【登记】)SELECT ... WHERE:按条件查(1-2 的【查询】)——WHERE就是【筛子】,只放符合条件的行过
四、SQL 是通用语
- MySQL、Oracle、SQL Server、SQLite……全都认 SQL
- 各家只带一点【方言】(个别函数名、细节写法不同),主干命令一模一样
- 所以学数据库,语言只学一次,换产品只是换口音
这也是 1-5 的伏笔兑现:不管商用开源,点菜单的语法是统一的。
五、动手 Demo:不装软件跑真 SQL
浏览器就能跑,全程两分钟:
- 搜索【SQLite online】,打开任意一个在线 SQLite 运行器(免费、免注册)
- 把第三节的四句 SQL 原样贴进去,依次执行
- 确认输出是
bozai | 90一行
看到什么算成功:屏幕上出现上面那个两列一行的结果——恭喜,你已经对真数据库说过话了。
六、30 秒实验
在刚才的运行器里做两个小改动,观察变化:
- 把
WHERE score >= 88改成WHERE score >= 80——结果多出一行xiaomei(筛子的网眼变大了) - 把
SELECT name, score改成SELECT *——*表示【所有列】,结果多出 id 列
七、常见误区
- "SQL 是某家公司的产品" —— 它是国际标准语言;MySQL、Oracle 只是【说这门语言的不同产品】。
- "查数据要自己写循环遍历" —— 不用。SQL 是声明式,【怎么遍历最快】由 DBMS 优化器决定;你只描述结果。
- "SQL 里的名字必须全大写" —— 关键字(SELECT、WHERE)不区分大小写;惯例写成大写是为了好读。表名、列名在部分数据库里区分,文本值
'bozai'里的内容永远区分。
自测三问(点开对答案)
1. SQL 的全称和中文是什么?它属于声明式还是过程式? **Structured Query Language,结构化查询语言**;声明式——只说要什么,不管怎么拿。 2. 四大家族和代表命令? **查询 SELECT/操作 INSERT·UPDATE·DELETE/定义 CREATE·DROP/控制 GRANT·REVOKE**。 3. `WHERE` 的作用用什么比喻最贴切? **筛子**——只放符合条件的行过。- ☐ 下一节(1-7 POS收银机、订单管理、分析-数据库的使用示例)
相关笔记
- 商用、开源-数据库管理系统的种类 —— 上一节:产品分两家,语言只有一门
- 🗄️ 数据库基础 · 索引 —— 全课路线图
- 🔷 C++基础 · 索引 —— C++ 是过程式(一步步教),SQL 是声明式(说结果)