数据库学习笔记(第五章)

第五章:高级SQL

1.在这里插入图片描述

2.SQL注入:
在这里插入图片描述

3.JDBC的事物控制
在这里插入图片描述

4.设置ODBC
用户DSN:
把相应的配置保存到windows注册表中, 仅供创建该DSN的用户登录。

系统DSN:
把相应的配置保存到系统的注册表中,它与用户DSN不同的是允许登录过服务的用户使用。

文件DSN:
把相应的配置保存到硬盘某个文件中,文件DSN允许所有登录过的服务的用户使用,并且为没有登录过服务的用户提供数据库的DSN的访问支持。

5.外部语言程序
外部语言函数/过程的优点
对许多操作更有效,有更强的表达能力

缺点:
①实现功能的代码可能需要加载到数据库系统并在数据库系统的地址空间中执行
②数据库结构意外损坏的风险
③安全风险,允许用户访问未经授权的数据
④还有其他的方式,这些方式有好的安全性,但是有性能比较差的潜在风险
⑤当效率比安全更重要时,直接在数据库系统的空间执行

6.函数与存储过程的区别:
①返回值的区别,函数有1个返回值,而存储过程是通过参数返回的,可以有多个或者没有。
②调用的区别,函数可以在查询语句中直接调用,而存储过程必须单独调用。
总之,函数一般情况下是用来计算并返回一个计算结果,而存储过程一般是用来完成特定的数据操作(比如修改、插入数据库表或执行某些DDL语句等等)

7.触发器
触发器是一条语句,当满足条件时,它自动被系统执行

要设置触发器机制,必须要:
指明什么条件下执行触发器
指明触发器执行时的动作

8.构建触发器:在这里插入图片描述

9.何时不用触发器:
意想不到的执行触发器的风险,例如:
①从一个备份中加载数据
②在一个远程站点复制更新
③触发器可以在执行此类动作之前被禁用

使用触发器的其他风险:
①导致引发触发器的关键事务失败的错误
②级联执行

10.解决外部语言程序安全问题:
使用沙盒技术:使用一个安全的语言(如Java),它不能用于访问/损坏数据库代码的其他部分

或者,在一个单独的过程里运行外部语言函数/程序,不会对数据库进程的内存进行访问 :通过进程间通信传递参数和结果

END

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值