用看的、听的学真题

study by eyes and ears.

  1. 首页
  2. 数据库系统工程师
  3. 2008年05月数据库系统工程师考试下午真题【应用技术】
  4. 真题详解

2008年05月数据库系统工程师考试下午真题【应用技术】(第2题) 收藏

【2】  阅读下列说明,回答问题1至问题4,将解答填入对应栏内。
【说明】
  某论坛的部分关系模式如下:
  用户(用户编号,账号,密码,积分,级别)
  栏目(栏目编号,父栏目编号,名称,版主,描述)
  主题(主题编号,标题,类型,点击率,内容,发布时间,栏目编号,用户编号,附件)
  回复主题(回复主题编号,标题,主题编号,内容,发布时间,用户编号,附件)
  其中:
  (1)用户编号唯一标识一个用户。用户的积分根据其发布的主题信息按积分规则计算。级别的值来自集合{'高级用户','普通用户','初级用户'},当用户开始注册时,积分为100,级别为初级用户;当用户积分到达1000时,级别为普通用户;当用户积分到达 5000时,级别为高级用户。
  (2)栏目编号唯一标识一个栏目。栏目分两级,包括父栏目和子栏目。每个栏目必须有且仅有一个版主,版主是一个用户。
  (3)主题编号唯一标识一个主题。类型的值来自集合{'精华','置顶','普通'}。
  (4)回复主题编号唯一识别一个回复主题。一个回复主题对应一个主题,而一个主题可以有多个回复主题。

问题1 (3.0分)

  请将下列SQL语句的空缺部分补充完整。
  (1)假设已经创建好用户关系,现在想增加一个属性"个性签名",类型为VARCHAR(60),请给出相关的SQL语句。
  (a)
  (2)假设已经创建好用户关系,下面是创建栏目关系的SQL语句,请将空缺部分补充完整。
  CREATE TABLE 栏目(
  栏目编号 VARCHAR(8) PRIMARY KEY,
  父栏目编号 VARCHAR(8),
  名称 VARCHAR(40),
  版主 VARCHAR(8) NOT NULL,
  描述 VARCHAR(100),
  (b)
  (c)

问题2 (5.0分)

  请将下列SQL语句的空缺部分补充完整。
  (1)查询标题或内容包含"SQL"的主题标题,按发布时间降序排序。
  SELECT DISTINCT 标题
  FROM 主题
  (d)
  (e)  ;
  (2)查找名称为"数据库技术"的栏目及其子栏目中的精华主题的标题和点击率。
  SELECT 标题,点击率
  FROM 主题
  WHERE 类型='精华'
  AND 栏目编号 (f)(SELECT栏目编号
  FROM 栏目
  WHERE 名称='数据库技术'
  (g)
  SELECT 栏目编号
  FROM 栏目
  WHERE(h)(SELECT栏目编号
  FROM 栏目
  WHERE 名称='数据库技术'));

问题3 (4.0分)

  假设所有关系模式已创建,回复主题关系模式的"主题编号"是外键,参照主题关系模式的"主题编号"。现在要删除编号为"T005"的主题及其相关的回复主题,下面是对应的删除语句,这些语句组成一个事务。
  DELETE 主题 WHERE 主题编号='T005';
  DELETE 回复主题 WHERE 主题编号='T005';
  (1)请问这些删除语句能否完成功能?若不能,请说明为什么?  (100字以内)
  (i)
  (2)假设现在希望仅通过"DELETE 主题 WHERE 主题编号='T005';"这一条语句就能完成此删除功能,应如何实现?  (100字以内)
  (j)

问题4 (3.0分)

  为了解每个栏目用户关注的主题,对原创主题创建视图主题view,属性包括主题编号、标题、用户账号、栏目名称、回复数、点击率和发布时间。
  CREATE VIEW 主题 view(主题编号,标题,用户账号,栏目名称,回复数,点击率,发布时间)As
  SELECT 主题.主题编号,标题,账号,名称,回复数,点击率,发布时间
  FROM 主题,用户,栏目,((k)
  FROM 回复主题
  (l))As  A
  WHERE 主题.用户编号=用户.用户编号 AND 主题.栏目编号=栏目.栏目编号 AND
  (m)
广告位