数据库原理与应用 第 14 章 · 上机三
课程第 14 章上机三 头一坑二号坑三号坑商品侧订单侧三张联系数一数走一遍 版式
第 14 章 数据库物理结构设计、实施和运行维护 · 上机三

照课件把十张表建出来

课件第 14 到 20 页那十张表的结构,照着建一遍。它留了三个坑,照抄一定撞。
已完成 0 / 7
本 次 上 机 题 目
  1. 01表名叫 Order,建不起来
  2. 02char() 的括号是空的
  3. 03课件第 22 页那段少一个右括号
  4. 04供应商、商品、分类三张
  5. 05地址与物流两张
  6. 06供应、分类、包含
  7. 07十张表,一张不多一张不少
  8. 十张表一口气建完
01
第 14 章 · 上机三

表名叫 Order,建不起来

课件第 17 页那张订单表就叫 Order,照着敲一遍试试。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

ORDER 是保留字,光秃秃地当表名会报 1064,加上反引号才行。

知道更多更正

课件的表名用 Order,落到 MySQL 上必须加反引号或者改名。

想一想

换个名字叫 Orders,是不是更省事?

02
第 14 章 · 上机三

char() 的括号是空的

课件第 19 页用户表里,登录密码那一行写的是 char()。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

空括号报 1064。密码存的是摘要,长度固定,这里按 32 位补上。

知道更多更正

课件第 19 页 cuspassword 写成 char(),括号里漏了数字。

想一想

密码为什么不用 VARCHAR?

03
第 14 章 · 上机三

课件第 22 页那段少一个右括号

课件的建表例子写到 PRIMARY KEY 就断了,下一行直接是索引。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

少一个右括号就报 1064,补上再跑就成了。

知道更多更正

课件第 22 页那段建表语句缺右括号和分号,照抄跑不通。

想一想

连分号也漏掉的话,终端会怎么样?

04
第 14 章 · 上机三

供应商、商品、分类三张

类型和长度全照课件表 14-1、14-2、14-4。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

缩略图存的是路径不是图片,所以是 VARCHAR(100) 而不是二进制。

知道更多

概述 500 字比商品名 40 字长得多,长短不一的一律用 VARCHAR。

05
第 14 章 · 上机三

地址与物流两张

地址十列,物流五列,外码先不加,等表都建齐了再说。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

联系人 char(4) 只装得下四个字,五个字的名字会撞 1406。

知道更多

物流编号 char(3) 最多一千条,订单编号却有 17 位,两边差得远。

想一想

这两处位数,你会怎么改?

06
第 14 章 · 上机三

供应、分类、包含

三张都是联合主码,两列各自又是外码。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

课件这三张表只标了主码,外码得自己补上,不然引用不住。

知道更多更正

课件第 16、20 页的三张联系表没标外码,落地时要加。

07
第 14 章 · 上机三

十张表,一张不多一张不少

上一章十个关系模式,这一章十张真表。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

回显末行写着 10 rows in set,跟上一章那份清单对得上。

练一练

同一组关系模式,为什么不同的人会建出不一样的表?
  1. A关系模式本身不唯一
  2. B类型和长度是这一步才定的,各人估的量不一样
  3. CMySQL 版本不同
  4. D外码可以随便加
答案 B

逻辑结构只说有哪几列,类型、长度、索引全在物理结构这一步定,跟业务量估计有关。

第 14 章 · 上机三

十张表一口气建完

头一句先按被引用的反序删干净,再从零建一遍。

Welcome to the MySQL monitor. Commands end with ;
Server version: 8.0.36 MySQL Community Server - GPL
终端一打开是一个空的 shop 库,这一章要照课件那十张表的结构自己建出来。
mysql>

重 点

从需求到这十条 CREATE TABLE,四章书走完了,下一步就是装数据。

记牢它顺序

  1. 先建被引用的
  2. 再建引用它的
  3. 反着删

想一想

这十张表还差什么才能用?

保山学院·人工智能教研室·曹鼎鼎