本节书摘来自异步社区出版社《SQL入门经典(第5版)》一书中的第1章,第1.4节,作者:【美】Ryan Stephens , Ron Plew , Arie D.Jones,更多章节内容可以访问云栖社区“异步社区”公众号查看。
1.4 本书使用的数据库
SQL入门经典(第5版)
在继续讨论SQL基础知识之前,我们先来介绍一下本书后续课程中要使用的数据库。下面的小节会介绍所用的表,说明它们之间的关系、它们的结构,并展示其中包含的数据。
图1.4展示了本书范例、测验和练习中所用的表的关系。每个表都有不同的名称、包含一些字段。图中的映射线表示了特定表之间通过共用字段(通常被称为主键)建立的联系。
1.4.1 表命名标准
像商业活动中的其他标准一样,表命名标准对于保持良好的控制也是非常重要的。从前面对于表和数据的介绍可以看出,每个表的名称都以_TBL作为后缀,这种方式也是很多站点所采用的。后缀_TBL说明这个对象是个表,而关系型数据库里存在着多种不同类型的对象。例如,在后续章节会出现后缀_INX,这说明对象是表的索引。命名标准几乎存在于整个机制之内,对任何关系型数据库的管理都起到了重要的辅助作用。需要说明的是,在命名数据库对象时,并不是一定要使用后缀。所谓的命名标准,只是为了在创建对象的时候有一定的准则可以用来遵循。读者可以根据自己的喜好来自由选择命名标准。
by注意:
不仅要遵循SQL实现的对象命名规则,还要符合本地商业规则,从而创建出具有描述性的、与业务数据相关联的名称。
1.4.2 数据一瞥
下面将展示本书所用表里包含的数据。请花一些时间来研究这些数据,观察它们的区别,了解数据之间和表之间的关系。其中有些字段不是一定要包含数据,这是在创建表时指明的。
1.4.3 表的构成
存储和维护有价值的数据是数据库存在的原因。前面的数据是用来解释本书中的SQL概念的,下面进一步详细介绍表里的元素。记住,表是数据存储的最常见和最简单的形式。
一、字段
每个表都可以分解为更小的项,这些项被称为“字段”。字段是表里的一列,用于保持每条记录的特定信息。表PRODUCTS_TBL里的字段包括PROD_ID、PROD_DESC和COST。这些字段对表中的信息进行分类保存。
二、记录或一行数据
记录,也被称为一行数据,是表里的各行。以表PRODUCTS_TBL为例,它的第一行记录如下所示:
很明显,这条记录由产品标识、产品描述和单价组成,对于每一种不同的产品,表PRODUCTS_TBL里都有一条相应的记录。
在关系型数据库的表里,一行数据是指一条完整的记录。
三、列
列是表里垂直的一项,包含表里特定字段的全部信息。举例来说,表PRODUCTS_TBL里代表产品描述的一列包含以下内容:
这一列基于字段PROC_DESC,也就是产品描述。一列包含了表里每条记录中特定字段的全部信息。
四、主键
主键用于区分表里每一条数据行。表PRODUCTS_TBL里的主键是PROD_ID,它通常是在表创建过程中初始化的。主键的特性确保了所有产品标识都是唯一的,也就是说表PRODUCTS_TBL里每条记录都具有不同的PROD_ID。主键避免了表中有重复的数据,并且还具有其他用途,具体介绍请见第3章。
五、NULL值
NULL是表示“没有值”的专用术语。如果表中某个字段的值是NULL,其表现形式就是字段为空,其值就是没有值。NULL并不等同于0或空格。值为NULL的字段在表创建过程中会保持为空。比如在表EMPLOYEE_TBL里,并不是每个雇员的姓名里都有中间名,其相应字段的值就是NULL。
后续两章将详细介绍表里的其他元素。
1.4.4 范例和练习
本书中的很多练习使用MySQL、Microsoft SQL Server和Oracle数据库来生成范例。这三种数据库都具有免费版本,可以自由选择一种来安装,以便完成本书所设置的练习。但是由于这三种数据库都不能与SQL-2008完全兼容,因此练习的结果可能会有一些细小的差别,不完全复合ANSI标准。不过,掌握了基本的ANSI标准以后,读者就可以在不同的数据库实现之间进行自由切换,以便解决大部分的问题了。