seegongsik
我的单词本
数据

发问的语言,SQL

假设你站在一个装满表格的数据库前。要从里头只取出想要的东西,该怎么做? 就像问人一样,对数据库也清清楚楚地问。挑出要看哪几列,再说出留下哪些行的条件。这个发问的语言就是 SQL。

01

向数据库发问

前面我们学过,数据库
是聚拢了许多表的仓库。
表里头,行和列排得整整齐齐。
可在那么多行里,
怎么只取出想要的呢?
就像问人一样去问。
只是把说法定得清清楚楚。
把人话换成定好的说法,
数据库就听懂并回答你。

"告诉我二十岁以上的人的姓名"
SELECT _____ WHERE _____
点人话的碎片,把它变成发问的话

依次点人话的碎片,把它变成发问的话。选好要看的列和条件,定好的说法就成形了。

人话变成了发问的话。
仔细看,它分成两部分。
一部分是要看哪几列,
另一部分是要留下哪些行。
只把这两样定好,问句就完成了。
看着复杂,里头其实简单。
咱们先从挑列一步步看起好吗?

02

挑出要看的列,SELECT

一张表有好多列。
像姓名、年龄、城市。
可并不总是每一列都需要。
有时只想看姓名。
那就只挑想看的列。
挑中的列留下,其余被遮起来。
这样挑列就叫 SELECT。
它决定显示什么。

Ana
24
Lima
Ben
17
Busan
Mei
31
Xian
点你想看的列的表头

点你想看的列的表头。挑中的列留下,其余被遮起来。再点一下就取消。

只留下了需要的列,干净利落。
表一下子好读多了。
可光挑列有时还不够。
行还是全都在。
不管年龄多大,每个人都露面。
我们平时问话总带个条件。
比如只要二十岁以上的人。
那这回来筛一筛行好吗?

03

用条件筛行,WHERE

这回轮到行了。
表里不是每一行都需要。
想要的行有个共同点。
比如年龄二十岁以上。
把那个共同点写成条件。
符合条件的行才留下,
不符合的行就掉出去。
这样筛行就叫 WHERE。
它决定留下哪些。

name
age
city
Ana
24
Lima
Ben
17
Busan
Mei
31
Xian
Leo
19
Oslo
点一个条件来筛行

点一个条件来应用。年龄符合的行才留下,不符合的行变淡掉出去。

只留下了符合条件的行。
其余的悄悄掉了出去。
现在挑列和按条件筛行,
两样本事你都学会了。
可真正的力量在于把两样合起来。
挑出想看的列,
同时只留下想要的行,
就出来一张正好只剩需要部分的表。
咱们把两样一起用用看?

04

两样合起来就是结果表

现在把两样本事一起用。
先用条件筛行。
只留下符合条件的行。
再挑出想看的列。
在留下的行里,只显示那几列。
不论次序如何,结果都一样。
挑中的列和留下的行相遇的地方,
那里就出现一张小小的结果表。
正好符合问题的答案,以表的形式出来了。

name
age
city
Ana
24
Lima
Ben
17
Busan
Mei
31
Xian
Leo
19
Oslo
点两个步骤把它们合起来

依次点挑列和条件。两样合起来,就建出一张只剩符合条件的行和挑中的列的结果表。

想要的答案以表的形式出来了。
在那么多行和列里,
一句问话就只挑出正好需要的那点。
不用人一个个用眼睛去扫,
数据库自己替你挑出来。
哪怕表有一百万行,办法也一样。
问话写好,答案很快就来。
这就是 SQL 处理数据的力量。
现在来把整件事理一理。

05

来理一理

归成一句话,是这样。
SQL 是向数据库发问的语言。
挑出要看哪几列就是 SELECT,
筛出留下哪些行就是 WHERE。
两样合起来,就出来一张正好符合条件的结果表。
挑列和按条件筛行,就这些。
用一句问话把想要的答案以表收回来,
这就是 SQL 的基础。

依次点要点回顾一下

依次点要点回顾一下。(发问的语言 SQL → 挑列 SELECT → 筛行 WHERE → 合起来就是结果表)

现在你知道了怎么
清清楚楚地向数据库发问。
挑出想要的列、筛出行,
只把需要的答案取回来的本事。
可到现在我们只看了一张表。
现实中,表常常分成好几张。
人的表一张,订单的表又一张。
那要怎么把好几张表连起来问呢?
下回把表和表连起来的故事,
咱们接着一起看下去。

一句话总结SQL 是为了从数据库取得想要的东西而发问的语言。只需说两件事。先挑出要看哪几列。一张表有好多列,你只留下想看的那几列。这叫 SELECT。再给出留下哪些行的条件。不是全部的行,只留下符合条件的行。这叫 WHERE。挑好的列和留下的行相遇,就出来一张正好符合条件的小结果表。拿一张表,用挑列和按条件筛行来问,答案就以表的形式回来,这就是 SQL 的基础。
数据
如果有帮助,请支持我们