问题 问答题

[问题1] 以下是创建部分关系表的SQL语句,请将空缺部分补充完整。 CREATE TABLE客户( 客户号 CHAR(5) (a) , 姓名 CHAR(30),性别 CHAR(2) (b) ,地址 CHAR(30),邮编 CHAR(6));CREATE TABLE 订单(订单号CHAR(4),时间 CHAR(10),金额 NUMBER(6,2),客户号CHAR(5)NOTNULL,PRIMARY KEY(订单号), (c)

答案

参考答案:

解析:NOT NULL UNIQUE或NOT NULL PRIMARY KEY 或 PRIMARY KEY (b)CHECK (VALUE IN(’男’,’女’)) (c)FOREIGN KEY (客户号) REFERENCES 客户(客户号)

[分析]: 本题考查的是SQL语言中的创建基本表命令。 SQL中使用CREATE TABLE命令来定义基本表,其一般格式为: CREATE TABLE<表名>(<列名><数据类型>[列级完整性约束条件] [,<列名><数据类型>[列级完整性约束条件]]... [,<表级完整性约束条件>]); 本题着重考查完整性约束的定义。 · 实体完整性定义。声明主键有两种方法:将PRIMARYKEY保留字加在属性类型之后;在属性列表中引入一个新元素,该元素包含保留字PRIMARY KEY和用圆括号括起的构成主键的属性或者属性组列表。 · 参照完整性定义。FOREIGNKEY(属性名)REFERFENCES表名(属性名)。参照完整性通过保留字FOREIGNKEY定义哪些列为外码,REFERFENCES指明外码所对应的被参照表的主码。 · 用户定义完整性定义。用CHECK后增加一条检查子句来完成属性值上的约束。 根据题目描述,客户号唯一标识一位客户,客户性别取值为“男”或者“女”,一份订单必须且仅对应一位客户。所以,客户号是客户表的主键,客户性别的取值只能为“男”或者“女”,订单中的客户号必须外键依赖于客户。 因此,客户号应表示为主键: (a)NOT NULL UNIQUE或NOT NULL PRIMARY KEY或PRIMARY KEY; 客户性别的取值只能为“男”或者“女”: (b)CHECK (VALUE IN(’男’,’女’)) 订单中的客户号必须外键依赖于客户: (c)FOREIGN KEY (客户号) REFERENCES客户(客户号)

单项选择题
判断题