阅读下列说明,回答问题1至问题4,将解答填入对应栏内。 【说明】某工程项目公司的信息管理系统的部分关系模式如下: 职工(职工编号,姓名,性别,居住城市) 项目(项目编号,项目名称,状态,城市,负责人编号) 职工项目(职工编号,项目编号) 其中: (1)一个职工可以同时参与多个项目,一个项目需要多个职工参与。 (2)职工的居住城市与项目所在城市来自同一个域。 (3)每个项目必须有负责人,且负责人为职工关系中的成员。 (4)项目状态有两个:0表示未完成,1表示已完成。
问答题
下面是创建职工关系的SQL语句,职工编号唯一识别一个职工,职工姓名不能为空。请将空缺部分补充完整。 CREATE TABLE职工( 职工编号CHAR(6), 姓名CHAR(8) (a), 性别CHAR(2), 城市VARCHAR(20), PRIMARYKEY (b);
【正确答案】 正确答案:(a)NOT NULL(不区分大小写) (b)(职工编号)
【答案解析】 解析:本题考核的是关系模型的完整性约束。完整性约束包括实体完整性、参照完整性和用户定义的完整性三类。实体完整性约束规定关系的主属性不能取空值,关系模型中以主码作为唯一性标示:参照完整性约束规定若属性(或属性组)A是关系R上的主码, B是关系S上的外码,A与B相对应(来自相同的域),则B取值为空或者来自于R上的某个A的值。用户定义的完整性约束是针对具体的数据库应用而定义的,它反映该应用所涉及的数据必须满足用户定义的语义要求。本题定义了两个完整性约束,职工的姓名不能为空,这是用户定义的完整性,用NOT NULL关键字;职工编号唯一识别一个职工,这是实体完整性约束,用PRIMARY KEY关键字。
问答题
下面是创建项目关系的SQL语句。请实现相关的完整性约束。 CREATE TABLE项目( 项目编号CHAR(6), 项目名称VARCHAR(20), 状态CHAR(1) CHECK (c), 城市VARCHAR(20), 负责人编号CHAR(6) (d), FOREIGNKEY (e) REFERENCES (f));
【正确答案】 正确答案:(c)(状态IN('0','1')) (d)NOT NULL(不区分人小写) (e)负责人编号 (f)职工(职工编号)
【答案解析】 解析:本题考核的还是完整性约束。用户定义项目状态有两个,既0和1分别表示未完成和已完成状态,用CHECK关键字;负责人编号是外码,用关键字FOREIGN KEY… REFERENCES…,并且题中要求每个项目必须有负责人,负责人来自职工关系。
问答题
请完成下列查询的SQL语句。 (1)查询至少参加两个项目的职工编号和参与的项目数。 SELECT职工编号, (g) FROM职工项目 GROUP BY (h) HAVING (i); (2)查询参与居住城市正在进行的工程项目的职3232号和姓名。 SELECT职工.职工编号,姓名 FROM职工,职工项目,项目 WHERE职工.职工编号=职工项目.职工编号AND项目.项目编号:职工 项目.项目编号AND (j) AND (k);
【正确答案】 正确答案:(g) COUNT(项目编号) (h)职工编号 (i) COUNT(项目编号)>=2 (2)(j)职工.城市二项目.城市 (k)状态='0' 或者 项目.状态='0' 说明:问题(j)与问题(k)的答案可以互换。
【答案解析】 解析:本题考核SQL的查询语句。其中(1)考核集合函数、GROUP BY和HAVING语法。 (2)考核多表连接的复合条件查询。
问答题
假设项目编号为“P001”的项目负责人李强(其用户名为U1)有对参与该项目的职工进行查询的权限。下面是建立视图emp和进行授权的SQL语句,请将空缺部分补 充完整。 (1)CREATE VIEW (l) ASSELECT职工编号,姓名,性别,城市 FROM职工 WHERE职工编号IN (SELECT (m) FROM职工项目 WHERE (n)) WITHCHECKOPTION; (2)GRANT (o) ON emp TO U1;
【正确答案】 正确答案:(1)emp或者emp(职工编号,姓名,性别,城市) (m)职工编号 (n)项目编号='P001' (2)(o) SELECT
【答案解析】 解析:本题考核数据库的视图机制和安全控制功能。在设计数据库时,可以对不同的用户定义不同的视图实现对机密数据的安全保护功能。
提交答案
关闭