题目
有如下汽车、生产厂家和销售三张表,各表结构如下:"汽车"表结构:汽车型号:普通编码定长字符类型,长度为10,主键。汽车名:统一编码可变长字符类型,长度为20,非空。颜色:统一编码定长字符类型,长度为2,取值为:“白色”、“红色”、“银灰”。出厂价格:整型,默认值50000。"生产厂家"表结构:厂家编号:普通编码定长字符类型,长度为20,主键。厂家名:统一编码可变长字符类型,长度为10,非空。厂址:统一编码可变长字符类型,长度为20。联系电话:普通编码定长字符类型,长度为8。"销售"表结构:汽车型号:普通编码定长字符类型,长度为10,引用“汽车”表的外键。厂家编号:普通编码定长字符类型,长度为20,引用“生产厂家”的外键。销售日期:日期型。销售价格:整型。CREATE TABLE 销售(汽车型号 underline((6)),厂家编号 char(20),销售日期 underline((7)),销售价格 int,
有如下汽车、生产厂家和销售三张表,各表结构如下:
"汽车"表结构:
汽车型号:普通编码定长字符类型,长度为10,主键。
汽车名:统一编码可变长字符类型,长度为20,非空。
颜色:统一编码定长字符类型,长度为2,取值为:“白色”、“红色”、“银灰”。
出厂价格:整型,默认值50000。
"生产厂家"表结构:
厂家编号:普通编码定长字符类型,长度为20,主键。
厂家名:统一编码可变长字符类型,长度为10,非空。
厂址:统一编码可变长字符类型,长度为20。
联系电话:普通编码定长字符类型,长度为8。
"销售"表结构:
汽车型号:普通编码定长字符类型,长度为10,引用“汽车”表的外键。
厂家编号:普通编码定长字符类型,长度为20,引用“生产厂家”的外键。
销售日期:日期型。
销售价格:整型。
CREATE TABLE 销售(
汽车型号 $\underline{(6)}$,
厂家编号 char(20),
销售日期 $\underline{(7)}$,
销售价格 int,
题目解答
答案
根据题目要求,“销售”表需包含以下字段:
- 汽车型号:`CHAR(10)`,外键引用“汽车”表。
- 厂家编号:`CHAR(20)`,外键引用“生产厂家”表。
- 销售日期:`DATE`类型。
- 销售价格:`INT`类型。
主键为“汽车型号”与“厂家编号”组合。完整SQL语句如下:
```sql
CREATE TABLE 销售 (
汽车型号 CHAR(10),
厂家编号 CHAR(20),
销售日期 DATE,
销售价格 INT,
PRIMARY KEY (汽车型号, 厂家编号),
FOREIGN KEY (汽车型号) REFERENCES 汽车(汽车型号),
FOREIGN KEY (厂家编号) REFERENCES 生产厂家(厂家编号)
);
```
填空结果:
(6)`CHAR(10)`
(7)`DATE`
解析
本题考查数据库表设计能力,需根据已知表结构设计“销售”表。关键点在于:
- 外键引用:销售表中的“汽车型号”和“厂家编号”需分别引用“汽车”表和“生产厂家”表的主键字段,注意字段类型和长度必须一致;
- 日期类型:销售日期需使用标准日期类型
DATE; - 主键设计:销售表的主键应为组合主键(汽车型号, 厂家编号),确保销售记录唯一性。
(6)汽车型号字段类型
- 外键约束要求:销售表的“汽车型号”需与汽车表的“汽车型号”字段类型完全一致。
- 汽车表字段定义:汽车型号为
CHAR(10),因此销售表中对应字段应填CHAR(10)。
(7)销售日期字段类型
- 日期型字段:SQL中存储日期通常使用
DATE类型,格式为YYYY-MM-DD,因此填DATE。