实验九 SQL语言综合练习
一、实验目的 的好坏。
SQL语言是数据库语言领域中的主流语言,对SQL语言的掌握程度直接关系到数据库学习
本次实验通过一个SQL语言的综合练习,对前面的学习的内容进行复习,并加以巩固,希望大家对SQL语言有一个较好的掌握。 二、实验步骤
1.打开数据库SQL Server 2000的查询分析器,用Create Table建表Student,表结构如下所示: 字段名 类型 长度 含义 ID Name Age Department Varchar Varchar Int Varchar 20 10 30 学号 姓名 年龄 所在系 含义 课程号 课程名 先行课 含义 学号 课程号 成绩 2.用Create Table建表Course,表结构如下所示: 字段名 类型 长度 CourseID CourseName CourseBefore Varchar Varchar Varchar 15 30 15 3.用Create Table建表Choose,表结构如下所示: 字段名 类型 长度 ID CourseID Score Varchar Varchar Dec 20 30 5,2 4.用INSERT语句向表Student中插入3条记录:
ID 00001 00002 00003 Name 张三 李四 王五 Age 20 19 21 Department 计算机系 计算机系 计算机系 5.INSERT语句向表Course中插入3条记录:
CourseID CourseName CourseBefore C1 C2 C3 计算机引论 PASCAL语言 数据结构 - C1 C2 6.用INSERT语句向表Choose中插入5记录:
ID 00001 00001 00001 00002 00002 CourseID C1 C2 C3 C1 C2 Score 95 80 84 80 85 7.用SELECT语句求计算机系学生的学号和姓名。
8.用SELECT语句求学生的学号、姓名、选的课程名及成绩。 9.用SELECT语句求C1课程的成绩低于张三的学生的学号和成绩。 10.用SELECT语句求选了C2课程并且也选了C3课程的学生的学号。
create table Student(ID varchar(20),Name varchar(10),Age int,Department varchar(30))
create table Course(CourseIDea varchar(15),CourseName varchar(30),CourseBefore varchar(15))
create table Choose(ID varchar(20),CourseID varchar(30),Score dec(5,2)) insert into Student values ('00001','张三',20,'计算机系') insert into Student values('00002','李四',19,'计算机系') insert into Student values('00003','王五',21,'计算机系') insert into Course values ('c1','计算机引论',null) insert into Course values('c2','pascal语言','c1') insert into Course values('c3','数据结构','c2') insert into Choose values ('00001','c1',95) insert into Choose values('00001','c2',80) insert into Choose values('00001','c3',84) insert into Choose values('00002','c1',80) insert into Choose values('00002','c2',85)
select ID,Name from Student where Department='计算机系'
select Student.ID,Name,Course.CourseName,Score from Student,Choose,Course where Student.ID=Choose.ID and Course.CourseIDea=Choose.CourseID
select Choose.ID,Choose.CourseID,Score,Student.Name from Choose,Student where Choose.CourseID='c1' and Score<
(select Score from Student,Choose where Choose.CourseID='c1'and Name='张三'and Student.ID=Choose.ID)
select Student.ID from Student,Choose
where Choose.CourseID='c2' and Student.ID in( select Student.ID from Student,Choose
where Choose.CourseID='c3'and Student.ID=Choose.ID)
实验十 存储过程、游标实验代码
1、使用不带参数的存储过程
(1)创建一个存储过程proc_ma,查询“学生表”中所有数学系男生的学号、姓名、性别、年龄和所在院系。 (2)执行存储过程
(3)修改存储过程,使其能够查询数学系学生的所有基本信息
2、带输入参数的存储过程
(1)创建一个存储过程proc_sex,使其能够查询“学生表”中男学生或女学生的学号、姓名、性别、年龄和所在院系
(2)执行存储过程
3、带输入/输出参数的存储过程
创建一个存储过程proc_age,使其能够根据学生姓名,查询学生年龄。(考虑当学生不存在时给出提示信息)
4、返回状态值的存储过程
(1)创建一个存储过程proc_status,使其能够根据学生姓名,查询学生的选课信息。
(如果没有输入学生姓名,返回状态码55;如果输入的学生姓名不存在,则返回状态码-155)
(2)执行存储过程:接收存储过程返回的状态码,如果返回的状态码为55则输出提示信息“没有输入名字!!”;如果返回的状态码为-155,则输出“没找到!!”。
5、定义一个游标
查看每位学生的考试平均成绩, 判断每位学生成绩的级别:平均成绩大于等于60分,显示获得学分,否则显示未获得学分。
6.定义一个游标查看每位学生的考试平均成绩, 判断每位学生成绩的级别:平均成绩小于60,显示不及格;平均成绩大于等于60小于70显示及格;平均成绩大于等于70小于90,显示良好;平均成绩大于等于90,显示优秀。
相关推荐: