0


Java面试题-day26 数据库之存储过程和触发器

写在前面

  • 💖作者简介:大家好,我是 爪哇小白2021
  • 喜欢用文字记录生活,很乐于与大家交流各种技术,共同进步!
  • 点赞 ➕ 评论 ➕ 收藏 == 养成习惯
  • 💬 总结:希望你看完之后,能对你有所帮助,不足请指正!共同学习交流 🖊
  • ✉️ 人生的“最后的目的”究竟是什么? 答案可能是:人生根本没有目的。

存储过程和触发器

1) 存储过程和函数

存储过程重在处理数据,函数可以返回值

存储过程是procedure用户定义的一系列sql语句的集合,涉及特定表或其它对象 的任务,用户可以调用存储过程
函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定 用户表。

 存储过程和函数存在以下几个区别:

1) 一般来说,存储过程实现的功能要复杂一点,而函数的实现的功能针对性比较强。
存储过程,功能强大,可以执行包括修改表等一系列数据库操作;用户定义函数不能用于执行一组修改全局数据库状态的操作。

2)对于存储过程来说可以返回参数,如记录集,而函数只能返回值或者表对象。函数只 能返回一个变量;而存储过程可以返回多个。存储过程的参数可以有IN,OUT,INOUT三 种类型,而函数只能有IN类~~存储过程声明时不需要返回类型,而函数声明时需要描 述返回类型,且函数体中必须包含一个有效的RETURN语句。

3)存储过程一般是作为一个独立的部分来执行( EXECUTE 语句执行),而函数可以作为 查询语句的一个部分来调用(SELECT调用),由于函数可以返回一个表对象,因此它可 以在查询语句中位于FROM关键字的后面。 SQL语句中不可用存储过程,而可以使用 函数。

2) 存储过程的概念、优点(或特点),写一个简单的存储过程

存储过程: 是一组为了完成特定功能的SQL语句集,利用SQL Server所提供的T-SQL语言所编写的程序,经编译后存储在数据库中。

优点:

  1. 执行速度快。存储过程只在创造时进行编译,以后每次执行不需再重新编译,一般SQL语句每执行一次就编译一次
  2. 存储过程可重复使用
  3. 安全性高。(可设定只有某些用户才具有对指定存储过程的使用权)
  4. 当对数据库进行复杂操作时,可完成复杂的判断和较复杂的运算,可用存储过程封装起来
  5. 易于维护和集中控制。当企业规则变化时在服务器中改变存储过程即可,无须修改应用程序

简单的存储过程:

create proc select_query @year int
as
select * from tmp where year=@year

3) 触发器

  1. 触发器:触发器可以看成一个特殊的存储过程,存储过程是要显式调用去完成,而触发器可以自动完成。比如:当数据库中的表发生增删改操作时,对应的触发器就可以执行对应的PL/SQL语句块。
  2. 作用:维护表的完整性,记录表的修改来审计表的相关信息。 分为: DML触发器: 当数据库服务器中发生数据操作语言事件时执行的存储过程。分为:After触发器和Instead Of触发器 DDL触发器特殊的触发器,在响应数据定义语言(DDL)语句时触发。一般用于数据库中执行管理任务 DDL触发器是响应Create、 Alter或Drop开头的语句而激活

本文转载自: https://blog.csdn.net/m0_56368068/article/details/122485076
版权归原作者 爪哇小白2021 所有, 如有侵权,请联系我们删除。

“Java面试题-day26 数据库之存储过程和触发器”的评论:

还没有评论