一填空
1. SQL Server的系统数据库有:Master数据库__、Model数据库_、Msdb数据库、Tempdb数据库、Resource数据库。 2. 数据库中的数据库文件有三类:主数据文件 次数据文件 事务日志文件。 3. 事务日志文件的作用是:恢复数据。
4. 创建数据库的命令是:CREATE DATABASE。 5. 修改数据库的命令是:ALTER DATABAS。 6. 删除数据库的命令是:DROP DATABASE。
7. 查看数据库信息可使用的存储过程是:sp_helpdb _。
8. 扩充/收缩数据库的容量的方法有两种:一是增加/二是减__数据_文件和事物日志文件的容量;二是增加/减少数据库中的 数据 文件和事物日志文件个数。
9. 删除文件组钱必须保证该文件组 为空、若该文件组中有文件,则先:删除文件组中的文件。 10. 在增加数据文件时,如果用户没有指明文件组,则系统将数据文件增加到 主_文件组。
11.在数据表上可以创建的约束有:主键约束 唯一性约束 外键约束 检查约束 空值约束 默认值约束 11.
12. 创建表约束的方法有3种:第一种是在新建表时,在单个列定义之后创建约束;第二种是在新建表时,在所有列定义之后创建约束;第三种是在表已经存在,可通过_修改该表的方式_添加约束。
在一个表中只能定义一_个主键约束,但可以定义_多个唯一性约束;定义了唯一约束的列数据可以为_空 值,而定义了主键约束的列数据为非空值。
13. 如果列上有约束,要删除该列,应先删除相应的约束。
如果要删除的表T1是其他表T2的参照表,则应先取消T2表中的外键_约束,或者先删除T2表,在删除T1表。 用SELECT子句可以实现选择列的运算。 用WHERE子句可以实现选择行的运算。 14. 在进行多表查询时,必须设置连接条件。 15. GROUP BY 子句实现的是分组。 16. ORDER BY 子句实现的是_排序。
17. 当使用COMPUTE… BY……..子句时,必须与ORDER BY _句配合使用。
HAVING子句实现时是设定组或聚合的查询条件。它与WHERE子句的区别是HAVING子句可以使用汇总函数,而WHERE子句则不能。
在SQL Server 2005中,视图分为三类,即:标准视图、索引视图、分区视图。 一般情况下,视图是一张_虚拟表 _,是通过CREATE VIEW_来定义视图。 18. 在每次访问视图时,视图都是从 基表 中提取做包含的行和列。
SQL server 2005 提供的索引类型包括以下几种:聚集索引 非聚集索引 唯一索引 复合索引 全文索引 XML索引 19. 索引即可以在 创建表 时创建的,也可以在以后的任何时侯创建。 20. 索引一旦创建,将由 数据库 自动管理和维护。
批处理是 一条或多条T-SQL语句的集合 语句的集合。一个批处理以GO语句结束。
21. T-SQL中的局部变量是用DECLARE语句声明的变量,全局变量是由 (系统)定义并维护的变量。 22. BEGIN? END 语句可以将多条 T-SQL 语句封装起来,构成一个独立的
(语句块)。
23. BREAK用于 退出 WHILE循环;CONTINUE用于 重新开始 WHILE循环。
WAITFOR语句用于制定其后的语句在 某一时刻 或在 一段时间间隔 后继续执行。
存储过程通过 参数 来与调用它的程序通信。在程序调用存储过程时,一般通过 输入 将数据传递给存储过程,通过 _输出 参数将数据返回给调用它的程序。
24. 用EXECUTE语句来执行存储过程。
25. CREATE PRCEDURE 语句 不能 (能否)与别的T-SQL语句位于同一个批中。
SQL server 2005 提供了两种类型的触发器,它们分别是DML触发器和DDL触发器。 DML触发器按触发时机不同,可分为FOR | AFTER触发器和INSTEAD OF触发器。
在DML触发器被激活时,可以使用两个由系统创建的临时表,它们分别是Inserted表和Deleted 表。 激活DML触发器的操作有3类分别是.INSERT UPDATE 和 DELETE。 二、简答题
1. 什么是数据、数据库、数据库管理系统、数据库系统?
数据是:数据库中存储的基本对象。数据库是:长期存储在计算机内、有组织的、可共享的数据集合。数据库管理系统是:位于用户与操作系统之间的一层数据管理软件。数据库系统是指在计算机系统中引入数据库后的系统构成,一般由数据库、数据库管理系统(及开发工具)、应用系统、数据库管理员和用户构成。 2. 数据库系统有哪些特点?
数据库系统的特点有:数据结构化、数据的共享性高,冗余度低,易扩充、数据独立性高、数据由DBMS统一管理和控制。 3. 数据库管理系统的主要功能有哪些?
数据定义功能、数据操纵功能、数据库的运行管理、数据库的建立和维护功能。
4. 试给出三个实际情况的E-R图,要求实体之间具有一对一、一对多、多对多各种不同的联系。
班级1班级--班长1班长 1:1的E-R图
班级1组成m学生课程m选修n学生 1:m的E-R图
5. 学校中有若干系,每个系有若干个班级和教研室,每个教研室有若干个教室,每个班有若干个学生,每个学生选修若
干个课程,每门课程可由若干个学生选修。请用E-R图画出此学校的概念模型。
编号名称名称代码学号姓名性别年龄系n拥有1学校1拥有编号n班级1属于nn学生n选修m教研室名称门牌号1属于n1指导校名校址校代码教师号教师专业姓名性别n年龄指导职称m课程号课程课程名学分教材
6. 某商品销售公司有若干个销售部门,每个销售部门有若干员工,销售多种商品,所有商品有一个厂家提供,设计该公
司销售系统的E-R模型,并将其转换为关系模式。
公司(公司代码,公司名,地址) 部门(部门代码,部门名)
员工(员工代码姓名性别年龄职务) 商品(商品代码商品名单价数量) 厂家(厂家代码,厂家名,地址) 拥有(公司代码,部门代码) 属于(部门代码,员工代码) 销售(员工代码商品代码销售量) 供货(商品代码,厂家代码)
7. 在关系代数中,条件连接与自然连接的条件是什么?
条件连接是把两个表中的行按照给定的条件进行拼接而形成的新表,结果列为参与连接的两个表的所有列。自然连接要求两个表有共同属性(列)。自然连接的结果表是参与操作的两个表的共同属性上进行等值条件连接后,再去除重复的属性后得到的新表。
8. 已知如图所示。
R S M N A B C C D E B C D E 1 2 3 3 5 8 2 3 3 1 4 5 6 9 8 0 5 6 6 2 7 8 9 3 6 9 2 7 6 7 8
9. 求R与S在B
1) A B C D E 1 2 3 3 1 4 5 6 6 2 D 9 0 3
10. 求R与N在R.B=N.B并且R.C=N.C的条件下进行条件连接的结果。
2) A B C B C D 1 2 3 2 3 9 4 5 6 5 6 0
11. 求R与N进行自然连接的结果。
3) A B C D 1 2 3 9 4 5 6 0
12. 求R、M、N进行自然连接的结果。
4)空
13. 求R与N进行全连接、左外连接、右外连接的结果。
5) A 1 4 7 B C 2 3 5 6 D 9 0 3 A B C 1 2 3 4 5 6 D 9 0 8 9 null 7 8 9 null null 2 7 A 1 4 全外连接 左外连接
B C D 2 3 9 5 6 0 null 2 7 3 右外连接
14. 分离数据库时应该注意哪些问题?
1.分离数据库时,如果有用户与数据库连接,在“状态”列显示“未就绪”,此时分离数据库会操作失败。所以要分离数据库先要结束那些正在使用数据库的进程。 15. 备份数据库有哪些类型。
:完整备份、差异备份、事务日志备份、文件和文件组备份。
16. 什么是规则?规则与CHECK约束有什么区别?
1.规则是绑定到列或用户自定义数据类型上的数据库对象,用来指定列可以接受哪些数据值。规则是实现域完整性
的方法之一。
CHECK约束是用CREATE TABLE语句在建表时指定的,而规则需要作为单独的数据库对象来实现。在1列上只能使用1个规则,但可以使用多个CHECK约束。1个规则可以应用于多个列,还可以应用于用户自定义的数据类型,而CHECK约束只能应用于它所定义的列。
17. 使用“规则”来实现数据库的完整性,需要哪几个步骤?
2.使用规则来实现数据完整性,需要两个步骤。一是创建规则;二是将规则绑定到列或用户自定义数据类型上。 18. 什么是默认值?默认值与CHECK约束有什么区别?
3.默认值就是当用户向表中添加数据时,没有明确地给出,而由SQL Server自动指派的值。默认值可以定义为数据库对象,使用时需将其绑定到特定的列上。
默认值约束是用CREATE TABLE语句创建表时,使用DEFAULT子句为表中的列提供默认值。默认值对象是用CREATE DEFAULT语句来创建的,使用时须将它绑定到列或用户自定义数据类型上。
19. 使用‘默认’值来实现数据完整性,需要哪几个步骤?
使用默认值来实现数据完整性,需要两个步骤。一是创建默认值对象;二是将默认值对象绑定到列或用户自定义数据类型上。
20. SQL标识符的命名必须遵循哪些规则?
1.SQL标识符的命名必须遵守以下规则:标识符的长度可以为1~128个字符。标识符的第一个字符必须是英文字母、汉字、下划线、@或者#。默认情况下,标识符内不允许含有空格,也不允许将SQL关键字作为用户定义的标识符。 21. Transanct-SQL的运算符有哪几类?
2.T-SQL的运算符共有7类:算数运算符、赋值运算符、按位运算符、比较运算符、逻辑运算符、字符串串联运算符、一元运算符。
22. 简述局部变量的声明和赋值方法。
3.局部变量的声明:DECLARE @variable_name datatype [ ,?n ] 局部变量的赋值:①SET @variable_name = expression
②SELECT @variable_name = expression [ ,?n ]
[ FROM? ]
[ WHERE? ]
23. RETURN语句有和功能?
5.RETURN语句用于从查询或过程中无条件退出。RETURN的执行是即时且完全的,可在任何时候用于从过程、批处理或语句块中退出,在它之后的语句不会被执行。 三、上机题
1. 在KC表中,查询第二学期开课的课程、授课教师。
select 课程名, 授课教师, 开课学期 from kc
where 开课学期=2
2. 在XSQK的姓名和电话号码。
select 姓名, 性别, 联系电话 from xsqk where 性别=0
3. 在XS-KC绩在80上的学号、课程号和成绩。
select 学号, 课程号, 成绩 from xs_kc
where 成绩>=80
4. 在XS-KC绩在80上的和不及格学生的信息。
select 学号, 课程号, 成绩 from xs_kc
where 成绩>=80 or 成绩<60
5. 在XS-KC表中,查询不在1980年7、8、9月份出生的学生信息。
select 学号, 姓名, 出生日期 from xsqk
where 出生日期 not between ‘1980-07-07’ and ‘1980-09-30’ 6. 在XSQK表中,查询陈姓且单名的信息。
select * from xsqk
where 姓名 like ‘陈_’
7. 在XS-KC表中,查询学号中含有1的记录信息。
select * from xsqk
where 学号 like ‘%1%’
8. 在XS-KC表中,查询电话号码第7位为4和6的记录信息。
select * from xsqk
where 联系电话 like ‘_ _ _ _ _ _ [46] _’
9. 在KC表中,查询第一、三、五学期的开设的课程信息。
select * from kc
where 开课学期 in (1, 3, 5)
10. 查询XSQK表,输出学号姓名出生日期,并使查询结果按出生日期升序排列。
select 学号, 姓名, 出生日期 from xsqk
order by 出生日期