🗄️ 第一章 数据库的基础知识
📄 一句话概括

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

逐句读一遍:

四、SQL 是通用语

这也是 1-5 的伏笔兑现:不管商用开源,点菜单的语法是统一的。

五、动手 Demo:不装软件跑真 SQL

浏览器就能跑,全程两分钟:

  1. 搜索【SQLite online】,打开任意一个在线 SQLite 运行器(免费、免注册)
  2. 把第三节的四句 SQL 原样贴进去,依次执行
  3. 确认输出是 bozai | 90 一行

看到什么算成功:屏幕上出现上面那个两列一行的结果——恭喜,你已经对真数据库说过话了。

六、30 秒实验

在刚才的运行器里做两个小改动,观察变化:

  1. 把 WHERE score >= 88 改成 WHERE score >= 80——结果多出一行 xiaomei(筛子的网眼变大了)
  2. 把 SELECT name, score 改成 SELECT *——* 表示【所有列】,结果多出 id 列

七、常见误区

  1. "SQL 是某家公司的产品" —— 它是国际标准语言;MySQL、Oracle 只是【说这门语言的不同产品】。
  2. "查数据要自己写循环遍历" —— 不用。SQL 是声明式,【怎么遍历最快】由 DBMS 优化器决定;你只描述结果。
  3. "SQL 里的名字必须全大写" —— 关键字(SELECT、WHERE)不区分大小写;惯例写成大写是为了好读。表名、列名在部分数据库里区分,文本值 'bozai' 里的内容永远区分。
自测三问(点开对答案) 1. SQL 的全称和中文是什么?它属于声明式还是过程式? **Structured Query Language,结构化查询语言**;声明式——只说要什么,不管怎么拿。 2. 四大家族和代表命令? **查询 SELECT/操作 INSERT·UPDATE·DELETE/定义 CREATE·DROP/控制 GRANT·REVOKE**。 3. `WHERE` 的作用用什么比喻最贴切? **筛子**——只放符合条件的行过。

相关笔记