《SQL数据库》大作业
一、单项选择题(在每小题的四个备选答案中,有且仅有一个正确答案,请将正确答案的代号写在题干后的括号内。答案选错或未选者,该题不得分。每小题2分,共20分)
1、一个仓库可以存放多种产品,一种产品只能存放于一个仓库中。仓库与产品之间的联系类型是(C )。 A、一对一的联系 B、多对一的联系 C、一对多的联系 D、多对多的联系
2、在职工表中,要查询部门10的所有职工信息,这种关系操作是(A )。?
A、选择操作 ?B、投影操作 ?C、连接操作 ?D、并操作
3、在E-R模型转换成关系模型的过程中,下列叙述不正确的是(B )。 A.每个实体类型转换成一个关系模式 B.每个M∶N联系类型转换一个关系模式 C.每个联系类型转换成一个关系模式
D.在处理1∶1和1∶N联系类型时,不生成新的关系模式。
4、在SQL Server数据库文件中,日志文件的后缀名是(A )。 A、ldf B、log C、mdf D、ndf
5、在SQL语句中的授权语句中,如果带有下面的(D )子句,则被授权的用户可以将自己所获得的权限再授权给其他用户。 A、WITH CREATE OPTION B、WITH ADMIN OPTION C、WITH CHECK OPTION D、WITH GRANT OPTION
6、如果表中一列未指定缺省值时,为该表增加一条记录,但没有指定该列值,那么插入到数据库中的值是(C )。 A、0 B、空格 C、NULL
D、任意符合要求的值
- 1 -
7、当向某个表插入一条记录时,如果该记录在某一个唯一索引列上的值为空,并且在表中该索引列上不存在空值的记录,那么将发生的情况是(A )。
A、出错,操作失败 B、操作成功
C、操作成功,但要给出警告信息
D、将新记录的主键值更改为一个没有重复的值后插入,操作成功
8、与模式串:‘_[^a-d]%’匹配的字符串是(A )。 A、‘abcd’ B、‘aaa’ C、‘ccc’ D、‘eee’
9、在一张数据量较大的表上建立了索引,那么下面正确的说法是(C )。 A、索引会加快删除数据的速度 B、索引会加快修改数据的速度 C、索引会加快查询数据的速度 D、索引会加快插入数据的速度
10、把SQL Server数据库中数据导出的含义是指(C )。 ?A、SQL Server数据进行备份,便于故障恢复 ?B、外部数据源中数据载入数据库
?C、把数据库中数据存储格式转换成另外一种数据存储格式? D、导出后的数据格式必须和数据库中数据格式相同
二、多项选择题(在每小题的备选答案中,有一个或多个正确的答案,请将正确答案的代号写在题干后的括号内。答案选错或多选、漏选者,该题不得分。每小题2分,共10分) 1、数据库系统由(ABCD )组成。 A、数据库管理系统 B、数据库 C、应用系统 D、数据库用户 E、操作系统文件
2、数据库系统中,数据模型的三个要素是( ABC)。 A、数据结构 B、数据操作 C、约束条件 D、物理存储 E、数据分布
- 2 -
3、下列命令中属于DDL的是(AE )。 A、CREATE TABLE B、SELECT C、DELETE D、INSERT E、ALTER TABLE
4、SQL Server支持的角色类型有(BD )。 A、固定服务器角色 B、固定数据库角色 C、用户自定义角色 D、临时数据库角色
5、在下面软件系统中不属于DBMS的是(ABE )。 A、Word B、Excel C、SQL Server D、Oracle E、Linux
三、是非题(判断下面的说法是否正确,如果正确,就在题干后的括号内写“T”,否则写“F”。每小题1分,共10分) 1、可以在Microsoft Windows 2000 Professional上安装SQL Server 2000 企业版。 ( F )
2、SQL Server登录所使用的身份验证模式包括Windows验证模式和混合模式(Windows身份验证和SQL Server身份验证)。( T )
3、如果master数据库被损坏了,SQL Server照常可以运行。 ( F )
4、在SQL Server中,DELETE语句只是清理表中全部数据,DROP语句不仅删除全部表中数据,并且删除表的定义信息。( T )
5、一个数据库文件不能存在于两个或两个以上的文件组里,日志文件不属于任何文件组。( T )
6、认证模式是在安装SQL Server过程中选择的。系统安装之后,可以重新修改SQL Server系统的认证模式。( F )
7、在创建表时,不能指定将表放在某个文件上,只能指定将表放在某个文件组上。如果希望将某个表放在特定的文件上,那么必须通过创建文件组来实现。( T )
8、当用户定义的数据类型正在被某个表的定义引用时,这些数据类型不能被删除。( T )
9、视图本身没有数据,因为视图是一个虚拟的表。( T )
- 3 -
10、创建触发器的时候可以不是表的所有者或数据库的所有者。( F )
四、简答题(每小题4分,共20分) 1、什么是表的实体完整性?
答:实体完整性指表中行的完整性。要求表中的所有行都有唯一的标识符,称为主关键字。主关键字是否可以修改,或整个列是否可以被删除,取决于主关键字与其他表之间要求的完整性。
2、在SQL Server中,登录账号和用户账号有什么不同?
答:登录账户用来登录到服务器,但是要访问某个数据库,还需要有这个数据库的用户帐户,这是不同级别的安全机制了
3、主键约束与UNIQUE约束有哪些区别?
答:主键值是具有唯一性的,因此主键列不能再实施唯一性约束。与主键约束不同的是一个表可以定义多个唯一性约束,但是只能定义一个主键约束;另外唯一性约束指定的列可以设置为NULL,但是不允许有一行以上的值同时为空,而主键约束不能用于允许空值的列。
4、试说明数据库中事务的特征。
答:原子性、一致性、分离性、持久性 事务的原子性指的是,事务中包含的程序作为数据库的逻辑工作单位,它所做的对数据修改操作要么全部执行,要么完全不执行。这种特性称为原子性。
事务的一致性指的是在一个事务执行之前和执行之后数据库都必须处于一致性状态。这种特性称为事务的一致性。
分离性指并发的事务是相互隔离的。即一个事务内部的操作及正在操作的数据必须封锁起来,不被其它企图进行修改的事务看到。 持久性意味着当系统或介质发生故障时,确保已提交事务的更新不能丢失。即一旦一个事务提交,DBMS保证它对数据库中数据的改变应该是永久性的,耐得住任何系统故障。持久性通过数据库备份和恢复来保证。
5、SQL Server有那些备份方法?
答:Sql server 数据库备份有两种方式,一种是使用BackupDataBase将数据库文件备份,另一种方式就是直接拷贝数据库文件MDF和日志文件LDF的方式。
五、综合题(每小题4分,共40分)
给出如下的“学生-课程”数据库中的四个数据表:“学生”表Student、“课程”表Course、“所在系”表Dept和“成绩”表Grade,表定义说明如下所示。
学生 Student Sno 为主键 编号 1 2 3 4
列名称 学号(Sno) 姓名(Name) 性别(Gender) 年龄(Sage) 列类型 char char char int - 4 -
长度 10 20 2 约束条件 不为空 取值M或F 缺省值 5
编号 1 2 3 4
系号(Dno) char 10 外键 列名称 课程号(Cno) 课时(Time) 学分(Ccredit) 课程Course Cno为主键 列类型 长度 约束条件 缺省值 10 20 10 char 课程名(Subject) char Int int 所在系Dept Dno为主键 编号 1 2 3
成绩Grade (Sno, Cno) 为主键
编号 1 2 3 列名称 学号(Sno) 课程号(Cno) 成绩(Score) 列类型 char 长度 10 约束条件 外键 外键 缺省值 列名称 系号(Dno) 系名(Dname) 电话(Tele) 列类型 char char char 长度 10 20 20 约束条件 缺省值 char 10 numeric
使用SQL语言完成下列操作:
1、建立一个“学生”表Student,它由学号Sno、姓名Name、性别Gender、年龄Sage、 系号Dno五个属性组成,其中学号属性不能为空,并且其值是唯一的。
答:
CREATE TABLE Student (
Sno CHAR(10) PRIMARY KEY, Name CHAR(20) NOT NULL, Gender CHAR(2), Sage INT, Dno CHAR(10) );
2、查询Student表中的所有信息。 答:select * from Student
3、查询年龄在20-21岁之间的学生的学号、姓名、年龄。
答:select Sno, Name, Sage from Student where Sage between 20 and 21
- 5 -
4、查询选修了C02课程的学生的学号、姓名。
答:select a.Sno, a.Name from Student a , Grade b where a. Sno = b. Sno and b. Cno ='C02'
5、查询管理学院学生的学号、姓名。
答:select a.Sno, a.Name from Student a , Dept b where a. Dno = b. Dno and b. Dname ='管理学院'
6、查询每个学生的平均成绩并按学号分别输出。
答:SELECT Grade.sno,Student.name,AVG(score) as AvgScore FROM Grade,Student where Grade.sno=Student.sno GROUP BY Grade.sno,Student.Name
7、在成绩表中插入一个记录,其中学号为02,课程号为C01,成绩为87。 答:Insert into Grade(Sno,Cno,Score) values('02','C01',87)
8、将课程表中C03课程的学时改为64,学分改为4。
答:update Course set Time ='64', Ccredit = 4 where Cno ='C03'
9、建立由学号、姓名、年龄构成的学生视图Stud。 答:
CREATE VIEW dbo.[ Stud] AS
SELECT Sno, Name, Sage FROM dbo.student
10、将学时小于等于16的课程从课程表中删除。
答:delete from Course where Cno in (select Cno from Course where Time < 16 and Cno not in (select Cno from Grade))
- 6 -