一、选择题
1.1应用程序与数据库的接口软件是[    B  ]
A. 计算机硬件      B.数据库管理系统  C.文件系统    D.操作系统
1.2在一个查询中,哪一个子句将限制返回的行?[ B    ]
A. ORDER BY        B. WHERE          C. SELECT      D. FROM
1.3从CHAR(10)数据类型的列中取出以前存入的字符串“MARK”,其长度为多少?[  C    ]
A. 10        B. 4      C. 不能确定        D. 与存入时一样
1.4下列哪个函数不是一个集合函数?[    C  ]
A. AVG          B. VARIANCE 方差  C. LEAST        D. STDDEV
1.5假如需要查出生日期在1987年1月1日以前,并且入学成绩高于500且入学成绩低于560的学生,哪条查询语句最合适?[  D  ]
A. SELECT name FROM stud_info
WHERE birthday>'01/01/1987' AND (mark<500 OR mark >560)
B. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark <500 AND mark >560
C. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark <500 OR mark >560
D. SELECT name FROM stud_info
WHERE birthday<'01/01/1987' AND mark BETWEEN 500 AND 560
1.6下列哪一条语句将在教师基本信息表(teacher_info)的teacher_id列上建立一个主键约束PK_teacher_id?[  C  ]
A. CREATE PRIMARY KEY ON teacher_info (teacher_id)
B. CREATE CONSTRAINT PK_teacher_id PRIMARY KEY ON teacher_info (teacher_id)
C. ALTER TABLE teacher_info
ADD CONSTRAINT PK_teacher_id PRIMARY KEY(teacher_id)
D. ALTER TABLE teacher_info ADD PRIMARY KEY(teacher_id)
1.7不允许在数据表中出现重复记录的约束是通过[  D  ]实现。
A. CHECK    B. DEFAULT    C. FOREIGN KEY  D. PRIMARY KEY或UNIQUE
1.8假如已经建立了表stud_score,该表有6条记录,当执行以下语句时,哪条说法是正确的?[  D    ]
ALTER TABLE stud_score ADD exam_date DATE DEFAULT GETDATE()
A. 一个新的列exam_date被加到表stud_score中,并且已经存在的行中该列的值为NULL。
B. 由于表中有数据,所以不能增加新的列。
C. 由于表中有数据,不能提供DEFAULT值。
D. 一个新的列exam_date被加到表stud_score中,并且用当前系统日期和时间作为该列的值。
1.9建立视图的哪一个选项,将加密CREATE VIEW语句的文本?[  D  ]
A. WITH UPDATE      B. WITH READ ONLY      C. WITH CHECK OPTION    D. WITH ENCRYPTION
1.10下列SQL语句中哪一行可能出错?[  C  ]
CREATE VIEW stud_view
AS
SELECT stud_id 学号, name 姓名
FROM dbo.stud_info
WHERE stud_id = '0001020201'
ORDER BY birthday
A. 第5行        B. 第3行        C. 第6行        D. 没有错误
二、填空题
2.1SQL Server服务器中包含了用户自定义数据库和___系统________数据库。
视图包括哪几个视图2.2删除已经建立的视图course_view的命令为:_______drop view course_view________________
2.3SQL是Structured Query Language的缩写,意即:_______结构化查询语言________________________
2.4要查看数据
表的结构及约束,可以使用_____sp______________系统存储过程来查看。
2.5以入学成绩mark降序显示stud_info学生信息表中所有记录的SQL语句是:
SELECT * from  stud_info _____group by mark DESC_____________________________
2.6显示stud_grade学生成绩表中的最高分的学生学号和课程号的SQL语句是(成绩grade):
SELECT stud_id, course_id FROM stud_grade WHERE ______grade=max(grade)________________________
2.7将stud_grade学生成绩表中课程号为“0401010106”的成绩grade加5的SQL语句是:
UPDATE stud_grade SET___grade=’grade+5‘_________ WHERE course_id= ’0401010106'
2.8 假如使用SELECT A.*,B.* FROM A,B语句查询表A(有10行)和表B(有20行)中的数据,将返回_____30______行;
2.9如果想用学生基本情况表stud_info生成一个副本stud_info1,其SQL语句是__________________________________________。
2.10用户要具有连接到数据库中的能力,必须具有哪一项系统权限?______________________
2.11利用随机函数产生一个20~30之间一个整数的表达式是______select floor(20+(rand()*11))_______________。
2.12在学生基本情况表stud_info中,为性别gender添加一个约束的命令。_____alter table stud_info add constraint sex_stud_info CHECK(gender=n'男' or gender=n'女')_______
2.13写出删除存储过程stud_info_proc的SQL语句。
__________________________________________
2.14事务控制语句包括BEGIN TRANSACTION、COMMIT、ROLLBACK、SAVE等,控制事务回滚到事务开始前或保存点前的状态的语句是___________________。
2.15 ODBC是由Microsoft定义的一种___访问数据库的统一界面___________标准。
三、按照题目要求用SQL命令创建数据库对象
3.1创建一个名为company的用户数据库。其数据文件的初始大小为10MB,无最大限制,以10%的速度增长。日志文件的初始大小为1MB,最大为5MB,以1MB的速度增长。
答:
create database conpany
on
(
name =company_data,
filename='c:\program files\mircosoft sql server\mssql1.1\mssql\data\company.mdf'
size=1,
filegrowth=10%,
)
log on
(
name =company_log,
filename='c:\program files\mircosoft sql server\mssql1.1\mssql\data\company_log.ndf'
size=1,
maxsize=5,
filegrowth=1
)
3.2创建一个名为stud_info_gz的规则,并将其绑定到表stud_info中的性别(gender)列上,使用户输入的性别只能是“男”或“女”,否则提示输入无效。
答:
create rule sud_info_gz
as @gender=n'nan' or @gender=n'nv'
go
exec sp_bindrule stud_info_gz 'der'
3.3创建一个名为computer_view、计算机工程系学生计算机专业英语的平均成绩的视图。视图包括的列有学号、姓名、平均成绩。
答:
create view company_view
as
select stud_id name avg(grade)
from
3.4对已经建立的学生成绩表(stud_grade)中的课
程号(course_id)列创建一个名为stud_course_id_idx的索引。
答:
create unique index stud_id_idx
on table stud_grade(course_id)
3.5创建一个按性别(gender)来统计stud_info表中人数的存储过程people_num。
答:
四、按照题目要求写出相应的SQL命令
已知学生基本信息表stud_info和学生成绩表stud_grade的结构如下:
STUD_INFO                            STUD_GRADE
stud_id  CHAR(10)                    stud_id    CHAR(10)
name    NVARCHAR2(4)                name      NVARCHAR2(8)
birthday DATETIME                    course_id  CHAR(10)
gender  NCHAR(2)                    grade      NUMBER(3)
address  NVARCHAR2(20)
telcode  CHAR(12)
zipcode  CHAR(6)
mark    NUMBER(3)
说明:学生基本信息表stud_info的学号(stud_id)编码顺序为:1、2位为年级编码,3、4位为院系编码、5、6位为专业编码,7、8位为班次编码,9、10位为学生顺序号。
4.1从学生基本信息表stud_info中查询姓名(name)的第一个字为“张”,姓名为两个汉字的学生学号(stud_id)、姓名(name)、出生日期(birthday)、性别(gender)、入学成绩(mark)。
答:
4.2从学生成绩表stud_grade中查询成绩为最高分数的学生学号(stud_id)、姓名(name)。
提示:寻最高分数可以使用MAX(grade)。
答:
4.3从学生基本信息表stud_info中查询所学专业同为“计算机应用技术”或年龄为17岁的所有学生的姓名(name)。
提示:“计算机应用技术”专业代码为01。
答:
select name
from stud_info
where substring(stud_id,5,2)='01' or year(getdata())-year(birther)=17
4.4针对学生基本信息表(stud_info),创建一个按性别统计人数的存储过程people_num。调用上述存储过程,统计性别为“男”的人数。
答:
create procedure people_num
(@in_sex nchar(20) ,@out_num int output )
as
if @in_sex= n'nan'
select @out_num = count(gender)
from stud_info where gender=n'nan'
4.5在stud_info数据表结构的最后增加一列memory,其数据类型和大小为VARCHAR2(30)。
答:
alter table stud_info
add memory varchar(30) null
go
4.6为stud_info表中的telcode字段定义唯一性约束。
答:
alter table stud_info
add constraint UN_telcode unique(telcode)
4.7为stud_info表中的stud_id字段定义主键约束。
答:
alter table stud_info
add constraint PK_stud_id primary key constraint(stud_id)
4.8将stud_grade表的stud_id字段定义为指向stud_info表中stud_id字段的外键。
答:
alter table stud_info
add constraint PK_stud_id primary key constraint(stud_id)
go
alter table stud_grade
add constraint FK_stud_id foreign key (stud_id)
references stud_info(stud_id)
4.9在stud_grade表中course_id列上创建名为CourseIndex的非聚集索引。
答:
create nonclustered index CourseIndex
on stud_grade (course_id)
4.10选择
学生基本信息表(stud_info)中的学号、姓名,选择学生成绩表(stud_grade)中的考试成绩创建一个名为stud_view的视图,
该视图中的记录还必须满足院系编号为01(计算机工程系)的条件。
答:
五、阅读下列SQL语句段,回答下列问题。
USE student
DECLARE @tablename nvarchar(256)
DECLARE tnames_cursor CURSOR
FOR
SELECT name FROM sysobjects
WHERE objectproperty(id,'IsUserTable')=1 ORDER BY name
OPEN tnames_cursor
FETCH NEXT FROM tnames_cursor INTO @table_name
WHILE (@@FETCH_STATUS = 0 )
BEGIN
EXEC sp_spaceused @tablename
FETCH NEXT FROM tnames_cursor INTO @tablename
END
CLOSE tnames_cursor
DEALLOCATE tnames_cursor
5.1 此例中的游标名是什么? 
5.2 此例中的游标类型是什么?
5.3 此例中的游标所指示的结果集是什么?
5.4 说明EXEC sp_spaceused @tablename语句的作用。
5.5 说明FETCH NEXT FROM tnames_cursor INTO @table_name语句的作用。
六、简答题
6.1 试述实体、实体型、实体集、属性、码、域的概念。
6.2 设某学校教学所需管理的信息有:课程号,课程名,学号,学生姓名,教师号,教师名,选用教材,成绩。
一个教师可以讲授多门课程,特定的一门课程规定只能由一位教师讲授;一名学生可以选修多门课程。
(1) 请给出教学信息的E-R模型;
(2) 将E-R模型转换成等效的关系模式(二维表)。
6.3 请列举现在市场上常见的几种数据库管理系统,并说明它们各自的特点。
6.4 备份数据库,备份数据库名为student_backup,存放位置为某一文件夹。
⑴ 创建逻辑磁盘 sp_addumpdevice建立
答:exec sp_addumpdevice 'disk' ,'student_backup'
'c:\program files\mircosoft sql server\mssql1.1\mssql\data\student_back.bak'
⑵ 使用backup database来备份数据库
backup database student to student_backup

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。