xuesql.cn
,一个适合小白学SQL
的网站,我们会由浅入深的介绍所有有关 SQL
的知识, 每一个章节是一组相关的SQL知识点; 并且会配备一组动手练习任务。
这个网站特别适合学完某种知识就想马上动手的 实践党
. 如果您在学习其他相关的SQL课程或已经在工作中展开了SQL实践,也可以把它作为巩固SQL知识的小工具。
SQL
, 全称为Structured Query Language(结构化查询语言)。 要讲SQL就绕不开database(数据库), 平时所说的数据库,一般就是指的 Relational database(关系型数据库)
.
大家知道数据库是用来存储大量数据的一种软件,那么SQL呢是用来操作数据里的数据,具体来说SQL可以做数据查询,数据更新,写入数据等等。
如果把数据库
比作盘子
,那数据
就是盘子里的菜
,SQL
则是你的筷子
。
因为SQL和数据库是天生的一对,又相对简单,目前世界上大部分网站和APP背后的数据都是建立在SQL数据库基础之上。
大家应该或多或少听说过一些数据库比如 SQLite
, MySQL
, Postgres
, Oracle
和 Microsoft SQL Server
. 这几个数据库(可以理解为软件)是目前比较流行的一些数据库。所有这些数据库都支持标准的 SQL
,换句话说,你学会了SQL就可以对这些数据库做数据操作了! 当然上面的每一种数据库都有自己的特性和适用范围(想象一下你家有 不同尺寸的盘子
).
在学习SQL语法之前有必要解释一下什么是关系型数据库(Relational databases)?数据库由若干张表
(Table)组成,这里说的数据Table很像Excel里的表; 正如Excel里的表格,Table也是由 行(rows)
和列(columns)
组成
一个Table存储一个类别的数据,每一行是一条数据,每一列是这种数据的一个属性; Table就像一个二维的表格,列(columns)
是有限固定的,行(rows)
是无限不固定的
举个例子, 比如我们数据库里有一张表(Table)
. 是用来存储世界上所有的狗,每一行(rows)
是一条狗的信息。那么你会在这个狗Table里存储 哪些狗的属性列(columns)
呢?比如 编号,名字,体重,身高,品种,年龄,毛发颜色?。让我们来看一下这张表,暂且就叫表 Dog吧!
Id | # Name(名字) | # Weight(体重) | # Height (身高) | # Type (品种) | # Age (月龄) | # Color (肤色) |
1 | Mike | 3 | 28 | 吉娃娃 | 10 | 白 |
2 | Sala | 6.5 | 40 | 柴犬 | 15 | 黄 |
3 | 黑狮 | 21.5 | 45 | 藏獒 | 26 | 黑 |
4 | 大圣 | 15 | 42 | 牧羊犬 | 20 | 黄 |
5 | Boy | 5.5 | 24 | 蝴蝶犬 | 6 | 白 |
... | ... | ... | ... | ... | ... | ... |
上面就是一个Dog表的简单展示,像这样一个狗数据库里,除了这张狗(Dog)表,还可能存在其他的表,比如有一张表是存狗品种信息, 另外有一张表是存狗主人信息的 ...
我们学习SQL, 其实最后目的就是在类似这张Dog表数据基础上, 可以通过SQL来回答诸如以下的一类问题: "现在全世界名字叫 'Mike'的狗有几条?", 或者 "有多少条狗的毛发是 红色的?", 等等。 通过SQL我们可以方便的去获取,统计这些信息,在接下来的更多章节中你会有更深的体会.
所有练习都会有表(Table)的数据展示,在表下方有一个可以输入 SQL(SQL语句) 的编辑器,您需要理解右侧的任务列表并写出正确的SQL . 当然,您也可以直接在编辑器里输入 其他的SQL,每次输入SQL都会立即执行,并把结果显示在表数据的位置!
第一次的练习很简单,您只需要按照任务列表里的SQL,在编辑器里抄一遍即可(抄完SQL注意下表格里的数据有何变化)。这个练习主要是希望你通过互动对SQL有一个初步映像. 那让我们赶紧开始玩吧 ..
注意我们练习中的表不是狗表,而是一张存储了电影信息(movies)的表
提示信息 |
SQL为空或数据为空 |
--请输入sql重置 练习 do it — 请完成如下任务
SELECT title FROM movies
SELECT title,director FROM movies WHERE Id < 5
SELECT count(*) FROM movies