附录A SQL入门之样例表

编写SQL语句需要良好地理解基本数据库设计。如果不知道什么信息存放在什么表中,表与表之间如何互相关联,行中数据如何分解,那么要编
写高效的SQL是不可能的。
强烈建议读者实际练习本书的每个例子。所有课都共同使用了一组数据文件。为帮助你更好地理解这些例子、学好各课内容,本附录描述了所用的
表、表之间的关系以及如何创建(或获得)它们。

A.1 样例表

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

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

完成它们需要5个表(它们作为一个关系数据库设计的组成部分紧密关联)。以下各节给出每个表的描述。
说明:简化的例子
这里使用的表不完整,现实世界中的订单录入系统还会记录这里所没有的大量数据(如工资和记账信息、发货追踪信息等)。不过,这些表确实示范了现实世界中你将遇到的各种数据的组织和关系。读者可以将这些技术用于自己的数据库。

表的描述

下面介绍5个表及每个表内的列名。

  1. Vendors表
    Vendors表存储销售产品的供应商。每个供应商在这个表中有一个记录,供应商ID列(vend_id)用于进行产品与供应商的匹配。
    表A-1 Vendors表的列
说 明
vend_id 唯一的供应商ID
vend_name 供应商名
vend_address 供应商的地址
vend_city 供应商所在城市
vend_state 供应商所在州
vend_zip 供应商地址邮政编码
vend_country 供应商所在国家
  • 所有表都应该有主键。这个表应该用vend_id作为其主键。
  1. Products表
    Products表包含产品目录,每行一个产品。每个产品有唯一的ID(prod_id列),并且借助vend_id(供应商的唯一ID)与供应商相关联。
    表A-2 Products表的列
说 明
prod_id 唯一的产品ID
vend_id 产品供应商ID(关联到Vendors表的vend_id)
prod_name 产品名
prod_price 产品价格
prod_desc 产品描述
  • 所有表都应该有主键。这个表应该用prod_id作为其主键。
  • 为实施引用完整性,应该在vend_id上定义一个外键,关联到Vendors的vend_id列。
  1. Customers表
    Customers表存储所有顾客信息。每个顾客有唯一的ID(cust_id列)。
    表A-3 Customers表的列
说 明
cust_id 唯一的顾客ID
cust_name 顾客名
cust_address 顾客的地址
cust_city 顾客所在城市
cust_state 顾客所在州
cust_zip 顾客地址邮政编码
cust_country 顾客所在国家
cust_contact 顾客的联系名
cust_email 顾客的电子邮件地址
  • 所有表都应该有主键。这个表应该用cust_id作为它的主键。
  1. Orders表
    Orders表存储顾客订单(不是订单细节)。每个订单唯一编号(order_num列)。Orders表按cust_id列(关联到Customers表的顾客唯一ID)关联到相应的顾客。

表A-4 Orders表的列

说 明
order_num 唯一的订单号
order_date 订单日期
cust_id 订单顾客ID(关联到Customers表的cust_id)
  • 所有表都应该有主键。这个表应该用order_num作为其主键。

  • 为实施引用完整性,应该在cust_id上定义一个外键,关联到Customers的cust_id列。

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

表A-5 OrderItems表的列

说 明
order_num 订单号(关联到Orders表的order_num)
order_item 订单物品号(订单内的顺序)
prod_id 产品ID(关联到Products表的prod_id)
quantity 物品数量
item_price 物品价格
  • 所有表都应该有主键。这个表应该用order_num和order_item作为其主键。
  • 为实施引用完整性,应该在order_num和prod_id上定义外键,关联order_num到Orders的order_num列,关联prod_id到Products的prod_id列。数据库管理员通常使用关系图来说明数据库表的关联方式。要记住,正如上面表描述提到的,外键定义了这些关系。图A-1是本附录描述的五个表的关系图。
    图A-1 样例表关系图

相关推荐

  1. HElib 使用

    2023-12-11 04:40:03       10 阅读
  2. 附录E SQL入门SQL保留字

    2023-12-11 04:40:03       42 阅读
  3. go-factory工厂模式

    2023-12-11 04:40:03       37 阅读
  4. Flink算子简单测试

    2023-12-11 04:40:03       38 阅读
  5. opencv的SIFT(CPP/python)

    2023-12-11 04:40:03       36 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-11 04:40:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-11 04:40:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-11 04:40:03       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-11 04:40:03       20 阅读

热门阅读

  1. Git命令---绑定远程仓库

    2023-12-11 04:40:03       38 阅读
  2. 天池SQL训练营(六)-综合练习题-10道经典题目

    2023-12-11 04:40:03       28 阅读
  3. MySQL面试题

    2023-12-11 04:40:03       43 阅读
  4. 深入理解 Go 函数:从基础到高级

    2023-12-11 04:40:03       40 阅读
  5. 图的深度和广度优先遍历

    2023-12-11 04:40:03       29 阅读
  6. NeuralKG运行备忘

    2023-12-11 04:40:03       37 阅读
  7. ngixn 准备

    2023-12-11 04:40:03       27 阅读
  8. python 高速去重比list 快速

    2023-12-11 04:40:03       40 阅读
  9. 2023阿里智能互联算法工程师 机器学习一面

    2023-12-11 04:40:03       32 阅读
  10. Linux下开发常用的CVS使用手册

    2023-12-11 04:40:03       36 阅读
  11. git 常用部分方法

    2023-12-11 04:40:03       23 阅读