1、以下关于主键的描述正确的是(__)。
A.标识表中唯一的实体
B.创建唯一的索引,允许空值
C.只允许以表中第一字段建立
D.表中允许有多个主键
2、每个数据库有且只有一个(__)。
A、主要数据文件
B、次要数据文件
C、日志文件
D、索引文件
3、一个规范化的关系至少应当满足(___)的要求。
A、一范式
B、二范式
C、三范式
D、四范式
4.下列四项中,不属于数据库特点的是( )。
A.数据共享
B.数据完整性
C.数据冗余很高
D.数据性高
5、下列哪个不是sql 数据库文件的后缀(___)。
A、 .mdf
B、 .ldf
C、 .dbf
D、 .ndf
6、下列标识符可以作为局部变量使用的是(___)。
A、 Myvar
B、My var
C、 @Myvar
D、 @My var
7、在select 语句中,下列哪能一种子句用于将查询结果存储在一个新表中。
A、select 子句
B、from 子句
C、into 子句
D、 where 子句
8、看下面的语句
Declare @I int, @sum int
Select @i=1,@sum=0
说出那一个语句是对的
A、语句;Declare @I int 功能定义变量I 是浮点变量
B、语句;Declare @I int 功能定义变量I 是整型变量
C、语句;Select @I= 功能定义变量I是字符变量
D、语句;Select @I= 功能定义变量I 是日期变量
9.SQL Server安装程序创建4个系统数据库,下列哪个不是( )系统数据库。
A.master
B.model
C.pub
D.msdb
10、在select 语句中,下列哪能一种子句用于将查询结果存储在一个新表中。
A、select 子句
B、from 子句
C、into 子句
D、where 子句11、SQL Server提供的单行注释语句是使用(___)开始的一行内容。
A、“--”
B、“/*”
C、“{”
D、“/”
12、(___)是一种特殊类型的存储过程。
A、视图
B、存储过程
C、表
D、触发器
13、关系模型数据库中的概念正确是
A、表中每一列名可以相同
B、 表中每一列名不可相同
C、行列的顺序有严格规定
D、关系中能存在完全相同的两行
14.( )是位于用户与操作系统之间的一层数据管理软件,它属于系统软件,它为用户或应用程序提供访问数据库的方法。数据库在建立、使用和维护时由其统一管理、统一控制。
A.DBMS B.DB C.DBS D.DBA
15、在“连接”组中有两种连接认证方式,其中在(___)方式下,需要客户端应用程序连接时提供登录时需要的用户标识和密码。
A、Windows身份验证
B、SQL Server 身份验证
C、以超级用户身份登录时
D、其他方式登录时
16、 在Transact-SQL语法中,用来建立表的命令是(___)。
A、CREATE SCHEMA
B、CREATE INDEX
C、CREATE VIEW
D、CREATE TABLE
17、看下面的语句
Declare @I int, @sum int
Select @i=1,@sum=0
说出那一个语句是对的
A、语句;Declare @I int 功能定义变量I 是浮点变量
B、语句;Declare @I int 功能定义变量I 是整型变量
C、语句;Select @I= 功能定义变量I是字符变量
D、语句;Select @I= 功能定义变量I 是日期变量
18、关系模型数据库中的概念正确是
A、表中每一列名可以相同
B、表中每一列名不可相同
C、行列的顺序有严格规定
D、关系中能存在完全相同的两行
19、数据库创建后就可以创建表了,创建表可以用(___)等方法来创建。
A、企业管理器
B、查询分析器
C、OSQL
D、企业管理器和CREATE TABLE语句
20、 在Transact-SQL语法中,用来插入数据的命令是(___),用于更新的命令是(___)。
A、INSERT,UPDATE
B、UPDATE,INSERT
C、DELETE,UPDATE
D、CREATE,INSERT INTO21、数据库系统的核心是
A、数据模型
B、数据库管理系统
C、数据库
D、数据库管理员
22、下列有关数据库的描述,正确的是
A、数据库是一个结构化的数据集合
B、数据库是一个关系
C、数据库是一个DBF文件
D、数据库是一组文件
23、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分有(___)。
A、SELECT,INTO
B、SELECT,FROM
C、SELECT,GROUP
D、仅SELECT
24、在Transact-SQL语法中,使用关键字(___)可以把重复行屏蔽。
A、ALL
B、UNION
C、 DISTINCT
D、TOP
25.在MS SQL Server中,用来显示数据库信息的系统存储过程是( )。
A. sp_dbhelp
B. sp_db
C. sp_help
D. sp_helpdb
26、数据库系统的核心是
A、数据模型
B、数据库管理系统
C、数据库
D、数据库管理员
27、在Transact-SQL语法中,SELECT语句的完整语法较复杂,但至少包括的部分(___)。,
A、SELECT,INTO
B、SELECT,FROM
C、SELECT,GROUP
D、仅SELECT
28、在Transact-SQL语法中,使用关键字(___)可以把重复行屏蔽。
A、DISTINCT
B、UNION
C、ALL
D、TOP
29、下面哪一种数据类型的表达式不能使用比较运算符
A、int
B、char
C、varchar
D、text
30、T—sql 语言提供语句向数据表中添加数据是
A、select
B、 insert
C、delete
D、update
31、为数据表创建索引的目的是(___)。
A、提高查询的检索性能
B、创建唯一索引
C、创建主键
D、归类
32、在SQL SERVER中局部变量前面的字符为:(___)。
A、*
B、#
C、@@
D、@
33、下列有关数据库的描述,正确的是
A、数据库是一个结构化的数据集合
B、数据库是一个关系
C、数据库是一个DBF文件
D、数据库是文档文件
34、下面哪一种数据类型的表达式不能使用比较运算符
A、int
B、char
C、varchar
D、text
35、3NF同时又是(___)。
A、2NF
B、1NF
C、BCNF
D、1NF,2NF
36、模式查找like '_a%',下面哪个结果是可能的
A、 aili
B、 bai
C、 bba
D、 cca
37、T—sql 语言提供语句向数据表中删除数据是
A、select
B、 insert
C、delete
D、update
38、在下面的教师表与系部表中,教师号与系部号分别是两个表的关键字
教师表(教师号,教师名,系部号,职务,工资)
系部表(系部号,系部名,部门人数,工资总额)
在这两个表中只有一个是外关键字它是
A、教师表的“教师号”
B、教师表的“系部号”
C、系部表的“系部号”
D、系部表的系部名
39、将多个查询结果返回一个结果集合的运算符是(___)。
A、JOIN
B、UNION
C、INTO
D、LIKE
40、下面语句中,哪种语句用来修改视图(_ _)。
A、CREATE TABLE
B、CREATE VIEW
C、DROP VIEW
D、ALTER VIEW
41、T—sql 语言提供语句向数据表中添加数据是
A、select
B、insert
C、delete
D、update
42、T—sql 语言提供语句向数据表中删除数据是
A、select
B、 insert
C、delete
D、update
43、表示职称为副教授同时性别为男的表达式为(___)。
A、 职称='副教授' OR 性别='男'
B、 职称='副教授' AND 性别='男'
C、 BETWEEN '副教授' AND '男'
D、 IN ('副教授','男')
44、SQL的视图是从(___)中导出的。
A、基本表
B、 视图
C、 基本表或视图
D、 数据库
45、 看下面的语句那一句是对的
Set @x=50
Set @y=60
Select @x
A、语句Set @x=5 功能是显示变量X的值
B、语句Set @x=5 功能是给变量X赋值
C、语句Select @x 功能是定义变量X是字符型
D、语句Select @x 功能是定义变量X是数值型46、下面的语句对的是
A、语句Select @x 功能是显示变量的值
B、语句Select @x功能是定义变量X为字符型
C、语句Select @x功能是定义变量X为时间型
D、以上的结论都对
47、声明了变量:DECLARE @i int,@c char(4),现在为@i赋值10,为@c赋值’abcd’,正确的语句是(___)。
A、SET @i=10,@c=’abcd’
B、SET @i=10,SET @c=’abcd’
C、SELECT @i=10,@c=’abcd’
D、SELECT @i=10,SELECT @c=’abcd’
48、SQL的视图是从(___)中导出的。
A、 基本表
B、 视图
C、 基本表或视图
D、 数据库
49、在下面的教师表与系部表中,教师号与系部号分别是两个表的关键字
教师表(教师号,教师名,系部号,职务,工资)
系部表(系部号,系部名,部门人数,工资总额)
在这两个表中只有一个是外关键字它是
A、教师表的“教师号”
B、教师表的“系部号”
C、系部表的“系部号”
D、系部表的系部名
50、看下面的语句那一句是对的
Set @x=50
Set @y=60
Select @x
A、语句Set @x=5 功能是显示变量X的值
B、语句Set @x=5 功能是给变量X赋值
C、语句Select @x 功能是定义变量X是字符型
D、语句Select @x 功能是定义变量X是数值型
51、为数据表创建索引的目的是(___)。
A、创建主键
B、创建唯一索引
C、提高查询的检索性能
D、归类
52、在SELECT语句中,下列哪种子句用于选择列表(__)。
A、SELECT子句
B、INTO子句
C、FROM子句
D、WHERE子句
53、下面是四舍五入函数
select round(123.994,-3)运行结果对的是
A、0.000
B、 1.000
C、 120….
D、 124.000
54、下面是四舍五入函数
select round(123.9994,3)
运行结果对的是
A、123.000
B、124.0000
C、124.0
D、124.9990
55、若有一个表S,它由学号( CHAR(6)),姓名CHAR(8)),性别(CHAR(2) )三个字段组成,现向S表插入如下行时,哪一行可以被插入(___)。
A、(’991001’,’李明’, ’女’)
B、(‘990746’’张为’,NULL)
C、(NULL,‘陈道’,‘男’)
D、(‘992345’,
NULL,‘女’)
56、下面的语句对的是
A、语句Select @x 功能是显示变量的值
B、语句Select @x 功能是定义变量X为字符型
C、语句Select @x 功能是定义变量X为时间型
D、以上的结论都对
57、下面是四舍五入函数
select round(123.994,-3)
运行结果对的是
A、0.000
B、1.000
C、120….
D、124.000
58、在SELECT语句中,下列哪种子句用于将查询结果存储在一个新表中(__)。
A、SELECT子句
B、INTO子句
C、FROM子句
D、WHERE子句
59、在SELECT语句中,下列哪种子句用于对分组统计进一步设置条件(__)。
A、HAVING子句
B、GROUP BY子句
C、ORDERBY子句
D、WHERE子句
60、下面语句中,哪种语句用来修改触发器(__)。
A、CREATE TRIGGER
B、CREATE TRIGGER
C、DROP TRIGGER
D、ALTER TRIGGER
61、运算符操作中,对于字符串来说’+’是个连字符下面对的是
但对数值来说’+’是算术运行符,语句
‘123’+’692’ 结果对的是
A、’123692’
B、123692
C、815
D、 ‘815’
62、用数据库做学生成绩管理系统,其中有一个成绩表,有字段 , 学号,课程号,分数,学期,学分。为把全校的学生的成绩写到表中。就把 设为主键
A、学号,学分
B、课程号
C、学号与课程号
D、分数与学期
63、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。为了统计汇总,需要把一些字段默认值设为0,下面对的是
A、编号,姓名设为0
B、奖金,医保设为0
C、基本工资,工龄工资,奖金,水电房租设为0
D、医保,养老保险,失业保险设为0
、在SELECT语句中,下列哪种子句用于选择列表(__)。
A、SELECT子句
B、INTO子句
C、FROM子句
D、WHERE子句
65、在SELECT语句中,下列哪种子句用于将查询结果存储在一个新表中(__)。
A、SELECT子句
B、INTO子句
C、FROM子句
D、WHERE子句
66、在SELECT语句中,下列哪种子句用于对分组统计进一步设置条件(__)。
A、HAVING子句
B、GROUP BY子句
C、ORDERBY子句
D、WHERE子句
67, 下面是四舍五入函数
select round(123.9994,3)
运行结果对的是
A、23.000
B、124.0000
C、124.0
D、124.9990
68、运算符操作中,对于字符串来说’+’是个连字符下面对的是
但对数值来说’+’是算术运行符,语句
‘123’+’692’ 结果对的是
A、’123692’
B、123692
C、 815
D、‘815’
69、用数据库做学生成绩管理系统,其中有一个成绩表,有字段 , 学号,课程号,分数,学期,学分。为把全校的学生的成绩写到表中。可设为主键是
A、学号,学分
B、课程号
C、学号与课程号
D、分数与学期
70、当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是(__)。
A、左外联接
B、右外联接
C、内联接
D、外联接
71、下列聚合函数中正确的是(__)。
A、SUM (*)
B、MAX (*)
C、COUNT (*)
D、AVG (*)
72、SQL中,下列涉及空值的操作,不正确的是(__)。
A、age IS NULL
B、age IS NOT NULL
C、age = NULL
D、NOT (age IS NULL)
73、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。表中的主键是
A、编号
B、姓名,基本工资
C、奖金,医保
D、水电房租
74、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。为了使数据准确,哪些字段要设小数位。
A、编号,姓名
B、基本工资,奖金,工龄工资,水电房租
C、 医保
D、养老保险
75、Sp_help属于哪一种存储过程(__)?
A、扩展存储过程
B、用户定义存储过程
C、系统存储过程
D、其他
76、当关系R和S自然联接时,能够把R和S原该舍弃的元组放到结果关系中的操作是(__)。
A、左外联接
B、右外联接
C、内联接
D、外联接
77、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。为了统计汇总,需要把一些字段默认值设为0,下面对的是
A、编号,姓名设为0
B、奖金,医保设为0
C、基本工资,工龄工资,奖金,水电房租设为0
D、医保,养老保险,失业保险设为0
78、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。表中的主键是
A、编号
B、姓名,基本工资
C、奖金,医保
D、水电房租
79、有一个工资表,其表字段为,编号,姓名,基本工资,工龄工资,奖金,医保,养老保险,失业保险,水电房租。为了使数据准确,哪些字段要设小数位。
A、编号,姓名
B、基本工资,奖金,工龄工资,水电房租
C、医保
D、养老保险
80. 在SQL语言中,建立存储过程的命令是()
A、CREATE PROCEDURE
B、CREATE RULE
C、CREATE DURE
D、CREATE FILE
二、 填空题:1、 语句 select floor(17.4), round(-18.4562,3)的执行结果是: ______、_______。(17、-18.4560)
2、语句 select ascii('C'), char(68), len(‘你 是BigTiger’) 的执行结果是: _________、_________和_________。(67、D、11)
3、在实际工作中,要分离数据库,当分离成功后,把数据库文件带到了另一台计算机必用______方法就把数据库装起来了。附加
4、实体所具有的某一 _______称为属性。特性
5、实体之间的联系类型有三种,分别为________、________和
________。(一对一、一对多、多对多)
6、触发器有3种类型,即INSERT类型、 和 。(Update、delete)
7、在实际工作中,要备份数据库,当备份成功后,把数据库文件带到了另一台计算机必用______方法就把数据库装起来了。恢复
8、运行select year('1931-9-18') 的执行结果是 。(1931)
9、运行select ceiling (134.393) 的结果是 。(135)
10、数据库系统的核心是__________.。数据库管理系统
11、 在E-R图中用来表示实体的属性图形是______。矩形
12、运行SELECT upper('beautiful') 的结果是 。(BEAUTIFUL)
13、运行SELECT POWER(3,4) 的结果是 。(81)
14、表是数据库中最重要的、最基本的、最核心的对象,是_____模型中表示实体的方式。关系
15、存储过程(Stored Procedure)是一组为了完成特定功能的________,经编译后存储在数据库中。T-SQL语句集
16、运行select (7+3)*4-17/(4-(8-6))+99%4的结果是 。(35)
17、 工资表中的“基本工资”字段的数据类型应设为_____。数字型
18、关系模型的数据结构:关系模型的数据结构是一种___________。二维表结构
19、运行SELECT CHARINDEX('数据库','大型数据库技术') 的结果是。(3)
20、运行SELECT DATEDIFF(yy,'1979/12/23',GETDATE())的结果是。(34)
21、 档案表中的“身份证号”字段的数据类型应设为____。字符型
22、关系模型的数据结构:关系模型的数据结构是一种___________。二维表结构
23、sql server 系统数据库中的主数据库文件扩展名是________。mdf
24、在sql server 2000数据库管理系统中,T-sql 语言最主要,最核心的部分是它的查询语句写出它的英文动词_____________。select
25、运行SELECT FLOOR (134.3393)的结果是 。(134)
26、运行SELECT ASCII('C'), CHAR(68), LEN(' 你 是BigTiger ') 的执行结果是: _________、_________和_________。(67、D、11) 27、全局变量是在程序运行过程中其值可以变化的____________。可变的
28、备份是为了在数据库遭到破坏时,能够修复,数据库备份的类型有四种分别为: 备份, 备份,差异备份,文件和文件组备份。(完全数据库、事务日志)
29、索引的类型主要有_ _和_ __。(聚簇、非聚簇)
30、当以下代码中的[ ]位置分别为BREAK,CONTINUE时,输出的值为、__ _。(1、0)
DECLARE @n int
Set @n=3
WHILE @n>0
BEGIN
SET @N=@N-1
IF @N=1 [ ]
END
PRINT @n
31、sql server 系统数据库中的事务日志文件扩展名是_________。ldf
32、在人事档案工资管理系统中,有一个”工资表”,记录职工的基本信息,有一个“编号”字段,应该把它的类型定义什么类型?
___________。char或字符串型
33、在SQL Server 2000中,一个批处理语句是以_______ 结束的。(GO)
34、SQL Server 2000局部变量名字必须以_________开头,而全局变量名字必须以_________开头。(@、@@)
35、关系运算主要有________、________、________。(选择、投影、连接)
36、在SQL Server 2000系统中,一个数据库至少有一个______文件和一个_______文件。(数据、日志)
37、实体是现实世界中客观存在并可相互_________事物。区别
38、两个实体之间的联系有如下三种类型______、______、______。一对一、一对多、多对多
39、通常将关系模型称为关系或表;将关系中的行称为元组或叫_____;将关系中的列称为属性____。记录,字段
40、备份是为了在数据库遭到破坏时能够修复,数据库备份的类型有四种分别为: 备份, 备份,差异备份,文件和文件组备份。(完全数据库、事务日志)
41、索引的类型主要有_ _和_ __。(聚簇、非聚簇)
42、数据库设计的基本任务是根据用户的信息需求、处理需求和支持环境(包括计算机系统的软硬件环境及DMS)设计出________。数据模式43、在SQL Server中,数据库对象包括数据表、______、______、触发器、规则、默认和用户自定义的数据类型等。视图、存储过程
44、 完整性约束包括_______完整性、______完整性、参照完整性和用户定义完整性。实体、域
45、 T-SQL 语言中,有_________运算、字符串连接运算、比较运算和_________运算。算术、逻辑
46、__________是特殊类型的存储过程,它能在任何试图改变表中由触发器保护的数据时执行。触发器
47、事务(Transaction)可以看成是由对数据库的若干操作组成的一个单元,这些操作要么______,要么________(如果在操作执行过程中不能完成其中任一操作)。都完成、都取消
48、事务的ACID属性是指________性、________性、_______性和
_______性。原子、一致、、持久
49、数据库管理系统的安全性通常包括两个方面,一是指数据________的安全性,二是指数据_______的安全性。访问、运行
50、创建、修改和删除表命令分别是create table、_________ table 和_________ table。alter、drop
三、判断题
1. ‘在那遥远的地方’ 是SQL中的字符串常量。
2. 11.9 是SQL中的实型常量。
3. select 16%4, 的执行结果是: 0。
4. 200
5.11.09 是SQL中的日期型常量。
5. ¥2005. 是SQL中的货币型常量。
6. select 25/2 的执行结果是: 12.5 。
7. '李逵'>'李鬼' 比较运算的结果为真。
8. 一个表可以创建多个主键。
9. 创建唯一性索引的列可以有一些重复的值。
10. smallint 是SQL的数据类型。
11、数据库系统与数据库管理系统是一样的。
12、数据库中的视图的名称是任意的,也就是说,视图的名称可以与表的名称相同
13、数据冗余是指同一数据在两个表或更多的表中都出现。
14、在电话收费表中,有“电话号码”字段,应把这字段数据类型设成字符型。
15、数据冗余是指同一数据在两个表或更多的表中都出现。
16、数据库的“存储结构”分为“逻辑存储结构”和“物理存储结
构”两个概念。
所以数据库的两个名称;物理名与逻辑名不可相同。
17、当数据库在运行,不能停机,但我们也要把数据保存下来,采用的方法是分离数据库方法。
18、复制数据库文件,目的是想把数据库转移到另一磁盘上保存,当一个数据库还在运行时,也可以用复制的办法把数据库文件复制,粘贴到另一个磁盘。
19、分离与备份数据库,不论数据库是否还在运行,这两种操作都是一样的可以执行。
20、数据库文件,当不用时就把它删除,当需要时再把它恢复。
21. SQL Server不允许字段名为汉字?
22. 职称 in ('教授', '副教授'')与 职称 = '教授' or 职称 = '副教授' 等价吗?
23. 如果规则当前绑定到某列或用户定义的数据类型,不能解除绑定能直接删除规则?
24. 在表中创建一个标识列(IDENTITY),当用户向表中插入新的数据行时,系统自动为该行标识列赋值吗?
25. 固定数据库角色:db_datarader 的成员修改本数据库内表中的数据吗?
四、简答题
1、什么是数据库设计?
是对于一个给定的应用环境,提供一个确定最优秀的数据模型与处理模式的逻辑结构设计,以及一个数据库存储结构与存取方法的物理结构设计,建立起既能反映现实世界实体与联系,满足用户数据处理要求,又能被某个数据库管理系统所能接受,同时能实现系统目标,并能有效存取数据的数据库。
2、sql server 数据库管理系统中,有一个系统数据库,叫master 数据库,请叙述它的作用。
master数据库,纪录sql server 系统的所有系统信息,包括实例范围的元数据、端点、连接服务器和系统配置设置,它还记录了所有其他数据库是否存在以及这些数据文件具体存放的位置。
3、视图是数据库一个很重要的对象,请叙述视图的优点。
从调查用户的需求入手,深入了解用户的数据流程,数据使用情况,数据的数量,流量、流向、数据性质、并做出分析,最终按一定的要求以文档形式写出数据需求说明书
4、简述SQL Server的安全性管理机制(6级,涉及登录账号、用户、角色以及权限分配)。
1. 计算机的连接
2. SQL Server登录(账户、固定服务器角色)
3. 库的访问(用户/角色:固定/自定义角色)
4. 表/视图的权限(select insert update delete)
5. 存储过程、内嵌表值函数的权限(execute select)
6. 表(视图)中列的权限(select update)
5、什么是事务?
事务(Transaction)可以看成是由对数据库若干操作组成的一个单元,这些操作要么都完成,要么都取消(如果在操作执行过程中不能完成其中任一操作)。在SQL Server中,事务是由一条或者多条Transact-SQL语句组成的一个工作单元,这些语句要么都正常执行,要么如果有其中任意一条语句执行失败被取消的话,这些语句的执行都被取消。SQL利用事务机制保证数据修改的一致性,并且在系统出错时确保数据的可恢复性。
6、什么是用户自定义函数?(P140)
用户自定义函数是SQL Server2005的数据库对象,它不能用于执行一系列改变数据库状态的操作,但它可以像系统函数一样在查询或存储过程等的程序段中使用,也可以像存储过程一样通过EXECUTE命令来执行。用户自定义中存储了一个T-SQL例程,可以返回一定的值。
7、索引有什么优点?(P109)
1、提高查询速度。
2、提高链接、ORDER BY和GROUP BY执行的速度。
3、查询优化器依靠索引起作用。
4、强制实施行的唯一性。
8、简述分离和附加数据库的操作步骤。(52)将student数据库进行分离:
1、在“对象资源管理器”窗口中,展开“数据库”选项,右击student,在弹出的菜单中选择“任务”到“分离”命令。
2、单击“确定”按钮完成分离数据。
将student数据库附加到需要的计算机上:
1、在“对象资源管理器”窗口中,右击“数据库”选项,在弹出的菜单中选择“附加命令”。
2、打开“附加数据库”窗口中,单击“添加”按钮。
3、弹出“定位数据库文件”对话框,找到student.mdf文件所在的目录,选择要附加的数据文件student.mdf,单击“确定”按钮。
4、单击“确定”按钮完成附加数据库路的操作。
5、如果日志文件丢失,仍可以正常附加数据库。
6、选择找不到的日志文件,单击右下方的“删除”按钮,删除该日志文件后,再单击“确定”按钮即可完成,系统将自动创建一个新的日志文件。
五、设计题(全部使用SQL语言实现)
1.计算1+2+3+……+100的和,并显示计算结果。(6分)DECLARE @I int,@sum int,@csum char(10)
SELECT @I=1,@sum=0
WHILE @I<=100
BEGIN
SELECT @sum =@sum+@i
SELECT @I=@I+1
END
SELECT @csum=convert(char(10),@sum)
print '1+2+3+……+100=' + @csum
2. 现有关系数据库如下:
数据库名:学生成绩数据库
学生表(学号 char(6),姓名,性别,民族,身份证号)
课程表(课号 char(6),名称)
成绩表(学号,课号,分数)
(1)代码创建数据库[学生成绩数据库];
create database [学生成绩数据库]
gouse [学生成绩数据库]
go
(2)代码创建[课程表];
课程表(课号 char(6),名称)
要求使用:主键(课号)、非空(名称)
create table 课程表
([课号] char(6) primary key,
[名称] char(40) not null,
)
go
(3)代码创建[学生表];
学生表(学号 char(6),姓名,性别,民族,身份证号) 要求使用:主键(学号)、默认(汉族)、非空(民族,姓名)、唯一(身份证号))
create table 学生表
([学号] char(6) primary key,
[姓名] nchar(4) not null,
[性别] nchar(1) check([性别] in ('男', '女')),
[民族] nchar(8) default '汉族' not null,
[身份证号] char(18) unique
)
go
(4)代码创建[成绩表];
成绩表(ID,学号,课号,分数)
要求使用:主键(课号)、外键(成绩表.学号,成绩表.课号)) create table 成绩表
(ID int identity(1, 1),
[学号] char(6) references 学生表(学号),
[课号] char(6) primary key references 课程表(课号),
[分数] integer check([分数] between 0 and 100)
)
go
(5) 将下列课程信息添加到课程表的代码课号 课程名称
100001 大学语文
100002 大学英语
100003 西班牙语
修改 课号为100002的课程名称:实用英语
删除 课号为100003的课程信息
insert 课程表 values('100001', '大学语文')
insert 课程表 values('100002', '大学英语')
insert 课程表 values('100003', '西班牙语')
--update 课程表 set 名称='常用英语' where 课号='100002' --delete 课程信息表 where 课号='100003'
3.编写SQL语句,按要求查询出相应的数据
(1)查询出学生表所有记录信息。
(2)查询出课号、名称信息,要求查询结果显示的表头字段为英文字母(课号)kh、(名称)mc。
(3)查询出所有姓“李”的学生的学号、姓名和性别的信息。
(4)查询出所有民族是“汉族”的男学生的信息。
(5)查询出学号是“201101”学生的所有课程成绩,并按成绩降序排序。
(6)统计出每门课程的平均成绩。
--(1).
select * from 学生表
--(2)
select 课号 as kh,名称 as mc from 课程表
--(3)
select 学号,姓名,性别 from 学生表
where 姓名 like '李%'
--(4)
select * from 学生表
where 民族='汉族' and 性别='男'--(5)
select * from 成绩表
where 学号='201101'
order by 分数 desc
--(6)
select 课号,avg(分数) as '平均成绩'
from 成绩表
group by 课号
4、有一个[学生课程]数据库,数据库中包括三个表:
学生表Student由学号(Sno)、姓名(Sname)、性别(Ssex)、年龄(Sage)、所在系(Sdept)五个属性组成,记为:
Student(Sno,Sname,Ssex,Sage,Sdept) ,Sno 为关键字。
课程表Course由课程号(Cno)、课程名(Cname)、先修课号(Cpno)、学分(Ccredit)四个属性组成,记为:
Course(Cno,Cname,Cpno,Ccredit) Cno为关键字。
成绩表SG由学号(Sno)、课程号(Cno)、成绩(Grade)三个属性组成,记为: SG(Sno,Cno,Grade) (SNO, CNO)为关键字。
用SQL语言实现下列功能:
1). 代码创建数据库[学生课程数据库];
2). 代码创建课程表Course;主键(课号)
3). 代码创建学生表Student,其中主键(学号)、性别默认(男))
4). 代码创建成绩表SG,主键(学号,课号)、外键(成绩表.学号,成绩表.课号))
5).向Student表增加“入学时间(Scome)”列,其数据类型为日期型。
6).删除学号为05019的学生记录。(4分)
7).查询管理系全体学生的信息。(4分)
8).查询选修了3号课程的学生的学号及其成绩,查询结果按分数的降序排列。
9).查询学习1号课程的学生的最高分数、平均成绩。
10).查询与“李洋”在同一个系学习的学生。
11). 查询出所有姓“李”的学生的学号、姓名和性别的信息。
12).计算1*2*3*……*20(即20!)的和,并显示计算结果。
1)
create database [学生课程数据库] go
2)
create table course
([cno] char(6) primary key,
[cname] char(40) ,
[cpno] char(40) ,
[CCredit] int ,
)
go
3)
create table Student
([Sno] char(6) primary key,
[Sname] nchar(4) ,
[Ssex] nchar(1) default '男',
[Sage] int ,
[Sdept] char(20)
)
go
4)
create table SG
([Sno] char(6) references Student (Sno), [Cno] char(6) references course (Cno), [Grade] integer
CONSTRAINT [PK_SG] PRIMARY KEY CLUSTERED (
[Sno] ASC,
[Cno] ASC
)
)
go
5).
Alter table student
Add Scome datetime
6).
Delete student
Where Sno=’05019’
7).
Select * form student
Where sdept=’管理系’
8).
SELECT Sno, Grade
FROM SG
WHERE Cno='3'
ORDER BY Grade DESC
9).
SELECT MAX(Grade), AVG(Grade)
FROM SC
WHERE Cno='1'
10).
SELECT Sno, Sname, Sdept
FROM Student
WHERE Sdept IN
(SELECT Sdept FROM Student
WHERE Sname='李洋')
11).
SELECT Sno, Sname, Ssex
FROM Student
WHERE Sname like '李%'
12)
--计算1*2*3*……*20的值
DECLARE @I int,@j float,@cj char(10) SELECT @I=2,@j=1
WHILE @I<=20BEGIN
SELECT @j =@j*@i
SELECT @I=@I+1
END
SELECT @cj=convert(char(20),@j) print '1*2*3*……*20=' +@cj