数据库习题课答案(sql,关系代数,权限管理) 下载本文

内容发布更新时间 : 2024/5/21 1:45:25星期一 下面是文章的全部内容请认真阅读。

? 根据下面所给的商品库,写出SQL语句

商品表1(商品代号char(8),分类名char(8),单价float数量int) 商品表2(商品代号char(8),产地char(8),品牌char(8) ) 1)从商品库中查询出数量在10和20之间的商品种数

select count(*) from 商品表1

where 数量between 10 and 20;

2)从商品库中查询出每类(即分类名相同)商品的总数量 select 分类名,sum(数量) from 商品表1

group by 分类名

3)从商品库中查询出比所有商品单价的平均值要低的全部商品

select * from 商品表1

where 单价< (select avg(单价) from 商品表1)

4)从商品库中查询出所有商品的不同产地的总数

select count(distinct 产地) from 商品表2

? 设车辆管理数据库的数据模式如下: 车辆(车号,车名,车颜色,生产厂名) 工厂(厂名,厂长姓名,所在城市名) 城市(城市名,人口,市长姓名) 用关系代数写出如下查询:

1)查询车名为红旗牌轿车的所有车号

π车号(σ车名=‘红旗’(车辆))

2)查询红旗牌轿车的生产厂家及厂长姓名

Π 厂名,厂长姓名(σ车名=‘红旗’(车辆工厂))

3)查询林肯牌轿车的生产厂家及所在城市的市长姓名

Π 生产厂家,市长姓名(σ车名=‘林肯’( 车辆工厂城市))

4)查询第一汽车制造厂生产的汽车的颜色

Π 车颜色(σ生产厂名=’第一汽车制造厂’(车辆))

5)查询武汉生产哪些牌子的车

Π 车名(σ所在城市名=’武汉’(车辆工厂))

? 今有两个关系模式:

职工(职工号,姓名,年龄,职务,工资,部门号); 部门(部门号,名称,经理名,地址,电话)。

请用SQL 的GRANT和REVOKE语句(加上视图机制),完成以下授权定义或存取控制功能。

1)用户王明对两个表有SELECT权力。 GRANT SELECT ON 职工,部门 TO 王明

2)用户李勇对两个表有INSERT和DELETE权力。

GRANT INSERT,DELETE ON 职工,部门 TO 李勇

3)用户刘星对职工表有SELECT权利,对工资字段具有更新权力。 GRANT SELECT,UPDATE(工资) ON 职工 TO 刘星 4)用户张新具有修改这两个表的结构的权力。 GRANT ALTER TABLE ON 职工,部门 TO 张新; 5)用户周平具有对两个表的所有权力(读、插、改、删数据),并具有给其他用户授权的权利

GRANT ALL PRIVILIGES ON 职工,部门 TO 周平 WITH GRANT OPTION;