3.
试题二(共15分)阅读下列说明,回答问题1至问题4,将解答填入答题纸的对应栏内。【说明】某论坛的部分关系模式如下:用户(用户编号,帐号,密码,积分,级别)栏目(栏目编号,父栏目编号,名称,版主,描述)主题(主题编号,标题,类型,点击率,内容,发布时间,栏目编号,用户编号,附件)回复主题(回复主题编号,标题,主题编号,内容,发布时间,用户编号,附件)其中:(1)用户编号唯一标识一个用户。用户的积分根据其发布的主题信息按积分规则计算。级别的值来自集合{‘高级用户’,‘普通用户’,‘初级用户’},当用户开始注册时,积分为100,级别为初级用户;当用户积分到达1000时,级别为普通用户;当用户积分到达5000时,级别为高级用户。(2)栏目编号唯一标识一个栏目。栏目分两级,包括父栏目和子栏目。每个栏目必须有且仅有一个版主,版主是一个用户。(3)主题编号唯一标识一个主题。类型的值来自集合{‘精华’,‘置顶’,‘普通’}。(4)回复主题编号唯一识别一个回复主题。一个回复主题对应一个主题,而一个主题可以有多个回复主题。【问题1】(3分)请将下列SQL语句的空缺部分补充完整。(1)假设已经创建好用户关系,现在想增加一个属性“个性签名”,类型为VARCHAR(60),请给出相关的SQL语句。_____(a)_____;(2)假设已经创建好用户关系,下面是创建栏目关系的SQL语句,请将空缺部分补充完整。CREATETABLE栏目(栏目编号VARCHAR(8)PRIMARYKEY,父栏目编号VARCHAR(8),名称VARCHAR(40),版主VARCHAR(8)NOTNULL,描述VARCHAR(100),_____(b)_____,_____(c)_____);【问题2】(5分)请将下列SQL语句的空缺部分补充完整。(1)查询标题或内容包含“SQL”的主题标题,按发布时间降序排序。SELECTDISTINCT标题FROM主题_____(d)__________(e)_____;(2)查找名称为“数据库技术”的栏目及其子栏目中的精华主题的标题和点击率。SELECT标题,点击率FROM主题WHERE类型=‘精华’AND栏目编号_____(f)_____(SELECT栏目编号FROM栏目WHERE名称=‘数据库技术’_____(g)_____SELECT栏目编号FROM栏目WHERE_____(h)_____(SELECT栏目编号FROM栏目WHERE名称=‘数据库技术’));【问题3】(4分)假设所有关系模式已创建,回复主题关系模式的“主题编号”是外键,参照主题关系模式的“主题编号”。现在要删除编号为“T005”的主题及其相关的回复主题,下面是对应的删除语句,这些语句组成一个事务。DELETE主题WHERE主题编号=‘T005’;DELETE回复主题WHERE主题编号=‘T005’;(1)请问这些删除语句能否完成功能?若不能,请说明为什么?(100字以内)_____(i)_____(2)假设现在希望仅通过“DELETE主题WHERE主题编号=‘T005’;”这一条语句就能完成此删除功能,应如何实现?(100字以内)_____(j)_____【问题4】(3分)为了了解每个栏目用户关注的主题,对原创主题创建视图主题_view,属性包括主题编号、标题、用户帐号、栏目名称、回复数、点击率和发布时间。CREATEVIEW主题_view(主题编号,标题,用户帐号,栏目名称,回复数,点击率,发布时间)ASSELECT主题.主题编号,标题,帐号,名称,回复数,点击率,发布时间FROM主题,用户,栏目,(_____(k)_____FROM回复主题_____(l)_____)ASAWHERE主题.用户编号=用户.用户编号AND主题.栏目编号=栏目.栏目编号AND_____(m)_____;[15分]