SQL Sever 2005 习题与答案 联系客服

发布时间 : 星期五 文章SQL Sever 2005 习题与答案更新完毕开始阅读ee28118681c758f5f71f676c

1.使用SQL Server管理平台中创建studentsdb数据库,并修改studentsdb数据文件和日志的初始大小、最大文件大小、增长容量及文件路径。

2.使用Transact-SQL语句CREATE DATABASE创建studb数据库,指定数据文件大小、最大文件大小、增长容量及文件路径。

3.使用Transact-SQL语句ALTER DATABASE完成修改数据库设置、增加日志文件及更名等操作。

4.使用SQL Server管理平台中在studentsdb数据库中创建数据表student_info(其数据结构如图1-2所示),并增加部分数据。

5.使用Transact-SQL语句CREATE TABLE在studentsdb数据库中创建grade表,其数据结构如图1-4所示。

6.使用Transact-SQL语句ALTER TABLE修改grade表的“学号”列,使之为非空。 7.使用Transact-SQL语句ALTER...ADD为studentsdb数据库的grade表添加一个名为“备注”的数据列,其数据类型为VARCHAR(20)

8.使用Transact-SQL语句INSERT INTO...VALUES向studentsdb数据库的grade表插入数据:学号为0004,课程编号为0001,分数为80。

9.使用Transact-SQL语句DELETE删除studentsdb数据库的grade表中学号为0004的成绩记录。

10.使用Transact-SQL语句UPDATE将studentsdb数据库的grade表中学号为0003、课程编号为0005的分数修改为90的成绩记录。

1.在studentsdb数据库中使用SELECT语句进行基本查询。

(1) 在student_info表中,查询每个学生的学号、姓名、出生日期信息。 (2) 查询学号为0002 的学生的姓名和家庭住址。 (3) 找出所有男同学的学号和姓名。

2.使用SELECT语句进行条件查询。

(1) 在grade表中查找分数在80~90范围内的学生的学号和分数。 (2)在grade表中查询课程编号为0003的学生的平均分。 (3)在grade表中查询学习各门课程的人数。 (4)查询所有姓“张”的学生的学号和姓名。

3.对student_info表,按性别顺序列出学生的学号、姓名、性别、出生日期及家庭住址,性别相同的按学号由小到大排序。

4.使用GROUP BY查询子句列出各个学生的平均成绩。

5.在student_info表中查找与“刘卫平”性别相同的所有学生的姓名、出生日期。

6.使用IN子查询,查找所修课程编号为0002、0005的学生学号、姓名、性别。

7.查询学习“C语言程序设计”课程的学生的学号、姓名、分数。

8.查询每个学生的所选课程的最高成绩,要求列出学号、姓名、课程编号、分数。

9.查询所有学生的总成绩,要求列出学号、姓名、总成绩,没有选修课程的学生的总成绩为空。

10.为grade表添加数据行: 学号为0004、课程编号为0006、分数为76。查询所有课程的选修情况,要求列出课程编号、课程名称、选修人数,curriculum表中没有的课程列值为空。

1.使用Transact-SQL语句为studentsdb数据库的student_info表和curriculum表创建主键索引。

2.使用SQL Server管理平台按curriculum表的课程编号列创建唯一性索引。

3.使用Transact-SQL语句为studentsdb数据库的grade表的“分数”字段创建一个非聚集索引,命名为grade_index。

4.为studentsdb数据库的grade表的“学号”和“课程编号”字段创建一个复合唯一索引,命名为grade_id_c_ind。

5.使用SQL Server管理平台对grade表创建一个聚集索引和唯一索引。

6.使用SQL Server系统存储过程sp_helpindex查看grade表和student_info表上的索引信息。

7.使用Transact-SQL语句DROP INDEX删除索引grade_ind。

8.在studentsdb数据库中,以student_info表为基础,使用SQL Server管理平台建立名为v_stu_i的视图,使视图显示学生姓名、性别、家庭住址。

9在studentsdb数据库中,使用Transact-SQL语句CREATE VIEW建立一个名为v_stu_c的视图,显示学生的学号、姓名、所学课程的课程编号,并利用视图查询学号为0003的学生情况。

10.基于student_info表、curriculum表和grade表,建立一个名为v_stu_g的视图,视图中具有所有学生的学号、姓名、课程名称、分数。

11.使用视图v_stu_g查询学号为0001的学生的所有课程与成绩。

12.使用Transact-SQL语句修改视图v_stu_c,使之显示学号、姓名、每个学生所学课程数目。

13.利用视图v_stu_i为student_info表添加一行数据:学号为0015、姓名为陈婷、性别为女。

14.利用视图v_stu_g修改姓名为刘卫平的学生的高等数学的分数为84。

15.使用Transact-SQL语句DROP VIEW删除视图v_stu_c和v_stu_g。

1.为studentsdb数据库创建一个规则,限制所输入的数据为7位0~9的数字。

2.创建一个规则stusex_rule,将其绑定到stu_phone表的“性别”列上,保证输入的性别值只能是“男”或“女”。

3.使用系统存储过程sp_help查询stusex_rule规则列表,使用sp_helptext查询stusex_rule规则的文本,使用sp_rename将stusex_rule规则更名为stu_s_rule。

4.为student_info表添加一列,命名为“院系”,创建一个默认对象stu_d_df,将其绑定到student_info表的“院系”列上,使其默认值为“信息院”,对student_info表进行插入操作,操作完成后,删除该默认对象。

5.在studentsdb数据库中用CREATE TABLE语句创建表stu_con,并同时创建约束。表结构为:stu_con(学号char(4),姓名char(8),性别char(2),出生日期datatime)。约束要求为:将学号设置为主键(PRIMARY KEY),主键名为pk_sid;为姓名添加唯一约束(UNIQUE),约束名为uk_name;为性别添加默认约束(DEFAULT),默认名称为df_sex,其值为“男”。为出生日期添加属性值约束(CHECK),约束名为ck_bday,其检查条件为:出生日期>'1988-1-1'。

6.在查询设计器中,为studentsdb数据库的grade表添加外键约束(FOREIGN KEY),要求将“学号”设置为外键,参照表为student_info,外键名称为fk_sid。

1.在grade表中,使用适当函数找出“高等数学”课程的最高分、最低分和平均分。

2.查询grade表。如果分数大于等于90,显示A; 如果分数大于等于80小于90,显示B;如果分数大于等于70小于80,显示C;如果分数大于等于60小于70,显示D; 其他显示E。

3.编写代码计算并显示@n=1+2+3+?+20。

4.编写代码计算并显示1~100之间的所有能被7整除的数的个数及总和。

5.编写程序,定义一个游标cur_stu,通过读取cur_stu数据行,计算student_info表中男、女的人数。

1.使用studentsdb数据库中的student_info表、curriculum表、grade表。

① 创建一个存储过程stu_grade,查询学号为0001的学生的姓名、课程名称、分数。 ② 执行存储过程stu_grade,查询0001学生的姓名、课程名称、分数。 ③ 使用系统存储过程sp_rename将存储过程stu_grade更名为stu_g。

2.使用student_info表、curriculum表、grade表。 ① 创建一个带参数的存储过程stu_g_p,当任意输入一个学生的姓名时,将从3个表中返回该学生的学号、选修的课程名称和课程成绩。

② 执行存储过程stu_g_p,查询“刘卫平”的学号、选修课程和课程成绩。 ③ 使用系统存储过程sp_helptext,查看存储过程stu_g_p的文本信息。

3.使用grade表。① 创建一个存储过程stu_g_r,当输入一个学生的学号时,通过返回输出参数获取该学生各门课程的平均成绩。② 执行存储过程stu_g_r,输入学号0002。③ 显示0002号学生的平均成绩。

4.输入以下代码,复制student_info表命名为stu2,为stu2表创建一个触发器stu_tr,当stu2表插入一条记录时,为该记录生成一个学号,该学号为学号列数据的最大值加1。 --复制student_info表命名为stu2 SELECT * INTO stu2 FROM student_info GO

--为stu2表创建一个INSERT型触发器stu_tr CREATE TRIGGER stu_tr ON stu2 FOR INSERT AS

DECLARE @max char(4)

SET @max=(SELECT MAX(学号) FROM stu2) SET @max=@max+1