数据库编程例题

161 阅读2分钟

例1、使用SQL语句在“学生选课”数据库中创建一个名为p_jiaoshi1的存储过程。该存储过程返回“教师”表中所有学历为“硕士研究生”的记录。

use 学生选课;

CREATE PROCEDURE p_jiaoshi1()

BEGIN

select * from teacher where tedu='硕士研究生';

END;

例2、使用SQL语句执行例1中创建的存储过程。

call p_jiaoshi1()

例3、使用SQL语句在“学生选课”数据库中创建一个名为p_jiaoshi2的存储过程。该存储过程能根据用户给定的学历值查询 “teacher”表中对应的记录

CREATE PROCEDURE p_jiaoshi2(in stedu varchar(20))

BEGIN

SELECT * from teacher where tedu=stedu;

END;

例4、用变量名传递参数值的方法执行存储过程p_jiaoshi2,分别查询学历为“本科”和“博士研究生”的记录。

set @stedu1='本科';

set @stedu2='博士研究生';

call p_jiaoshi2(@stedu1);

call p_jiaoshi2(@stedu2);

例5、用按给定表达式值传递参数的方式执行存储过程p_jiaoshi2,分别查找学历为“本科”和“博士研究生”的记录。

call p_jiaoshi2('博士研究生');

call p_jiaoshi2('本科');

例6、创建存储过程p_jiaoshi3,要求能根据用户给定的学历值,统计出“教师”表的所有教师中,学历为该值的教师人数,并将结果以输出变量的形式返回给调用者。

CREATE PROCEDURE p_jiaoshi3(in edu1 VARCHAR(10), OUT tnum INT)

BEGIN

select count(*) into tnum from teacher where tedu = edu1;

END

例7、执行存储过程p_jiaoshi3,统计教师表中学历为“硕士研究生”的教师人数。

call p_jiaoshi3('硕士研究生',@qq)

SELECT @qq

例8、 在“学生选课”数据库中创建一个名为p_jiaoshi4的存储过程,要求能根据用户给定的性别,统计“teacher”表中性别为该值的教师人数,并将结果以输出变量的形式返回给用户。

CREATE PROCEDURE p_jiaoshi4(in sexs VARCHAR(2), out num int)

BEGIN

SELECT COUNT(*) into num from teacher where tgender = sexs;

END

例9、执行存储过程p_jiaoshi4,统计教师表中性别为“男”的教师人数。

call p_jiaoshi4('男',@cc)

select @cc

例10、查看“学生选课”数据库存储过程的信息。

select * from mysql.proc where db='学生选课';

show PROCEDURE status where db = '学生选课';

show PROCEDURE status like '%jiaoshi%';

例11、查看存储过程p_jiaoshi3的定义语句等信息。

show create PROCEDURE p_jiaoshi3;

例12、使用SQL语句删除存储过程p_jiaoshi2。

drop PROCEDURE p_jiaoshi2;

例13、创建存储函数返回两个数相加之和。

调用该自定义函数的语句如下: