数据库的存储过程
存储过程与函数的区别:
1.一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
2.对于存储过程来说可以返回参数(output),而函数只能返回值或者表对象。
3.存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用,由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
存储过程的优点:
1.执行速度更快 – 在数据库中保存的存储过程语句都是编译过的
2.允许模块化程序设计 – 类似方法的复用
3.提高系统安全性 – 防止SQL注入
4.减少网络流通量 – 只要传输存储过程的名称
其是一种特殊的存储过程。一般的存储过程是通过存储过程名直接调用,而触发器主要是
通过事件(增、删、改)进行触发而被执行的。其在表中数据发生变化时自动强制执行。
常见的触发器有两种:after(for)、instead of,用于insert、update、delete事件。
after(for) 表示执行代码后,执行触发器
instead of 表示执行代码前,用已经写好的触发器代替你的操作
触发器可以查询其他表,而且可以包含复杂的 SQL语句。它们主要用于强制服从复杂的业务规则或要求。例如:您可以根据客户当前的帐户状态,控制是否允许插入新订单。
触发器也可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。