什么是存储过程?
存储过程是为了完成特定功能的SQL语句集合,存储在数据库中,用户通过指定存储过程的名称并给出参数来执行。
优点:
1、方便修改。为什么这么说呢,是因为存储过程是存储在数据库中的,如果需要涉及到修改SQL语句,那么数据库专业人员只需要去修改数据库中的存储过程就可以,对程序毫无影响,如果用SQL语句的话,SQL语句是写在程序中的,如果涉及到修改SQL语句,那么就需要去修改源程序。
2、存储过程比SQL语句执行要快;
噢?这是为什么呢?
首先存储过程是为了完成特定功能的SQL语句的集合,如果为了完成某一功能,使用了大量的SQL语句,那么执行存储过程只执行一次就可以,而SQL语句呢,则是需要执行多个。
3、存储过程比SQL语句节省资源。
每执行一次SQL语句就要打开一次数据库连接,为了完成某一功能而使用了大量SQL语句,所以数据库连接开关进行了多次,存储过程执行一次就可,数据库连接也是开关一次即可。
在这些存储过程的优点中,有一个共同点,那就是为了完成某一功能要使用大量的SQL语句,如果只有一条SQL语句的话,就不推荐使用存储过程了,因为只有一条SQL语句的话,单条SQL语句的执行要比存储过程快,因为存储过程再执行的时候有一个预编辑的环节。
参数类型:
in:只读,默认模式,参数在过程中只能用来读取
out:只写,参数在过程中只能用来赋值
in out :可读可写
举例:
存储过程和触发器的区别:
1、存储过程可以直接使用exec或execute来直接调用或执行存储过程,而触发器只能是设定好的触发相关事件时,会自动执行触发器。
2、存储过程有参数,而触发器没有
3、存储过程可以有返回值,而触发器无法返回值
4、存储过程就好比我们编程中的函数或者方法,触发器就好比是事件,单击事件、加载事件等等。