在数据库中,除了表中的数据,其他都不区分大小写。
《SQL必知必会(第四版)》电子书
https://pan.baidu.com/s/1sUzdNZSChK-zZz4YfZfLQQ
提取码:4oyt
附录A 样例表脚本
A.1 样例表
本书中所用的表是一个假想玩具经销商使用的订单录入系统的组成部分。这些表用来完成以下几项任务:
- 管理供应商;
- 管理产品目录;
- 管理顾客列表;
- 录入顾客订单。
完成它们需要5个表(它们作为一个关系数据库设计的组成部分紧密关联)。以下各节给出每个表的描述。
表的描述
下面介绍5个表及每个表内的列名。
1.Vendors表
Vendors表存储销售产品的供应商。每个供应商在这个表中有一个记录,供应商ID列( vend_id)用于进行产品与供应商的匹配。
所有表都应该有主键。这个表应该用vend_id作为其主键。
2. Products表
Products表包含产品目录,每行一个产品。每个产品有唯一的ID
( prod_id列),并且借助vend_id(供应商的唯一ID)与供应商相关联。
所有表都应该有主键。这个表应该用prod_id作为其主键。
为实施引用完整性,应该在vend_id上定义一个外键,关联到vendors的vend_id列。
3. Customers表
customers表存储所有顾客信息。每个顾客有唯一的ID( cust_id列).
所有表都应该有主键。这个表应该用cust_id作为它的主键。
4.Orders表
orders表存储顾客订单(不是订单细节)。每个订单唯一编号( order_num列)。orders表按cust_id列(关联到Customers表的顾客唯一ID)关联到相应的顾客。
- 所有表都应该有主键。这个表应该用order_num 作为其主键。
- 为实施引用完整性,应该在cust_id 上定义一个外键,关联到Customers的cust_id列。
5.OrderItems表
orderItems表存储每个订单中的实际物品,每个订单的每个物品一行。对于orders表的每一行,在 OrderItems表中有一行或多行。每个订单物品由订单号加订单物品((第一个物品、第二个物品等)唯一标识。订单物品用order_num列(关联到orders表中订单的唯一ID)与其相应的订单相关联。此外,每个订单物品包含该物品的产品ID(把物品关联到Products表)。
- 所有表都应该有主键。这个表应该用order_num 和order_item作为其主键。
- 为实施引用完整性,应该在 order_num和 prod_id上定义外键,关联order_num到orders的order_num列,关联prod_id到Products的prod_id列。
数据库管理员通常使用关系图来说明数据库表的关联方式。要记住,正如上面表描述提到的,外键定义了这些关系。图A-1是本附录描述的五个表的关系图。
A.2获得样例表
学习各个例子,需要一组填充了数据的表。所需要获得和运行的东西都可以在本书网页http://www.forta.com/books/0672336073/找到。
MySQL样例表和数据的sql:https://pan.baidu.com/s/1024yj3uonDz1bFsbJ0iHlg
提取码:eqz8
A.2.1下载可供使用的数据文件
可从上述URL下载一个填充了数据的如下格式的文件:
- Apache Open Office Base
- Microsoft Access ( 2000和2007)
- SQLite
如果使用这些文件,不需要执行任何SQL创建和填充脚本。
A.2.2下载DBMS SQL脚本
大多数DBMS 以不自己完成文件分布的格式存储数据(如Access、Openoffice Base和sQLite那样)对于这些DBMS,可以从上述URL下载SQL脚本。对于每个DBMS,有两个文件:
- create.text包含创建5个数据库表(包括定义所有主键和外键约束)的sQL语句。
- populate.txt包含用来填充这些表的SQL INSERT语句。
这些文件中的SQL语句依赖于具体的DBMS,因此应该执行适合于你的DBMS的那个。这些脚本为方便读者而提供,作者对执行它们万一引起的问题不承担任何责任。
- IBM DB2;
- Microsoft SQL Server (包括Microsoft sQL Server Express );
- MariaDB
- MySQL;
- Oracle(包括Oracle Express );
- PostgreSQL。
有这么多可以用,建议使用MySQL,企业中用的最多。
附录B 流行的应用程序
B.0 使用MySQL
有两种方式使用MySQL。DBMS带有一个名为mysq1的命令行实用程序。这是一个纯文本工具,通常作为MySQL安装程序的一部分来安装,用来执行任何SQL语句。另外,MySQL的创建者发布了一个名为MySQLWorkbench的交互工具,通常需要独立下载和安装,所以它不会出现在其他安装程序中。学习MySQL时,强烈推荐使用它。
从命令行使用mysql,进行如下操作。
(1)输人mysq1运行实用程序。根据如何定义安全性,可能需要使用-u和-p参数指定登录信息。
(2)在mysq1>提示下输人USE database打开数据库,例如USE tysq7就是打开tysq1数据库。
(3)在mysql>提示下输入SQL语句,每条语句必须以分号(;)结束。结果将显示在屏幕上。
(4)为可能使用的命令列表输人\h,为状态信息输人\s(包括MySQL版本信息)。
(5)输人\q退出mysq1实用程序。
使用MySQL Workbench,进行如下操作。
(1)运行MySQL Workbench。
(2) MySQL Workbench的最左侧列出了可用的 MySQL数据库连接,允许你访问它们。点击任何连接就可以打开这个数据库;如果数据库没有在此列出,请选择New Connection。
(3)一旦连接,就会显示多个窗口。左侧的O