sql server实验报告模板.doc
实验名称:创建数据表 实验时间:2012.9.19实验目的:1.掌握通过SSMS创建数据表的方法。2.掌握通过T-SQL创建数据表的方法。3.掌握主键与外键的设置方法。实验环境:Windows 2003,SQL Server 2005实验设计或实验原理:在上节课创建的数据库中创建以下表:系部表、专业表、班级表(具体表结构见实验文档中)实验内容:create table 系部(系部代码 char(2) not null constraint pk_xibudaima primary key,系部名称 varchar(30) not null,系主任 varchar(8)create table 专业(专业代码 char(4) not null constraint pk_zhuanyedaima primary key,专业名称 char(20) not null,系部代码 char(2) not null constraint fk_xibudaima references 系部(系部代码)create table 班级(班级代码 char(9) not null constraint pk_banjidaima primary key,班级名称 varchar(20) not null,专业代码 char(4) not null constraint fk_zhuanyedaima1 references 专业(专业代码),系部代码 char(2) not null constraint fk_xibudaima2 references 系部(系部代码),备注 varchar(50)实验名称:数据的高级查询 实验时间:2012.11.7实验目的:1、掌握连接查询的语法及使用。2、掌握带“IN”谓词的子查询。实验环境:Windows 2003,SQL Server 2005实验设计或实验原理:在student数据库完成下列查询:1、 查询 “06级网络技术班”班级的学生,显示学生学号、姓名、班级名称和班级代码。(连接查询)2、 查询不是“06级软件工程班”的学生信息。3、 查询和“孙辉”在同一个班级学习的学生信息(提示:用带IN的子查询方法)。4、 查询选修了“网络营销”课程的学生学号、姓名 (试用带IN的子查询方法求解) 。实验内容:1、select 学生.学号,姓名,班级名称,班级.班级代码from 学生join 班级on 学生.班级代码=班级.班级代码where 班级名称='06级网络技术班'2、select *from 学生where 班级代码in (select 班级代码from 班级where 班级名称!='06级软件工程班')3、select *from 学生where 班级代码in(select 班级代码from 班级where 班级代码in(select 班级代码from 学生where 姓名='孙辉')4、select 学号,姓名from 学生where 学号in(select 学号from 课程注册 where 课程号in(select 课程号from 课程 where 课程名称='网络营销')实验名称:存储过程的创建及使用 实验时间:2012.12.12实验目的:1、加深存储过程的概念以及作用的理解。2、掌握不带参数、带参数的存储过程的创建和执行方法。实验环境:Windows 2003,SQL Server 2005实验设计或实验原理:1、 student数据库中,创建一个带参数的存储过程st_chengjichaxun,该存储过程用于当输入任意一个成绩时,将从三个表(学生表、课程注册表、课程表)中查询出大于或等于该成绩的学生学号、姓名、课程名和课程成绩。创建完成后,执行该存储过程,查询获得学分的学生(即成绩大于或等于60)。查询不是“06级软件工程班”的学生信息。2、 student数据库中,创建一个存储过程st_dkcjfx,当任意输入一个存在的课程名称时,该存储过程将统计出该门课程的平均成绩、最高成绩和最低成绩。3、 某一学生管理系统中的学生表结构如下:学生(学号,姓名,性别,年龄,系别)现创建一存储过程InfoByName,通过输入参数学生姓名(如“张然” ),筛选出该学生的基本信息,对不存在此学生姓名的输入值,必须作一检测,打印信息“对不起,你输入的学生姓名不存在,请重新核对再输入!”。实验内容:1、create proc st_chengjichaxun cj tinyintasselect 学生.学号,姓名,课程名称,成绩from 学生,课程注册,课程where 学生.学号=课程注册.学号and 课程.课程号=课程注册.课程号and 成绩>=cjexec st_chengjichaxun '60'2、create proc st_dkcjfx kcmc char(20)as select avg(成绩) as 平均成绩,max(成绩) as 最高成绩,min(成绩) as 最低成绩from 课程注册where 课程号in(select 课程号from 课程where 课程名称=kcmc)exec st_dkcjfx 网络营销3、create proc InfoByName xm varchar(8)asif (select count(*) from 学生where 姓名=xm)='0')print '对不起,你输入的学生姓名不存在,请重新核对再输入!'elseselect * from 学生where 姓名=xmexec InfoByName 小王