题目详情

某大型集团公司的数据库的部分关系模式如下:员工表:EMP(Eno,Ename,Age,Sex, Title),各属性分别表示员工工号、姓名、年龄、性别和职称级别,其中性别取值为"男""女";公司表:COMPANY(Cno,Cname,City),各属性分别表示公司编号、名称和所在城市;工作表:WORKS(Eno.Cno,Salary),各属性分别表示职工工号、工作的公司编号和工资。有关关系模式的属性及相关说明如下:(1)允许一个员工在多家公司工作,使用身份证号作为工号值。(2)工资不能低于1500元。

【问题1】请将下面创建工作关系的SQL语句的空缺部分补充完整,要求指定关系的主码、外码,以及工资不能低于1500元的约束。CREATE TABLE WORKS(Eno CHAR(10)( a ),Cno CHAR(4)( b ),Salary int( c ), PRIMARY KEY( d ));

【问题2】请将下面SQL语句的空缺部分补充完整。(1)创建女员工信息的视图FemaleEMP.属性有Eno、Ename、Cno、Cname和Salary,请将下面SQL语句的空缺部分补充完整。 CREATE( e )AS SELECT EMP.Eno, Ename, COMPANY.Cno, Cname, SalaryFROM EMP, COMPANY, WORKSWHERE( f );(2)员工的工资由职称级别的修改自动调整,需要用触发器来实现员工工资的自动维护,函数float Salary_value(char(10) Eno)依据员工号计算员工新的工资。请将下面SQL语句的空缺部分补充完整。CREATE( g )Salary_TRG AFTER( h )ON EMPREFERENCING new row AS nrowFOR EACH ROWBEGINUPDATE WORKS SET ( i ) WHERE( j );END

【问题3】请将下面SQL语句的空缺部分补充完整。(1)查询员工最多的公司编号和公司名称。SELECT COMPANY.Cno, CnameFROM COMPANY, WORKSWHERE COMPANY.Cno=WORKS.CnoGROUP BY( k )HAVING( l ) (SELECT COUNT( * )FROM WORKS GROUP BY Cno) ;(2) 查询所有不在"中国银行北京分行"工作的员工工号和姓名。SELECT Eno, EnameFROM EMPWHERE Eno( m ) ( SELECT EnoFROM( n )WHERE( o )AND Cname='中国银行北京分行' )。

正确答案及解析

正确答案
解析

【问题1】由题目说明可知,Eno和Cno两个属性组合是WORKS关系表的主键,所以在PRIMARYKEY后填的应该是(Eno,Cno)组合;Eno和Cno分别作为外键引用到EMP和COMPANY关系表的主键,因此需要用REFERENCES对这两个属性进行外键约束;由"工资不能低于1500元"的要求,可知需要限制账户余额属性值的范围,通过CHECK约束来实现。从上述分析可知,完整的SQL语句如下:

中级数据库系统工程师,章节练习,基础复习,SQL语言

【问题2】(1) 创建视图需要通过CREATEVIEW语句来实现,由题目可知视图的属性有(Eno,Ename,Cno,Cname,Salary);通过公共属性列Eno和Cno对使用的三个基本表进行连接;由于只创建女员工的试图,所以还要在WHERE后加入"Sex='女'"的条件。从上分析可见,完整的SQL语句如下:

中级数据库系统工程师,章节练习,基础复习,SQL语言

(2) 创建触发器可通过CREATETRIGGER语句实现,要求考生掌握触发器的基本语法结构。按照问题要求,在工资关系中更新职工职称级别时触发器应自动执行,故需要创建基于UPDATE类型的触发器,其触发条件是更新职工职称级别;最后添加表连接条件。完整的触发器实现的方案如下:

中级数据库系统工程师,章节练习,基础复习,SQL语言

【问题3】SQL查询通过SELECT语句实现。

(1)根据问题要求,可通过子查询实现"查询员工最多的公司编号和公司名称"的查询;对COUNT函数计算的结果应通过HAVING条件语句进行约束;通过Cno和Cname的组合来进行分组查询。完整的SQL语句如下:

中级数据库系统工程师,章节练习,基础复习,SQL语言

(2) 根据问题要求,需要使用嵌套查询。先将WORKS和COMPANY表进行连接,查找出所有在"中国银行北京分行"工作的员工;然后在雇员表中使用"NOTIN"或者"<>ANY"查询不在前述结果里面的员工即可。完整的SQL语句如下:

中级数据库系统工程师,章节练习,基础复习,SQL语言

你可能感兴趣的试题

单选题

一台主机的IP地址为202.123.25.36,掩码为255.255.254.0。如果该主机需要在该网络进行直接广播,那么它应该使用的目的地址为( )

  • A.202.123.25.0
  • B.202.123.25.255
  • C.202.123.24.0
  • D.202.123.24.255
查看答案
单选题

在计算机系统的日常维护工作中,应当注意硬盘工作时不能__(2)__。另外,需要防范病毒,而__(3)__是不会被病毒感觉的。

  • A.电子邮件
  • B.硬盘
  • C.U盘
  • D.ROM
查看答案
单选题

有 4 个 IP 地址:201.117.15.254、201.117.17.01、201.117.24.5 和 201.117.29.3,如果子网掩码为 255.255.248.0,则这 4 个地址分别属于3个子网;其中属于同一个子网的是()

  • A.201.117.15.254 和 201.117.17.01
  • B.201.117.17.01 和 201.117.24.5
  • C.201.117.15.254 和 201.117.29.3
  • D.201.117.24.5 和 201.117.29.3
查看答案
单选题

在异步通信中,每个字符包含1位起始位、7位数据位、1位奇偶位和1位终止位,每秒钟传送200个字符,采用4相位调制,则码元速率为()。

  • A.50波特
  • B.500波特
  • C.550波特
  • D.1000波特
查看答案
单选题

在 Windows 中,运行( )命令得到下图所示结果。以下关于该结果的叙述中,错误的是( )。

Pinging 59.74.111.8 with 32 bytes of data:

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Reply from 59.74.111.8: bytes=32 time=3ms TTL=60

Reply from 59.74.111.8: bytes=32 time=5ms TTL=60

Ping statistics for 59.74.111.8:

Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),

Approximate round trip times in milli-seconds:

Minimum = 3ms, Maximum = 5ms, Average = 4ms

  • A.该命令使得本地主机向目标主机发送了 4 个数据包
  • B.本地主机成功收到了目标主机返回的 4 个数据包
  • C.本地主机与目标主机连接正常
  • D.该命令用于查看目标主机的 IP 地址
查看答案

相关题库更多 +