购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.1.5 关于SQL语句的书写规范

前面我们接触到的SQL语句都非常简单,但是在书写规范上,依然有这样几点值得大家注意。

1.关于SQL语句的大小写

首先大家要知道,SQL语句不区分大小写,对于关键词、列(名)和表(名)来说都是这样的。所以在书写正确的前提下,我们可以按照个人习惯来选择大写或小写。

但是对于初学者来讲,建议大家在书写SQL语句时,能够适当地切换大小写,用以区分关键词、列名和表名。这样做不仅便于分析语句的构成,还方便后续的阅读和检查,而且适当地在大小写间进行切换还有助于思路的引导。

正是出于这样的目的,我们的例句对关键词均使用大写,列名使用小写,表名仅首字母大写。

2.关于SQL语句中的空格

其实当我们在书写SQL语句时,只需保证各个关键词、列名、表名之间存在一个基本单位的空格就可以了。不过使用多个空格并不影响语句的执行。举例来讲,我们对例句(3)的书写原本是这样的:

但这并非MySQL接受的唯一书写格式,还可以在其中插入更多的空格,甚至换行也不影响执行结果:

因此,与使用大小写一样,我们可以本着方便阅读和书写的原则,按照个人习惯和审美使用空格。

3.关于SQL语句的结尾方式

我们都对“但故事的最后,你好像还是说了拜拜”这样一句歌词感到有些伤感,然而这样的画面在使用SQL时并不会出现。正如大家所见,在上述例句中,我们都使用了“;”作为结尾,不过如果每次执行的只有单条SQL语句,那么分号是可以省略的,就像这样:

可如果要一次性执行多条SQL语句,那么语句之间就必须使用分号隔开,例如:

这是因为分号的实际含义是分隔符,它会将一众语句分割成独立的执行单位,以供MySQL识别。这类似于在检索语句中,我们会使用逗号将各个列名隔开一样。事实上,当大家向样例表中插入数据时,正是在批量执行SQL语句(由INSERT引导的SQL语句),例如:

大家可以看到,我们在每条SQL语句的末尾都使用了分号(最后一条可以不用),这是因为插入一行数据要使用一条INSERT语句,而一条INSERT语句也是一个独立的执行单位。

如果我们不使用分号进行分隔,那么MySQL将无法识别单个执行单位,批量的执行操作也将无法展开,就像这样:

这就像在朗读一篇文章,当遇到逗号或者句号的时候,我们总要停顿一下表示断句。可如果通篇文章都没有标点符号,那么就很难朗读。

需要补充说明的是:批量执行并不是指所有语句同时执行,而是指分步执行每一条语句。当然,MySQL也将分步反馈执行结果——执行成功显示为绿色,执行失败显示为红色。

以上就是本节的全部内容,在此我们不妨做一番总结。

1. 如果要查看整张表中含有的信息,就使用“*”,它是一个通配符,代指所有列。

2. 如果想查看特定列中含有的信息,需要将“*”换成目标列的列名。不仅如此,还可以调整列在结果中的显示顺序。

3. 列是比表更小一级的存储单位,在纵向体现一组数据的分类和归属。

4. 行是表中信息的动态输出形式,在横向体现一组数据的对应关系。

5. SQL语句不区分大小写,且语句中各成分之间的最小间距是一个空格。

6. 若想批量执行多条SQL语句,那么语句间的分号必不可少。分号可以体现SQL语句的完整性,所以即便是书写单条语句,也建议加上它。

7. SQL语句的书写要在英文格式下进行,否则可能会报错。

8. 正如本章导读中所提到的:关键词SELECT就像一只看不见的手,它随时听候我们的调遣,预备抓取信息。没错,但是想必同学们都很清楚,抓取这一行为的前提是告知从何处抓取,也就是事先告知这只手该伸向哪里。举例来讲,如果李乔丹想查看姑娘们的姓名信息,那么毫无疑问,Contact表中的name列就是被抓取的对象,而Contact表本身则是伸手操作的目标:

从这一点我们就可以推断出,MySQL执行关键词FROM一定先于执行关键词SELECT。事实上,虽然在检索语句中,由关键词SELECT引导的部分(被蓝色标注的部分)处在排头兵的位置,但是它的执行顺序其实相当靠后。而被关键词FROM引导的部分(被红色标注的部分),在一般的检索语句中几乎是首批被执行的对象。这其实也是SQL语言的一个特点:关键词的执行顺序与书写顺序不一致。后续我们还将为大家介绍其他关键词的执行顺序。 MLa91ed9mcbVWJrNKqhPqyAtspO0g5XHcqs18RagSBBWCIIUxpJGuD3VwzcyGYOz

点击中间区域
呼出菜单
上一章
目录
下一章
×