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开头的语句而激活

  • 18
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 19
    评论
评论 19
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爪哇小白2021

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值