某工程项目公司的信息管理系统的部分关系模式如下:职工(职工编号,姓名,性别,居住城市);项目(项目编号,项目名称,状态,城市,负责人编号);职工项目(职工编号,项目编号)。其中:1)一个职工可以同时参与多个项目,一个项目需要多个职工参与。2)职工的居住城市与项目所在城市来自同一个域。3)每个项目必须有负责人,且负责人为职工关系中的成员。4)项目状态有两个:0表示未完成,1表示已完成。写出下列SQL语句。1)写出创建项目关系的SQL语句,请实现相关的完整性约束。查询至少参加两个项目的职工编号和参与的项目数。2)假设项目编号为"P001”的项目负责人李强(其用户名为u1)有对参与该项目的职工进行查询的权限。写出建立视图emp和进行授权的SQI_,语句。
【正确答案】正确答案:1)CREATE TABLE项目(项目编号CHAR(6)项目名称VARCHAR(20),状态CHAR(1)CHECK(状态=‘l’OR状态=‘O’),城市VARCHAR(20),负责人编号CHAR(6)NOT NULLL,FOREIGN KEY(项目编号)REFERENCES职工项目(项目编号)); SELECT职工编号,COUNT(项目编号) FROM职工项目 GROUP BY 职工HAVING COUNT(项目编号)>=2; 2)CREATE VIEW emp As SELECT职工编号,姓名,性别,城市FROM职工WHERE职工编号IN(SELECT职工编号 FROM职工项目 WHERE项目编号=‘P001’) WITH CHECK OPTION; GRANT SELECT ON emp T0 Ul:
【答案解析】解析:主要考查了SQIL的数据查询功能、数据定义功能和数据操纵功能。这类问题主要是考查对SELECT FROM WHERE语句的掌握。