🗄️ 第三章 操作数据库-SQL的使用方法
📄 一句话概括

SHOW DATABASES 看【现在有哪些库】,USE 说【接下来我就在这个库里干活】——先看清地图,再选位置。

📝 本节和前面几节的关系

3-3 学会造库拆库;本节是【库级】的收尾两小招:查看与选择。学完它,下一节就下到【表】这一层。SQLite 用户照旧:本节命令在 MySQL 里用,SQLite 没有库层所以没有它们。

一、SHOW DATABASES:看库存清单

SHOW DATABASES;

MySQL 里的输出大概长这样:

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| school             |
| sys                |
+--------------------+

二、USE:选一个库开工

库里会有很多表,操作表之前要先声明【我在哪个库里干活】:

USE school;

比喻:DBMS 是一栋楼,库是房间;SHOW 是看楼层索引牌,USE 是推开某扇房门——进错房间搬东西,全乱套。

三、两条命令是【环境操作】不是【数据操作】

注意这对命令的定位:

四、动手 Demo:SQLite 的对应世界

SQLite 没有【库】这一层(3-3 说过:一个文件一个库),也就没有 SHOW DATABASES 和 USE。但它有【看清单】的等价物——看当前库里的表:

-- 准备块
CREATE TABLE students (id INTEGER PRIMARY KEY, name TEXT, class INTEGER, score INTEGER);
INSERT INTO students VALUES (1, '张三', 1, 85);
INSERT INTO students VALUES (2, '李四', 1, 92);

-- 看当前库里有哪些表(SQLite 的 SHOW TABLES 等价物)
SELECT name FROM sqlite_master WHERE type = 'table';

输出:

name
students

看到什么算成功:清单里看到 students——MySQL 里 SHOW DATABASES 看库清单、USE 选库;SQLite 里查 sqlite_master 看表清单,两套世界做的是同一件事:动手前先看清家里有什么。

五、30 秒实验

在在线运行器里把 sqlite_master 那句跑一遍,再建一张 classes 表后重跑——清单多了一行。清单会随你的操作实时变化,这是【账本】的感觉:你的每一步,DBMS 都记着。

六、常见误区

  1. "USE 是把数据加载进来" —— 不是搬数据,只是声明默认位置;数据从来都在库里,USE 只是让你后续语句别写全名。
  2. "系统库里的表也可以拿来做练习" —— 别。系统库是 DBMS 的内脏,改坏一次整个管理员系统罢工。
  3. "SQLite 用户可以跳过本节" —— 命令跳得过,意识跳不过:【先看清有什么、再选好位置动手】是所有 DBMS 通用的习惯。
自测三问(点开对答案) 1. SHOW DATABASES 和 USE 分别干什么? **看库清单;声明后续语句的默认库**。 2. 不 USE 就 CREATE TABLE 会怎样(MySQL)? **报错 No database selected**——新手错误第一名。 3. SQLite 里看【有哪些表】的等价办法? **查 `sqlite_master`**(`SELECT name FROM sqlite_master WHERE type = 'table'`)。

相关笔记