一、选择题
1. 下面哪个范式不是关系模型中的范式( C)
A、 第一范式
B、 第二范式
C、 范德蒙范式
D、 BCNF范式
2.SQL Server 2000不包含以下哪个版本( B)
A、 SQL Server 2000 企业版(Enterprise Edition)
B、 SQL Server 2000 专业版(Professional Edition)标准版
C、 SQL Server 2000 个人版(Personal Edition)
D、 SQL Server 2000 开发版(Developer Edition)
3.下面哪一项不属于T-SQL语言的组成部分( B)
A、数据定义语言(DDL)
B、数据查询语言(DFL)
C、数据操纵语言(DML)
D、数据控制语言(DCL)
4.下面哪个不是SQL Server数据库的系统数据类型(C )
A、 int、smallint
B、 char、varchar
C、 String、char
D、 datetime、int
5.下面关于SQL Server数据库中变量的描述,不正确的是( C )
A、SQL Server中变量可分为全局变量和局部变量两大类。
B、全局变量由系统提供且预先声明,通过在名称前加两个”@”符号区别于局部变量。
C、不用SELECT语句给变量赋值
D、在批处理或存储过程中使用DECLARE语句声明局部变量
6.下面程序的运行结果为(B )
DECLARE @var1 int, @var2 int
SET @var1 = 200
SET @var2 = 100
IF @var1 < @var2
PRINT '@var1的值小于@var2的值'
ELSE
BEGIN
PRINT '执行SQL语句块'
PRINT '@var1的值大于@var2的值'
END
GO
A、 @var1的值大于@var2的值
B、 执行SQL语句块
@var1的值大于@var2的值
C、 @var1的值小于@var2的值
D、 @var1的值小于@var2的值
执行SQL语句块
@var1的值大于@var2的值
7.下面哪个不是SQL Server数据库中的聚合函数( C)
A、 COUNT
B、 SUM和AVG
C、 CONVERT
D、 MAX和MIN
8.下面哪个不是SQL Server2000数据库对象( B)
A、表、视图
B、队列、约束
C、索引、存储过程
D、触发器、约束
9.下面哪个不是SQL Server 2000中的系统数据库()
A、master数据库
B、tempdb数据库
C、PetStoreDB数据库
D、model数据库
10.关于下面创建数据库的脚本,描述不正确的是( C )
CREATE DATABASE OPCDB
ON
( NAME = 'OPCDB_Data',
FILENAME = 'D:/Microsoft SQL Server/MSSQL/Data/OPCDB.mdf',
SIZE = 3MB,
MAXSIZE = 50MB,
FILEGROWTH = 10%
)
LOG ON
( NAME = 'OPCDB_Log',
FILENAME = 'D:/Microsoft SQL Server/MSSQL/Data/OPCDB.ldf',
SIZE = 2MB,
MAXSIZE = 5MB,
FILEGROWTH = 1MB
)
GO
A、 数据库的名称为OPCDB
B、 数据库的数据文件的物理路径为:D:/Microsoft SQL Server/MSSQL/Data/OPCDB.mdf
C、 日志文件可有可无
D、 数据文件的初始大小为3MB
11.在SQL语言中删除数据表的命令为(C)
A、DELETE TABLE
B、CREATE TABLE
C、DROP TABLE
D、ALTER TABLE
12.下列哪个不是SQLServer数据库约束类型(B)
A、主关键字约束、默认约束
B、外关健字约束、条件约束
C、唯一性约束、默认约束
D、检查约束、外关健字约束
13.下表是login表的相关信息
userNamepassword
firstfirst
secondsecond
代码“select * from login where userName = ‘first’”的执行结果是( C )
A、first first B、second second
second second
C、first first D、first second
代码“select count(*) from login”的执行结果是( B )
A、1 B、2
C、3 D、4
14.关于子查询的描述不正确的是(C)
A、使用IN(或NOT IN)的子查询返回的查询结果是一列零值或更多值。子查询返回结果之后,外部查询可以使用这些结果。
B、子查询可由一个比较运算符引入。比较运算符可以是=、<>、>、<、>=、<=、!>、!<等。
C、使用EXISTS(或NOT EXISTS)关键字引入一个子查询时,就相当于进行一次存在测试。子查询产生查询结果集。
D、使用EXISTS(或NOT EXISTS)关键字引入一个子查询时,子查询实际上不产生任何数据;它只返回TRUE或FALSE值。
15.下面关于索引的描述不正确的是( D)
A、索引(Index)是一个单独的、物理的数据库结构。它是根据表中的一列或若干列,按照一定顺序建立的列值与记录行之间的对应关系表。
B、按索引的存储结构的不同可以将索引分为两类:簇索引(Clustered Index)和非簇索引(Nonclustered Index)。
C、根据索引键的组成,还可把索引分为三种类型:唯一索引、复合索引和覆盖索引。
D、一个表可以有多个簇索引和非簇索引
16.下面哪个不是操作游标的标准步骤( B)
A、声明游标、打开游标
B、修改游标属性
C、读取游标中的数据
D、关闭和释放游标
17.下面关于视图的描述不正确的是(C)
A、视图是一个虚表,即视图所对应的数据不进行实际存储
B、修改和删除数据时如涉及到视图的多个基本表时,将会影响多个基本表
C、视图一经定义以后,就可以像基本表一样被查询、修改、删除和更新
D、视图的创建可使用命令CREATE VIEW,查看视图可使用系统存储过程Sp_helptext
18.下面关于存储过程的描述不正确的是(C )
A、用户自定义存储过程是由用户创建并能完成某一特定功能的存储过程。
B、存储过程可以有相关输入输出参数
C、存储过程必须包含输入输出参数
D、使用ALTER PROCEDURE语句修改一个存储过程,使用DROP PROCEDURE语句删除一个存储过程。
19. 下面关于触发器的描述不正确的是(C)
A、每张表(视图)只有3种触发器动作,而且一个触发器只能作用在一个表(视图)上。
B、触发器中有两个逻辑表,其中一个逻辑表命名为deleted(删除表),另一个命名为inserted(插入表)
C、当试图从触发器所定义的目标表中删除数据的时候,DELETE触发器被激发,同时,需要删除的数据被放置到inserted表中。
D、当试图插入数据到触发器所定义的目标表中时,INSERT触发器被激发,同时,需要插入到目标表中的数据被放置到inserted表中。
20.下面哪个不是数据库中事务的基本特征(D)
A、原子性
B、一致性
C、隔离性
D、安全性
二、填空题
1. ROLLBACK TRANSACTION的意思是回滚事务。
2. 三种不同类型的触发器分别为: inse触发器,delete触发器,update触发器。
3. ALTER TABLE命令用于修改数据表结构。
4. 用ORDER BY来进行查询时,其排序方式有ASC和DESC。
5. 数据管理的发展经历了手工阶段、文件系统、和数据库三个阶段。
6. 数据操纵语言(DML)包括SELECT、INSERT、UPDATE、DELETE四种类型。
三、判断题
1.SQL Server登录所使用的身份验证模式包括Windows验证模式和混合模式(Widndows身份验证和SQL Server身份验证)。 ( T )
2.使用UNION 组合两个查询的结果集的两个基本规则是:所有查询中的列数和列的顺序必须相同; 数据类型必须兼容。 ( T )
3. 回滚事务的命令为COMMIT TRANSACTION ( F )
4.备份是数据库定期地将整个数据库复制到磁带或另一个磁盘上保存起来的过程。 ( T )
5.数据转换服务(DTS)提供了在SQL Server与OLE DB、ODBC数据源或文本文件格式之间导入、导出和转换数据的功能。 ( T )
四、程序设计题
1、下表为数据表Register的相关信息,请写出创建该表的语句(PK代表主键)
字段名数据类型长度允许空
Id(PK)int8
Usernamevarchar20√
passwordvarchar20√
CREATE TABLE Register (2分)
(
Id int(8) not null,
Username varchar(20) null,
Password varchar(20) null
)
为字段id添加主键约束的命令为:
Alter table Register
Addconstraint pk_Register
Primary key(Id)
2、根据下表完成任务:(PK代表主键)
stuId(PK)sNameclassIdprofessional
IIIT001zhangsanIIIT20501software
IIIT002lisiIIIT20501software
IIIT003wangwuIIIT20501software
IIIT004zhaoliuIIIT20501software
表StudentInfo
(1)请找出stuId为IIIT003的学生信息:
Select *
From StudentInfo
Where stuId=’IIIT003’
(2)在字段stuId上创建索引:
Create index index_stuId
on StudentInfo(stuId)
WITH PAD_INDEX,DROP_EXISTING
ON [PRIMARY]
(3)创建视图查询学生的stuId和sName:
CREATE VIEW VW_stuId_sName
SELECT stuID,sName
From StudentInfo
(4)创建存储过程,通过输入stuId对应的学生id号码,输出sName(学生姓名)
创建存储过程
CREATE PROCEDURE pro_inid_out_sName
@stuId varchar(10),sName vachar(10) OUTPUT
As
Begin
Select @sName=sName
from StudentInfo
where stuId=@stuId
end
调用存储过程
declare @sName varchar(10)
execute pro_inid_out_sName ‘IIIT001’,@sName output
1.你是一数据公司的数据库开发者,你创建了一个用来存储15个不同高校运动会统计表的数据库。这些信息将被用在50家公司的网页设置上。每个公司的WEB设置以不同的格式来安排和显示这些统计表。你需要组装这些数据传送到这些公司去,你应该做什么?
A.用包含FOR XML子句的SELECT语句来提取数据。
B.使用sp_makewebtask系统存储过程,用select 语句从数据的返回中产生HTML。
C.创建数据转换服务包从数据库中输出数据并且将数据放在带有分隔标记的文本文件中。
D.使用SQL_DMO来创建一个应用程序把数据从数据库中取出并转换它.
答案: A.
2.你是一邮件订购公司的数据库开发者,该公司有两台名为CORP1和CORP2 的SQLServer2000的计算机。CORP1是台在线处理事务的服务器。CORP2存放销售的历史数据。CORP2已经添加了一个连接服务器到CORP1上。销售部经理请你创建一个是谁购买软盘的用户清单。这清单每个月生成一次,软盘在数据库中用ID21来表示。你必须从一张名为SalesHistory的表中检索数据。该表放在本地的CORP2档案数据库中。你需要在CORP1上执行这个请求。你该选择哪个选项?
A. EXEC sp_addlinkedserver ‘CORP2’, ‘SQL Server’
GO
SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
B. SELECT CustomerID FROM OPENROWSET (‘SQLOLEDB’, ‘CORP2’; ‘p*word’, ‘SELECT
CustomerID FROM Archive.dbo.SalesHistory WHERE CategoryID = 21’)
C. SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
D. EXEC sp_addserver ‘CORP2’
GO
SELECT CustomerID FROM CORP2.Archive.dbo.SalesHistory
WHERE CategoryID = 21
答案: C.
3.你是一名Trey Research的数据库开发者,你创建两个事务来帮助将雇员的数据信息写入公司的数据库中。一个事物将雇员的姓名和地址插入数据库中,这个事务很重要,另外一个事务将雇员的人数统计插入到数据库中。这个事务不那么重要。在数据库使用的高峰期,在服务器有时遇到错误的期间管理员会通知。每次发生时,数据库服务器会随机地终止其中一个事务。你必须确定当服务器终止其中一个事务时,它不会终止比较重要的那个事务。你应该做什么?
A.为插入雇员姓名和地址信息的那个事务设置 DEADLOCK_PRIORITY to LOW 选项
B.为插入雇员人数信息的那个事务设置 DEADLOCK_PRIORITY to LOW 选项
C.为插入雇员姓名和地址信息的那个事务添加一个检查1205服务器错误的条件代码。如果这个错误被遇到,重新启动该事务。
D.在事务中添加一个ROWLOCK优化提示给SQL数据操作语句。
E.为插入雇员姓名和地址信息的那个事务设置隔离级别给 SERIALIZABLE.
答案: B.
4.你是公司的SQL Server 2000在线事务处理数据库的开发者.很多表中有一千甚至更多行。所有的表都有一聚集索引。大量地访问表至少要有一个非聚集索引。在数据库服务器上数据文件将包含有2个RAID阵列。你想要排列这些表和索引以确保最佳的输入/输出性能。你在每个RAID阵列上创建一个文件组,你接下来应该做什么?
A.把经常连接在一起的表放在同一个文件组中。把大量访问的表和属于这些表的所有索引放在不同的文件组中。
B. 把经常连接在一起的表放在同一个文件组中。把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。
C. 把经常连接在一起的表放在不同的文件组中。把大量访问的表和属于这些表的非聚集索引放在不同的文件组中。
D. 把经常连接在一起的表放在不同的文件组中。把大量访问的表和属于这些表的非聚集索引放在同一个文件组中。
答案: C
5.你是你公司SQL Server 2000 数据库的开发者。你在数据库中更新一些为销售部门创建新的月底报表的存储过程。这存储过程包括从三个或更多的表中检索数据的复杂请求。在数据库中所有的表至少有一个索引。用户报告说有一个新的月底报表的运行比以前版本的报表的运行来的慢。你想要提高这些报表的性能,你应该做什么?
A.为每个存储过程创建一个包含数据定义语言的脚本。为索引调整向导使用这个脚本作为工作负荷记录文件
B.在SQL跟踪事件探查器捕获每一个存储的执行过程。为索引调整向导使用跟踪文件作为工作负荷记录文件
C.在使用存储过程的表中更新统计表
D.在查询分析器中执行每一个存储过程,并使用Show Execution Plan选项
E.在查询分析器中执行每一个存储过程,并使用Show Server Trace选项
答案: E
6.你是一个wide world importers公司的数据库开发人员,你创建了用来存储订单的数据库。订单将被输入客户/服务器应用程序中。每次有一个新订单被输入,并被赋予一个唯一的编号,按升序排列。每天平均有10000个订单被输入。你创建一个名为Orders的新表并在其中添加一个OrderNumber字段。接下来你应该做什么?
A. 为该字段设置全局唯一标识符的数据类型。
B. 为该字段设置int数据类型,并为该字段设置一致性的属性。
C. 为该字段设置int数据类型。在表中创建一个用户自定义函数用于查看订单编号的最大值。
D. 为该字段设置int数据类型。创建一个名为NextKey的表,并在其中添加NextOrder字段。将该字段的数据类型设置为int。在NextKey表中创建一个存储过程用于检索更新value held。
答案: B.
网络数据库试题 v2.0
姓名:__________ 学号:_________ 班级:____________ 分数:____________
一.单项选择题(每题2分,共35题)
1. 描述事物的符号记录称为________。
A. 信息
B. 数据
C. 记录
D. 记录集合
2. _____是长期存储在计算机内的有组织,可共享的数据集合
A. 数据库管理系统
B. 数据库系统
C. 数据库
D. 文件组织
3. _____是位于用户与操作系统之间的一层数据管理软件.
A. 数据库管理系统
B. 数据库系统
C. 数据库
D. 数据库应用系统
4. 数据库系统不仅包括数据库本身,还要包括相应的硬件,软件和_____.
A. 数据库管理系统
B. 数据库应用系统
C. 相关的计算机系统
D. 各类相关人员
5. 在人工管理阶段,数据是_____。
A. 有结构的
B. 无结构的
C. 整体无结构,记录有结构
D. 整体结构化的
6. 在文件系统阶段,数据_____。
A. 无独立性
B. 独立性差
C. 具有物理独立性
D. 具有逻辑独立性
7. 关系模型中,实体与实体间的联系都是通过_____。
A. 索引表示
B. 指针链表示
C. 关系表示
D. 文件表示
8. 数据的正确、有效和相容称之为数据的_____。
A. 安全性
B. 一致性
C. 独立性
D. 完整性
9. 下列哪个语句实现将计算机系学生各科成绩置为0_____。
A. update sc
set grade=0
where sc.sno=student.sno and sdept=’cs’
B. update sc
set grade=0
where sno in (select sno from student where sdept=’cs’)
C. update grade=0
from sc
where sno in (select sno from student where sdept=’cs’)
D. update grade=0 from sc where sdept=’cs’
10. _____属于信息世界的模型,实际上是现实世界到机器世界的一个中间层次。
A. 数据模型
B. 概念数据模型
C. E-R图
D. 关系模型
11. 在对层次数据库进行操作时,如果删除双亲结点,则相应的子女结点值也被同时删除。这是由层次模型的_____决定的。
A. 数据结构
B. 数据操作
C. 完整性约束
D. 缺陷
12. 客户/服务器结构与其它数据库体系结构的根本区别在于_____。
A. 数据共享
B. 数据分布
C. 网络开销小
D. DBMS和应用分开
13. 数据库系统软件包括_____和_____。
(1)数据库 (2)DBMS (3) OS,DBMS和高级语言 (4)DBMS和OS (5)数据库应用系统和开发工具
A. (1)和(2)
B. (2)和(5)
C. (3)
D. (4)
14. 在数据库系统中,我们把满足以下两个条件的基本层次联系的集合称为层次模型:[1]_____,[2]_____。
(1)有一个结点无双亲 (2)其它结点无双亲 (3)有且仅有一个结点无双亲 (4)其它结点有且仅有一个双亲 (5)允许其它结点有多个双亲
A. (1)和(2)
B. (3)和(4)
C. (1)和(5)
D. (2)和(5)
15. 系统运行过程中,由于某种硬件故障使存储在外存上的数据部分损失或全部损失,称为_____,这类故障比其它故障的可能性_____。
(1)事务故障 (2)系统故障 (3)介质故障 (4)大,但破坏性小 (5)小,破坏性也小 (6)大,破坏性也大 (7)小,但破坏性大
A. (3),(7)
B. (1),(4)
C. (3),(5)
D. (2),(6)
16. 当数据库的_____改变了,由数据库管理员对_____映象作相应改变,可以使_____保持不变,从而保证了数据的物理独立性 (1)模式 (2) 存储结构 (3)外模式/模式 (4)用户模式 (5)模式/内模式
A. (3),(1),(4)
B. (1),(5),(3)
C. (2),(5),(1)
D. (1),(2),(4)
17. SQL语言最主要功能是________。
A. 数据定义功能
B. 数据管理功能
C. 数据查询
D. 数据控制
18. 在SQL语言中授权的操作是通过________语句实现的。
A. CREATE
B. REVOKE
C. GRANT
D. INSERT
19. 建立数据库三级模式的功能由SQL语言的________完成.
A. 数据定义功能
B. 数据操纵功能
C. 数据查询
D. 数据控制
20. 数据库中只存放视图的________。
A. 操作
B. 对应的数据
C. 定义
D. 限制
21. 视图的优点之一是________。
A. 提高数据的逻辑独立性
B. 提高查询效率
C. 操作灵活
D. 节省存储空间
22. 当修改基表数据时,视图________。
A. 需要重建
B. 可以看到修改结果
C. 无法看到修改结果
D. 不许修改带视图的基表
23. 若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为________。
A. 主码
B. 候选码
C. 主属性
D. 外码
24. ________由数据结构、关系操作集合和完整性约束三部分组成。
A. 关系模型
B. 关系
C. 关系模式
D. 关系数据库
25. SQL语言属于________。
A. 关系代数语言
B. 元组关系演算语言
C. 域关系演算语言库
D. 具有关系代数和关系演算双重特点的语言
26. 下列语句哪一句有错误________。
A. select *
B. from sc
C. where grade=null
D. order by sno
27. 实体完整性要求主属性不能取空值,这一点可以通过________来保证。
A. 定义外码
B. 定义主码
C. 用户定义的完整性
D. 由关系系统自动
28. 在一个关系中,不能有相同的________。
A. 值域
B. 属性
C. 值
D. 域
29. 集合R与S的差表示为________。
A. {t|t∈R∨t∈S}
B. {t|t∈R∧┐t∈S}
C. {t|t∈R∧t∈S}
D. {trts|tr∈R ∧ ts∈S}
30. 所谓空值就是________的值。
A. 数值0
B. 空的字符串
C. 未知的值
D. 任何值
31. 集合R与S的交可以用关系代数的5种基本运算表示为________。
A. R-(R-S)
B. σF(R×S)
C. 空
D. 0
32. SQL 语言的GRANT,REVOKE语句主要用来维护数据库的________。
A. 一致性
B. 完整性
C. 可靠性
D. 安全性
33. SQL 语言中视图(view)对应数据库系统三级模式结构中的________。
A. 内模式
B. 模式
C. 外模式
D. 都不对
34. 下述哪一条是并发控制的主要方法________。
A. 授权
B. 封锁
C. 日志
D. 索引
35. 恢复的主要技术是________。
A. 事务
B. 数据大量冗余
C. 日志文件和数据转储
D. 数据查询
二、多项选择题(每题3分,共10题)
1. 事务的ACID特性是指:()
A安全性
B隔离性
C持久性
D一致性
E独立性
F原子性
G完整性
2. SQL语言的特点():
A面向集合操作
B集数据定义、数据查询和数据控制功能于一体
C统一语法结构的两种使用方式
D高度非过程化
E导航式语言
3. Microsoft? SQL Server?事务运行模式有():
A、 自动提交事务
B、 显式事务
C、 提交事务
D、 回滚事务
E、 成功事务
F、 不成功事务
G、 隐性事务
4. 数据仓库的基本特征:()
A适用于OLTP
B数据仓库是集成的
C数据仓库是不可更新的
D数据仓库是随时间变化的
E面向主题
5. 登记日志文件的原则()
A登记的次序严格按发生事务执行的时间次序
B必须先写数据库,后写日志文件
C必须先写日志文件,后写数据库
D登记的次序严格按事务开始的时间次序
6. Sql Server 2000企业版可安装运行在以下操作系统上:()
A .Microsoft Windows NT Server 4.0B .Microsoft Windows NT Server 4.0 企业版
C .Windows 2000 Server
D .Windows 2000 Data Center
E .Windows 2000 Advanced Server
F.windows 2000 Professional
7. OODB语言一般应具备下列功能:
A类的定义与操纵
B操作/方法的定义
C对象的操纵
D属性的定义
E 消息的定义
8. 数据库中的故障类型有:()
A事务内部故障
B事务外部故障
C系统故障
D介质故障
E DBMS故障
F 计算机病毒
9. Microsoft? SQL Server? 2000 中的数据库的恢复模型有:
A. 简单恢复
B. 完全恢复
C. 大容量日志记录恢复
D. 差异恢复
E. 增量恢复
10. sql server2000备份系统数据库,主要指备份()
A、 master数据库
B、 msdb数据库
C、 model数据库
D、 tempdb数据库
E、 northwind数据库
F、 pubs数据库
一.单项选择题:
1. B
2. C
3. A
4. D
5. B
6. B
7. C
8. D
9. B
10. B
11. C
12. D
13. B
14. B
15. A
16. C
17. C
18. C
19. A
20. C
21. A
22. B
23. B
24. A
25. D
26. C
27. B
28. B
29. B
30. C
31. A
32. D
33. C
34. B
35. C
二、多选
1. bcdf
2. abcd
3. abg
4. bcde
5. ac
6. abcde
7. abc
8. acdf
9. abc
10. abc
1. 存储过程和函数的区别
存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表。
2. 事务是什么?
事务是作为一个逻辑单元执行的一系列操作,一个逻辑工作单元必须有四个属性,称为 ACID(原子性、一致性、隔离性和持久性)属性,只有这样才能成为一个事务:
原子性
事务必须是原子工作单元;对于其数据修改,要么全都执行,要么全都不执行。
一致性
事务在完成时,必须使所有的数据都保持一致状态。在相关数据库中,所有规则都必须应用于事务的修改,以保持所有数据的完整性。事务结束时,所有的内部数据结构(如 B 树索引或双向链表)都必须是正确的。
隔离性
由并发事务所作的修改必须与任何其它并发事务所作的修改隔离。事务查看数据时数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。这称为可串行性,因为它能够重新装载起始数据,并且重播一系列事务,以使数据结束时的状态与原始事务执行的状态相同。
持久性
事务完成之后,它对于系统的影响是永久性的。该修改即使出现系统故障也将一直保持。
3. 游标的作用?如何知道游标已经到了最后?
游标用于定位结果集的行,通过判断全局变量@@FETCH_STATUS可以判断是否到了最后,通常此变量不等于0表示出错或到了最后。
4. 触发器分为事前触发和事后触发,这两种触发有和区别。语句级触发和行级触发有何区别。
事前触发器运行于触发事件发生之前,而事后触发器运行于触发事件发生之后。通常事前触发器可以获取事件之前和新的字段值。
语句级触发器可以在语句执行前或后执行,而行级触发在触发器所影响的每一行触发一次。
简答题(每小题 5 分,共 20 分)
1 、数据库系统中的常见故障有那些?
2 、简述数据模型的三个组成部分。
3 、所有的视图是否都可以更新?为什么?
4 、什么样的并发调度是正确的调度?
简答题(每题 5 分,共 20 分)
1 、答案要点:数据库系统中的常见故障有:事务内部的故障(事务故障)( 1 分)、系统故障( 1 分)、介质故障( 2 分)、计算机病毒( 1 分)。
2 、答案要点:数据模型通常由数据结构( 1 分)、数据操作( 2 分)、完整性约束( 2 分)三部分组成。
3 、答案要点:不是所有的视图都是可更新的( 2 分);因为有些视图的更新不能唯一地有意义地转换成对相应基本表地更新( 3 分)。
4 、答案要点:多个事务的并发执行是正确的,当且仅当其结果与按某一次序串行执行它们时的结果相同( 5 分)。
为管理岗位业务培训信息,建立3个表:
S (S#,SN,SD,SA) S#,SN,SD,SA 分别代表学号、学员姓名、所属单位、学员年龄
C (C#,CN ) C#,CN 分别代表课程编号、课程名称
SC ( S#,C#,G ) S#,C#,G 分别代表学号、所选修的课程编号、学习成绩
1. 使用标准SQL嵌套语句查询选修课程名称为’税收基础’的学员学号和姓名
–实现代码:
Select SN,SD FROM S Where [S#] IN( Select [S#] FROM C,SC Where C.[C#]=SC.[C#] AND CN=N'税收基础')
2. 使用标准SQL嵌套语句查询选修课程编号为’C2’的学员姓名和所属单位
–实现代码:
Select S.SN,S.SD FROM S,SC Where S.[S#]=SC.[S#] AND SC.[C#]='C2'
3. 使用标准SQL嵌套语句查询不选修课程编号为’C5’的学员姓名和所属单位
–实现代码:
Select SN,SD FROM S Where [S#] NOT IN( Select [S#] FROM SC Where [C#]='C5')
4. 使用标准SQL嵌套语句查询选修全部课程的学员姓名和所属单位
–实现代码:
Select SN,SD FROM S Where [S#] IN( Select [S#] FROM SC RIGHT JOIN C ON SC.[C#]=C.[C#] GROUP BY [S#] HAVING COUNT(*)=COUNT([S#]))
5. 查询选修了课程的学员人数
–实现代码:
Select 学员人数=COUNT(DISTINCT [S#]) FROM SC
6. 查询选修课程超过5门的学员学号和所属单位
–实现代码:
Select SN,SD FROM S Where [S#] IN( Select [S#] FROM SC GROUP BY [S#] HAVING COUNT(DISTINCT [C#])>5)
题目2:
问题描述:
S (SNO,SNAME) 学生关系。SNO 为学号,SNAME 为姓名
C (CNO,CNAME,CTEACHER) 课程关系。CNO 为课程号,CNAME 为课程名,CTEACHER 为任课教师
SC(SNO,CNO,SCGRADE) 选课关系。SCGRADE 为成绩
1. 找出没有选修过“李明”老师讲授课程的所有学生姓名
–实现代码:
Select SNAME FROM S Where NOT EXISTS( Select * FROM SC,C Where SC.CNO=C.CNO AND CNAME='李明' AND SC.SNO=S.SNO)
2. 列出有二门以上(含两门)不及格课程的学生姓名及其平均成绩
–实现代码:
Select S.SNO,S.SNAME,AVG_SCGRADE=AVG(SC.SCGRADE) FROM S,SC,( Select SNO FROM SC Where SCGRADE<60 GROUP BY SNO HAVING COUNT(DISTINCT CNO)>=2 )A Where S.SNO=A.SNO AND SC.SNO=A.SNO GROUP BY S.SNO,S.SNAME
3. 列出既学过“1”号课程,又学过“2”号课程的所有学生姓名
–实现代码:
Select S.SNO,S.SNAME FROM S,( Select SC.SNO FROM SC,C Where SC.CNO=C.CNO AND C.CNAME IN('1','2') GROUP BY SNO HAVING COUNT(DISTINCT CNO)=2 )SC Where S.SNO=SC.SNO
4. 列出“1”号课成绩比“2”号同学该门课成绩高的所有学生的学号
–实现代码:
Select S.SNO,S.SNAME FROM S,( Select SC1.SNO FROM SC SC1,C C1,SC SC2,C C2 Where SC1.CNO=C1.CNO AND C1.NAME='1' AND SC2.CNO=C2.CNO AND C2.NAME='2' AND SC1.SCGRADE>SC2.SCGRADE )SC Where S.SNO=SC.SNO
5. 列出“1”号课成绩比“2”号课成绩高的所有学生的学号及其“1”号课和“2”号课的成绩
–实现代码:
Select S.SNO,S.SNAME,SC.[1号课成绩],SC.[2号课成绩] FROM S,( Select SC1.SNO,[1号课成绩]=SC1.SCGRADE,[2号课成绩]=SC2.SCGRADE FROM SC SC1,C C1,SC SC2,C C2 Where SC1.CNO=C1.CNO AND C1.NAME='1' AND SC2.CNO=C2.CNO AND C2.NAME='2' AND SC1.SCGRADE>SC2.SCGRADE )SC Where S.SNO=SC.SNO