数据库中的存储过程

版权声明: https://blog.csdn.net/djs123DJS/article/details/80852295

    存储过程就是你在工作中经常用的一些语句,你把他存起来,并起名字,要再用的时候直接执行就行了,不用再重复编写

这个就像不重复造轮子一样的道理。把之前写好的拿来用,从而提高效率或做点标志不让自己忘记一样。

  

   

存储过程,带有逻辑的sql语句

之前的sql没有条件判断,没有循环

存储过程带上流程控制语句(if  while

存储过程特点

1)执行效率非常快!存储过程是在数据库的服务器端执行的!!!

2)移植性很差!不同数据库的存储过程是不能移植。

存储过程语法

-- 创建存储过程

DELIMITER $       -- 声明存储过程的结束符

CREATE PROCEDURE pro_test()           --存储过程名称(参数列表)

BEGIN             -- 开始

-- 可以写多个sql语句;          -- sql语句+流程控制

SELECT * FROM employee;

END $            -- 结束 结束符

-- 执行存储过程

CALL pro_test();          -- CALL 存储过程名称(参数);

参数:

IN:   表示输入参数,可以携带数据带存储过程中

OUT: 表示输出参数,可以从存储过程中返回结果

INOUT: 表示输入输出参数,既可以输入功能,也可以输出功能


编写存储过程 proc_comp , 比较数据库和操作系统两门课程的平均分的高低,并输出: XXX课程的平均分高

数据库内没有这两门课,以计算机文化学课程与高等数学课程代替

  1. create proc proc_comp
  2. as
  3. if(( select AVG(grade) from TSC join Course on TSC.Cno=Course.Cno
  4. where Cname= '计算机文化学'
  5. group by TSC.Cno)>( select AVG(grade) from TSC join Course on TSC.Cno=Course.Cno
  6. where Cname= '高等数学'
  7. group by TSC.Cno))
  8. print '计算机文化学课程的平均分高'
  9. else
  10. print '高等数学课程的平均分高'


创建存储过程 proc_student_info,用于检索你本人的学生数据

  1. create proc proc_student_info
  2. as
  3. select *
  4. from Student
  5. where Sno='1508100201'


猜你喜欢

转载自blog.csdn.net/djs123DJS/article/details/80852295