SQL样例表脚本

SQL样例表脚本,编写SQL语句需要良好地理解基本数据库设计。如果不知道什么信息存放在什么表中,表与表之间如何互相关联,行中数据如何分解,那么要编写高效的SQL是不可能的。

本文描述了所用的表、表之间的关系以及如何创建(或获得)它们。

样例表

本教程中所用的表是一个假想玩具经销商使用的订单录入系统的组成部分。这些表用来完成以下几项任务:

  • 管理供应商;
  • 管理产品目录;
  • 管理顾客列表;
  • 录入顾客订单。

完成它们需要5个表(它们作为一个关系数据库设计的组成部分紧密关联)。以下各节给出每个表的描述。

说明:简化的例子
这里使用的表不完整,现实世界中的订单录入系统还会记录这里所没有的大量数据(如工资和记账信息、发货追踪信息等)。不过,这些表确实示范了现实世界中你将遇到的各种数据的组织和关系。读者可以将这些技术用于自己的数据库。

下面介绍5个表及每个表内的列名。
1.Vendors表
Vendors表存储销售产品的供应商。每个供应商在这个表中有一个记录,供应商ID列(vend_id)用于进行产品与供应商的匹配。

SQL样例表脚本

  • 所有表都应该有主键。这个表应该用vend_id作为其主键。

2.Products表
Products表包含产品目录,每行一个产品。每个产品有唯一的ID(prod_id列),并且借助vend_id(供应商的唯一ID)与供应商相关联。

SQL样例表脚本

  • 所有表都应该有主键。这个表应该用prod_id作为其主键。
  • 为实施引用完整性,应该在vend_id上定义一个外键,关联到Vendors的vend_id列。

3.Customers表
Customers表存储所有顾客信息。每个顾客有唯一的ID(cust_id列)。

SQL样例表脚本

  • 所有表都应该有主键。这个表应该用cust_id作为它的主键。

4.Orders表
Orders表存储顾客订单(不是订单细节)。每个订单唯一编号(order_num列)。Orders表按cust_id列(关联到Customers表的顾客唯一ID)关联到相应的顾客。

SQL样例表脚本

  • 所有表都应该有主键。这个表应该用order_num作为其主键。
  • 为实施引用完整性,应该在cust_id上定义一个外键,关联到Customers的cust_id列。

5.OrderItems表
OrderItems表存储每个订单中的实际物品,每个订单的每个物品一行。对于Orders表的每一行,在OrderItems表中有一行或多行。每个订单物品由订单号加订单物品(第一个物品、第二个物品等)唯一标识。订单物品用order_num列(关联到Orders表中订单的唯一ID)与其相应的订单相关联。此外,每个订单物品包含该物品的产品ID(把物品关联到Products表)。

SQL样例表脚本

  • 所有表都应该有主键。这个表应该用order_num和order_item作为其主键。
  • 为实施引用完整性,应该在order_num和prod_id上定义外键,关联order_num到Orders的order_num列,关联prod_id到Products的prod_id列。

数据库管理员通常使用关系图来说明数据库表的关联方式。要记住,正如上面表描述提到的,外键定义了这些关系。下图是本附录描述的五个表的关系图。

SQL样例表脚本

酷客网相关文章:

赞(0)

评论 抢沙发

评论前必须登录!

 

SQL教程