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

SELECT 是 SQL 的主角——【要哪几列、从哪张表】一句话说清;全 SQL 里你用得最多的就是它。

📝 本节和前面几节的关系

表里已有数据(3-6 填好了 students);从本节起进入【查询家族】的主线:3-7 学【要哪几列】,3-8~3-10 学【留哪几行】(WHERE 一族),3-13 起学【怎么排、怎么算】。SELECT 学不透,后面全悬空。

一、SELECT 的基本式

-- 准备块(没建表先跑 3-6 的准备块)

-- 要所有列、所有行
SELECT * FROM students;

-- 只要两列(顺序由你定)
SELECT name, score FROM students;

-- 挑列输出(name 前 score 后也行)
SELECT score, name FROM students;

二、给列起别名:AS

输出的列头默认是列名,想换个人话标题用 AS:

SELECT name AS 姓名, score AS 分数 FROM students;
姓名    分数
张三    85
李四    92
...

三、SELECT 是【取副本】不是【搬走】

重要画面感:SELECT 从不影响表里的数据——查一百遍,students 还是那五行。

四、动手 Demo:竖切三种玩法

-- ① 全表
SELECT * FROM students;

-- ② 只看姓名和分数
SELECT name, score FROM students;

-- ③ 带别名,还能现场算一列
SELECT name AS 姓名, score AS 分数, score * 1.1 AS 加分后 FROM students;

③ 的输出:

姓名    分数    加分后
张三    85      93.5
李四    92      101.2
王五    78      85.8
赵六    64      70.4
钱七            <空>

看到什么算成功:③里多出一列【加分后】——SELECT 的选择项可以是表达式(现算),不只能挑现成列;钱七那格跟着是空(NULL 参与算术还是 NULL,3-10 掀桌)。

五、30 秒实验

把 SELECT * 和 SELECT name, score 各跑一遍:

六、常见误区

  1. "SELECT 会改表里的数据" —— 不会,取的是副本;动真格的 UPDATE/DELETE 在后面。
  2. "SELECT * 最省事,永远用它" —— 省的是打字,费的是带宽和内存;正式代码点名要哪列。
  3. "别名 AS 会改掉表结构" —— 只改本次输出的标题,表纹丝不动。
自测三问(点开对答案) 1. SELECT 管哪个方向的切?FROM 管什么? **SELECT 竖切挑列,FROM 指定表**;横切挑行是 WHERE 的活。 2. `*` 是什么意思?为什么正式代码少用? **所有列**——大表上会读传大量不看的列。 3. AS 改的是什么? **本次输出的列标题**,不改表结构。

相关笔记