MySQL存储过程练习
- 格式:docx
- 大小:362.72 KB
- 文档页数:9
存储过程实验
一、实验要求:
1.理解存储过程的概念
2.掌握存储过程的语法格式、使用方法
3.掌握存储过程的创建、执行
二、实验内容:
(注意:做一下实验需要首先建立数据及其相应的表,并输入一些记录)
1.实验1:创建一个存储过程,实现查询表student中的记录信息,并执行存储过
程
(1)创建存储过程: begin
select * from student
end
(2)执行存储过程:运行 sp_liststudent
(3)执行结果如下:
2.实验2.创建一个存储过程,根据给定的学生学号返回该学生的姓名
(1)创建存储过程:
CREATE PROCEDURE test5( IN id int)
BEGIN
SELECT * from student s WHERE s.id=id;
END
(2)执行存储过程:CALL test5(2)
执行结果如下:
3.实验3. 创建一个存储过程,根据班级的编号,统计该班人数,并将人数以输出
变量返回给用户。
(1)创建存储过程:
CREATE PROCEDURE test00( IN roomid int)
BEGIN
SELECT COUNT(*) from student s WHERE s.roomid=9;
END
(2)执行存储过程:CALL test00(2)
(3)执行结果如下:
4.实验4:创建一个存储过程查询学号为“020101”的学生的平均分是否超过了85
分,若超过则输出“ X X 考出了高分”,否则输出“XX 考的一般”。(1)创建存储过程:
CREATE PROCEDURE test05()
BEGIN
IF (SELECT score from student WHERE id=1)>85 THEN
SELECT '考得好';
ELSE
SELECT '考得不好';
END IF;
END
(2)执行存储过程: CALL test05()
(3)执行结果如下:
实验5. 创建一个存储过程,对表student增加两条记录,
(1)创建存储过程:
CREATE PROCEDURE test07()
BEGIN
INSERT INTO student VALUES('4','马','4','1','100');
INSERT INTO student VALUES('5','苏','5','0','90');
SELECT * FROM student;
END
(2)执行存储过程:CALL test07()
(3)执行结果如下:
实验6. 请撰写一个存储过程:输出各班学生的平均成绩(1)创建存储过程:
CREATE PROCEDURE test10()
BEGIN
SELECT AVG(score) from student WHERE roomid=9;
END
(2)执行存储过程:CALL test10()
(3)执行结果如下
5. 实验7. 请撰写一个存储过程:能根据用户输入的学号,输出学生的姓名、年龄
到两个参数变量中,以供其它程序使用。
(1)创建存储过程:
CREATE PROCEDURE test08(IN id INT) BEGIN
SELECT sex,score from student s WHERE s.id=id; END
(2)执行存储过程:CALL test08(1) (3)执行结果如下
6.实验8. 请撰写一个存储过程,求1+2+3+…100的值。