前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >第一课 了解sql准备样例表sql初探

第一课 了解sql准备样例表sql初探

作者头像
desperate633
发布2018-08-22 11:29:10
6480
发布2018-08-22 11:29:10
举报
文章被收录于专栏:desperate633desperate633

准备

首先阅读这本书,必须先了解这本书里sql语句所操作的数据库表。 也就是书附录中的样例表,深入理解这个样例表不仅可以帮助我们设计好的数据库结构,也能打下基础,更好的实践本书中的代码。

样例表

本书使用的样例表的是假想一个玩具经销商使用的一个订单录入系统,这个系统的数据库主要用来完成一下这些任务:

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

粗看上面这些任务,我们自然会考虑到至少需要这么几个表:

  • 供应商表,存储供应商的信息
  • 产品表,存储产品信息
  • 顾客表,存储顾客信息
  • 订单表,存储订单信息 但是,嘻嘻仔细分析,会发现这里的订单信息无法用一个表存储,一个订单可能会包括很多的产品,而这些产品的数量是不固定的,无法用一个表来表示,所以我们考虑添加一个表来表示订单。 这里采用的是一个订单表,不存储订单的细节,另外一个订单item表存储订单的物品和细节。

所以,经过以上的分析,建立了五个表。 下面我们一一介绍这五个表:

  • Vendors表 这个表存储供应商的信息,每个供应商对应一条记录,用唯一的供应商ID来标识。并且以ID作为这个表的主键 具体的表结构如下:

Paste_Image.png

  • Products表 products表用来表示产品目录,存储产品信息,每个产品有一个产品ID但同时借助vend_id关联到供应商。设置主键和外键

Paste_Image.png

  • customers表 customers表用来存储顾客的信息,每个记录表示一条顾客的信息,用ID作为其主键,每个顾客的ID都是唯一的。

Paste_Image.png

  • Orders表 orders表存储订单,但不是订单的细节,这个订单表,只有三个字段,一个是每个订单唯一的编号也就是ID,一个订单的日期,一个是关联到这个订单的顾客ID所以设置一个外键,关联到相应的顾客。

Paste_Image.png

  • orderitems表 这个表存储每个订单中的实际物品,每个订单的每个物品一行。所以对于orders表的每一行也就是每个订单,由于物品数量的不一样,所以在orderitem表中,有一行或者很多行,每个订单物品由订单号加订单物品号唯一标识(也就是表示该订单的第一个物品,第二个物品之类的),每个订单物品包好该物品的产品ID。 所以这个表采用联合主键,分别是订单号(关联到order表),和订单物品号为主键 然后还要设计两个外键,分别是订单号,和产品ID

Paste_Image.png

总的表的结构关系如下图:

Paste_Image.png

sql初探

数据库的基本概念:数据库,表,列和数据类型,行,主键。 这里提一下主键需要满足的条件:

  • 任意两行的主键值不能相同
  • 每一行必须有一个主键,不能为null
  • 主键的值不允许修改或者更新
  • 主键值不能重用,某行从表格中删除,他的值不能赋给新行 Sql是一种专门与数据库沟通的语言。
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017.01.07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 准备
  • 样例表
  • sql初探
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档