资源描述
实验报告
学院(系)名称:计算机与通信工程学院
姓名
范
学号
2009
专业
计算机科学与技术
班级
中加4班
实验项目
数据库控制与编程
课程名称
数据库系统概论
课程代码
0660096
实验时间
2011年11月29日
实验地点
主校区7—219
批改意见
成绩
教师签字:
一.实验目的
以一种开发环境为例,使学生初步掌握通过编程的方式对数据库进行操作,为进行数据库课程 设计做准备。
二. 实验工具软硬件环境
编写访问数据库的应用程序来对数据库进行各种数据操作,编程工具由导师指定,学生可以使用指导老师指定的工具,也可自己选择编程工具。
软件环境:Windows 2000MS SQL Server
硬件环境:P4 2.4GHz 256内存
三. 实验内容和要求
所有的SQL操作均在自己建立的TEMP数据库里进行,根据以下要求认真填写实验报告,并且提交源程序,保证可正确编译运行。使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
I.使用SQL对数据进行完整性控制,用实验验证:当操作违反了完整性约束条件的时候,系统是如何处理的。
II.熟悉存储过程的建立及使用,熟悉带输入参数和输出参数的存储过程。
a) 查询学生表中的所有学生,并实现调用。
b) 修改学号为@sno学生的姓名,性别,年龄,系别,并实现调用。
c) 向学生表中插入学生,并实现调用。
d) 查询姓名为@sname选修的数据库课程的成绩,并实现调用。
e) 查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。 III.利用指定的编程语言完成一个简单程序,要求具有对数据的增加、修改和删除操作;基于一个给定的java应用程序,熟悉掌握建立ODBC和利用ODBC来凝结数据库的编程方法,建立一个应用程序,具有向学生、课程、选课表增加修改删除记录的功能,选取其中一个功能用存储过程实现。需要接取程序运行界面。
四. 实验步骤
1.使用SQL对数据进行完整性控制和检验
完整性约束
如图所示,建立表是约束学生姓名不能为空,性别只能在男女之间二选一
下面进行完整性检验插入操作
违背约束条件导致错误
正常执行
姓名不能为空
以上说明当操作违反了完整性约束条件的时候,系统报将截断字符串或二进制数据。错处理
2.存储过程的建立及使用带输入参数和输出参数的存储过程
创建存储过程并且带有参数入出
查询学生表中的所有学生,并实现调用。
新建存储过程getStudentList查询所有学生信息
源代码:
CREATE PROCEDURE getStudentList
as
begin
SELECT * FROM Student
end
go
存储过程建立完毕
EXEC getStudentList;
执行存储过程getStudentList
.修改学号为@sno的全部信息
源代码:
CREATE PROCEDURE upd(@sno CHAR(9))
AS
begin
UPDATE Student
SET sno='200956273',sname='徐梦佳',sex='女',age='21',dept='CS'
WHERE sno=@sno
end
go
接下来执行该存储过程,修改学号为@sno=200215122
向学生表中插入学生,并实现调用
/*源代码:
CREATE PROCEDURE
inser(@sno CHAR(9),@sname CHAR(20),@sex CHAR(2),@age SMALLINT,@dept CHAR(20))
AS
INSERT
INTO
Student(sno,sname,sex,age,dept)
VALUES(@sno,@sname,@sex,@age,@dept);*/
调用存储过程inser
调用成功!
信息成功插入!
源代码:
CREATE PROCEDURE
checkgrade(@sname name CHAR(20))
AS
SELECT @sname,grade
FROM Student,SC
WHERE Student.sno=SC.sno AND cno=
(SELECT cno
FROM Course
WHERE cname='数据库'
);
.查询姓名为@sname选修的数据库课程的成绩,并实现调用
调用checkgrade EXEC checkgrade '徐梦佳';
.查询选修了课程名为@cname并且成绩高于该门课程平均分的学生学号和成绩,并实现调用。
源代码:
CREATE PROCEDURE larger_AVG(@cname CHAR(40))
AS
SELECT cname,sno,grade
FROM Course,SC
WHERE Co=SC.cno AND cname=@cname AND grade>
(SELECT AVG(grade)
FROM SC
WHERE cno=
(SELECT cno
FROM Course
WHERE cname=@cname
)
);
调用 larger_AVG查询数据库课程 数据库中建立的存储过程
成绩高于该门课程平均分的学生学号和成绩
III.基于一个给定的java应用程序
选取插入操作,调用存储过程inser来插入信息
查看插入结果
调用存储过程插入操作成功!
大学啊不错啊,好好学习,不要耽误了青春,但是是这个专业坑爹啊,,找好自己的方向,不要被这个专业误导了啊,,
理工的学妹,学弟们,你说呢,,哈哈哈哈,嘿嘿联系
展开阅读全文