用看的、听的学真题

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)
暂无
广告位