问题 填空题

阅读以下说明,根据要求回答下列问题。
[说明]
某商场客户一商品数据库中的各关系模式如下。
客户(客户号,姓名,性别,年龄)
商品(商品号,名称,型号,品牌,单价,库存)
销售(流水号,

客户号

,

商品号

,数量,日期)
采购(商品号,数量)
其中:
(1)一种品牌的同一名称商品可以有多个型号,商品的库存有大于等于0的约束。
(2)销售表记录每一笔销售,每销售一件商品,其库存都要做相应的修改。
现假定已经建立了该数据库及上述4个基本表。

(1)客户关系中的年龄取值在15~60岁之间(包含15岁和60岁),增加该约束的SQL语句如下,请将空缺部分补充完整。
ALTER TABLE 客户 ADD CONSTRAINT
CONSTRAINT con_age CHECK (______)
(2)如以下用SQL语句创建的畅销商品视图中包含商品号、商品名称、型号、品牌和销售量,该视图中商品的销售量大于等于1000件,请将空缺部分补充完整。
CREATE VIEW 畅销商品 ______
AS
SELECT 商品.商品号,名称,型号,品牌,销售量
FROM 商品,(SELECT 商品号, ______ AS 销售量
FROM 销售
GROUP BY 商品号
HAVING SUM(数量)>=1000) AS 商品销售量
WHERE ______;
(3)将畅销商品的查询权限赋予销售经理李华,请将空缺部分补充完整。
GRANT ______ ON TABLE 畅销商品 TO 李华;

答案

参考答案:(A)年龄>=AE AND 年龄<=F0或年龄 BETWEEN AE AND F0
(B)(商品号,商品名称,型号,品牌,销售量)
SUM(数量)
商品.商品号=商品销售量.商品号
(C)SELECT

解析:这是一道要求读者掌握SQL中的数据定义语言(DDL)和数据控制语言(DCL)的综合分析题,本题的解答思路如下。
(1)定义列级上的用户定义完整性约束,要求客户的年龄在15~60岁之间(包含15岁和60岁),因此空缺处应填入“年龄>=15 AND 年龄<=60”。在标准SQL中,表示在某范围内取值还可以用关键字BETWEEN…AND…,因此该空缺处也可以填写BETWEEN 15 AND 60。注意,在SQL中没有类似“15<=年龄<=60”这样的表达方式。
(2)创建视图。在定义视图时,视图的属性列或者全部省略或者全部指定。若全部省略,则表示该视图由子查询中SELECT子句目标列中的各个字段构成,此时要求这些字段是简单的属性名。本题中SELECT子句后的“商品.商品号”不是简单的属性名,且视图的第2个属性“商品名称”与SELECT子句中的属性“名称”不同,故空缺处需要全部指定畅销商品视图的属性名,即应填入“(商品号,商品名称,型号,品牌,销售量)”。空缺处应填写集合函数“SUM(数量)”。空缺处考核连接查询的查询条件,视图应仅包含销售量大于等于1000件的商品信息,故该空缺处应填入等值连接条件“商品.商品号=商品销售量.商品号”。
(3)数据控制语言中的授权语句。GRANT之后紧跟的是所要授予的操作权限“查询”,因此空缺处应填入“SELECT”。

填空题
判断题