《SQL数据库基础与应用》复习题

来源:互联网 发布:unity3d 编辑器扩展 编辑:程序博客网 时间:2024/05/22 02:10

SQL数据库基础与应用》复习题

一、单项选择题

1.       触发器可以创建在( A )中。

A.                            B. 过程

C. 数据库                       D. 函数

2.       删除表的语句是(A )

A.DROP                          B.ALTER

C.UPDATE                        D.DELETE

3.       以下触发器是当对[1]进行( D )操作时触发。

    Create  Trigger  abc  on  1

    For  insert , update , delete

    As  ……

A.只是修改                      B.只是插入

C.只是删除                      D.修改、插入、删除

4.       4. 规则对象在使用上与( A)约束类似。

A.CHECK                         B.PRIMARY KEY

C.FOREIGN KEY                   D.UNIQU

5.       主索引可确保字段中输入值的(C )性。

A.多样                          B.重复

C.唯一                          D.若干

6.       关于视图下列哪一个说法是错误的(B )

A.视图是一种虚拟表              B.视图中也保存有数据 

C.视图也可由视图派生出来        D.视图是保存在SELECT查询

 

7.       SQL Server安装程序创建4个系统数据库,下列哪个不是(C  )系统数据库。

A.master                        B.model

C.pub                           D.msdb

8.       SQL中,建立表用的命令是 ( B  )

A.CREATE SCHEMA                 B.CREATE TABLE

C.CREATE VIEW                   D.CREATE INDEX

9.       SQL语言中,删除表中数据的命令是( A )

A. DELETE                       B. DROP

C. CLEAR                        D. REMOVE

10.    SQL语言中,条件“年龄BETWEEN 20 AND 30”表示年龄在2030之间,且( A )

A.包括20岁和30              B.不包括20岁和30

C.包括20岁但不包括30        D.包括30岁但不包括20

11.    SQL Server 2000中表查询的命令是( B )。

A. USE         BSELECT        CUPDATE       DDROP

12.    用于求系统日期的函数是( B )。

AYEAR()    BGETDATE()   CCOUNT()     DSUM()

 

二、判断题

1.       .SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。@@@

2.       SQL Server 2000中,数据库对象包括____________、触发器、过程、列、索引、约束、规则、默认和用户自定义的数据类型等。表、视图

3.       _______是由一个或多个数据表(基本表)或视图导出的虚拟表。视图

触发器定义在一个表中,当在表中执行________________delete操作时被触发自动执行。insertupdate

4.       数据库管理系统的安全性通常包括两个方面,一是指数据________的安全性,二是指数据_______的安全性。访问、运行

5.       建立和使用________的目的是为了保证数据的完整性。约束

 

二、判断题

1.       创建唯一性索引的列可以有一些重复的值?N

2.       '李逵'>'李鬼' 比较运算的结果为真吗?Y

3.       SQL Server不允许字段名为汉字?N

4.       SQL Server 2000不具有数据的导入与导出功能。N

5.       创建存储过程必须在企业管理器中进行。n

6.       触发器主要是通过表操作事件进行触发而被执行的。Y

7.       主键字段允许为空。N

8.       SQL Server 自动为primary key约束的列建立一个索引。Y

9.       SQL Server的数据库可以转换成Access数据库。Y)

10.    删除表时,表中的触发器被同时删除。Y

 

 

四、简答题

 

1.       什么是事务?

 

事务(Transaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作)。在SQL Server 2000中,事务是由一条或者多条Transact-SQL语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这些语句的执行都被取消。SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。

 

2.       流程控制语句包括哪些语句,他们各自的作用是什么?

 

1. IF…ELSE是条件判断语句

2. BEGIN …END能将多个SQL语句组合成一个语句块,并视为一个单元处理

3. CASE多情况语句,将其中一个符合条件的结果表达式返回

4. WHILE…COUNTINUE…BREAK设置循环语句,COUNTINUE可以终止本次循环,开始下一次循环,BREAK中断循环,跳出循环外

5. GOTO可以使程序跳到指定的标有标识符的位置处继续执行

6. WAITFOR暂时停止执行SQL语句、语句块或者存储过程

7. RETURN无条件的终止一个查询、存储过程或批处理

 

 

3.       什么是数据库备份和恢复?

 

备份是指将当前的数据库系统、数据文件或日志文件复制到一个专门的备份服务器、活动磁盘或者其他能长期存储数据的介质上,作为副本。数据库备份记录了在进行备份这一操作时数据库中所有数据的状态。一旦数据库因意外而遭损坏,这些备份文件可用来恢复数据库。

 

4.       自定义函数与存储过程的区别是什么?

 

定义函数在被调用的位置上返回数据值,存储过程既不能在被调用的位置上返回数据,也不能被引用在语句当中。

 

五、设计题(30)

现有关系数据库如下:

数据库名:学生成绩数据库

学生表(班级编号,学号,姓名,性别,民族,身份证号,出生日期)

课程表(课程号,课程名)

成绩表(ID,学号,课号,分数)

SQL语言实现下列功能的sql语句代码:

1.         [学生成绩数据库][学生表]中查询年龄为20岁或22岁的学生。5分)

2.         [学生成绩数据库]中查询每个学生的班级编号、学号、姓名、平均分,结果按平均分降序排列,均分相同者按班级排列。5分)

3.         创建一个视图[教学成绩表视图]显示学生的学号、姓名、课程名、分数。(5分)

4.         把张晶的民族改为、出生日期改为“1980-12-24”

 

班级编号

学号

姓名

性别

民族

身份证号

出生日期

050201

050201001

王莉欣

   

53010219790625224

1979-06-25

050202

050202001

张晶

   

NULL

01020319801224121

NULL

 

1.         在学生成绩数据库的学生表中查询年龄为20岁或22岁的学生

use 教学成绩管理数据库

select 姓名, 性别, 年龄=datediff(year,出生日期,getdate())

from 学生表

where (datediff(year,出生日期,getdate())=20) or (datediff(year,出生日期,getdate())=22)

 

2.         在学生成绩数据库中查询每个学生的班级编号、学号、姓名、平均分,结果按平均分降序排列,均分相同者按班级排列

use 教学成绩管理数据库

select 班级编号,a.学号,a.姓名, avg(分数) 平均分

from 学生表 as a join成绩表 as b

on a.学号 = b.学号

group by 班级编号, a.学号,a.姓名

order by avg(分数) desc, 班级编号 asc

 

3.         创建一个视图教学成绩表视图显示学生的学号、姓名、课程名、分数。

CREATE VIEW [教学成绩表视图]

AS

SELECT 学号, 姓名, 课程名, 分数

FROM 学生表, 成绩表

WHERE 学生表.学号=成绩表.学号