《数据库课程复习大纲.ppt》由会员分享,可在线阅读,更多相关《数据库课程复习大纲.ppt(21页珍藏版)》请在三一办公上搜索。
1、数据库课程复习大纲,举例1,使用如下3个表,写出操作语句。部门:部门号,部门名,负责人,电话 职工:部门号,职工号,姓名,性别,出生日期 工资:职工号,基本工资,津贴,奖金,扣除 Department、Employee、Wage,举例(续),(1)查询职工的实发工资。,举例(续),(2)查询1970年12月12日出生的职工信息。,举例(续),(3)查询每个部门年龄最长者的信息,要求显示部门名称和最长者的姓名、出生日期。,举例(续),(4)查询所有目前年龄在35岁以上(不包含35岁)的职工姓名、性别和年龄。,举例(续),(5)查询有20名以上(含20名)职工的部门名称和职工人数,并按职工人数排序
2、。,举例,某工厂的信息管理数据库的部分关系模式如下所示:职工(职工号,姓名,年龄,月工资,部门号,电话,办公室)部门(部门号,部门名,负责人代码,任职时间)关系模式的主要属性、含义及约束如表2-1所示,“职工”和“部门”的关系示例分别如表2-2和表2-3所示。,举例(续),表2-1主要属性、含义及约束,表2-2“职工”关系,举例(续),表2-3“部门”关系,举例(续),举例(续),【问题1】根据上述说明,由SQL定义的“职工”和“部门”的关系模式,以及统计各部门的人数C、工资总数Totals、平均工资Averages的D_S视图如下所示,请在空缺处填入正确的内容。Create Table部门(
3、部门号CHAR(1)_primary key not null_,部门名CHAR(16),负责人代码 CHAR(4),任职时间 DATE,contraint fk_b_zh1 _foreign key peferences _foreign key_from 职工(职工号);Create Table职工(职工号 CHAR(4),姓名 CHAR(8),年龄 NUMBER(3),月工资 NUMBER(4),部门号 CHAR(1),电话 CHAR(8),办公室 CHAR(8),contraint pk_t_zh primary key_ _(职工号),_ contraint fk_b_zh _for
4、eign key from peferences _部门(部门号),CHECK(_0_平均工资500 and 平均工资5000_);Create View D_S(D,C 人数,Totals 工资总数,Averages 平均工资)As,(Select 部门号,avg(月工资),count(职工号)_ Totals=avg(月工资)*count(职工号)_from 职工);,举例(续),举例(续),【问题2】对于表2-2、表2-3所示的“职工”和“部门”关系,请指出下列各行是否可以插入,为什么?,举例(续),举例(续),【问题3】在问题l定义的视图D_S上,下面那个查询或更新是允许执行的,为什么
5、?(1)Update D_S set=3 where D=4;(2)Delete from D_S where C4;(3)Select D,Averages fromD_S where C(Select C from D_S where D=:dept);(4)Select D,C From D_S where Totals10000;(5)Select*from D_S;,举例(续),举例(续),【问题4】查询每个部门中月工资最高的“职工号”的SQl查询语句如下:Select 职工号 from 职工Ewhere 月工资=(Select Max(月工资)from职工as Mwhere M.部门号=E.部门号)(1)请用30字以内文字简要说明该查询语句对查询效率的影响。(2)对该查询语句进行修改,使它既可以完成相同功能,又可以提高查询效率。,举例(续),举例(续),【问题5】假定分别在“职工”关系中的“年龄”和“月工资”字段上创建了索引,如下的Select查询语句可能不会促使查询优化器使用索引,从而降低查询效率,请写出既可以完成相同功能又可以提高查询效率的SQL语句。Select 姓名,年龄,月工资 from 职工where 年龄45 or 月工资1000;,举例(续),