ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引
WHEN子句说明触发约束条件。Condition为一个逻辑表达时,其中必须包含相关名称,而不能包含查询语句,也不能调用PL/SQL函数。WHEN子句指定的触发约束条件只能用在BEFORE和AFTER行触发器中,不能用在INSTEAD OF行触发器和其它类型的触发器中。
-- 创建记录操作事件的表
CREATE TABLE event_table(
event VARCHAR2(50),
time DATE
);
-- 创建触发器
CREATE OR REPLACE TRIGGER tr_startup
AFTER STARTUP
ON DATABASE
BEGIN
INSERT INTO event_table(event, time)
VALUES(ora_sysevent, SYSDATE);
END;
- 不能对rownum使用>(大于1的数值)、>=(大于1的数值)、=(大于1的数值),否则无结果。
2.在使用rownum时,只有当Order By的字段是主键时,查询结果才会先排序再计算rownum,但是,对非主键字段(如:name)进行排序时,结果可能
就混乱了。出现混乱的原因是:oracle先按物理存储位置(rowid)顺序取出满足rownum条件的记录,即物理位置上的前5条数据,然后在对这些数据按照Order By的字段进行排序,而不是我们所期望的先排序、再取特定记录数。
通常有三种执行不同类型的动态SQL方法:
- 使用EXECUTE IMMEDIATE语句。
除不能处理多行查询语句,其他的动态SQL包括DDL语句,DCL语句以及单行的SELECT查询都可以。 - REF CURSOR动态游标,使用OPEN-FOR,FETCH,CLOSE。
能处理动态的多行查询操作,必须要使用OPEN-FOR语句打开游标,使用FETCH语句循环提取数据,最终使用CLOSE语句关闭游标。 - 使用批量BULK COLLECT执行动态SQL。
通过使用批量动态SQL语句,可以加快SQL语句处理,进而提高PL/SQL的性能。
1. 视图简介
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。
2. 创建视图
3. 视图的优点
4. 索引
为了提高查询的速度,当用户对查询速度不满意而需要对数据库的性能进行调校时,优先考虑建立索引。
转载于:https://www.cnblogs.com/zzwx/p/4604200.html
ORACLE数据库之PL/SQL触发器、rownum、动态SQL、数据库之视图与索引相关推荐
- 哈工大数据库系统(上):嵌入式SQL语言之动态SQL(十)课后测验与作业
文章目录 前引 第十章课后习题 前引 关于这部分 我的JDBC基本上没怎么听 都跳过了 - - 因为真的记不住 不是叫记不住吧 是因为我现在连基本的连接 数据库操作都没有怎么练 就开始到嵌入式的语言 ...
- Mybatis中XML的文件SQL语句与动态sql标签(trim|where|set|foreach|if|choose|when|otherwise|bind)
在xml中写sql语句有很多的规范.标准,有时候想要找对应的例子还得翻一翻以前的代码,这里干脆对遇到的情况做个记录. 一,新建XML文件 <?xml version="1.0" ...
- MyBatis 一个动态sql的问题(动态SQL基于OGNL表达式)<if test=“state == ‘0‘“>单个的字符要使用双引号,改为<if test=‘state == “1“‘>或
MyBatis 一个动态sql的问题(动态SQL基于OGNL表达式) <if test="state == '0'"> 单个的字符要使用双引号,改为<if tes ...
- sql 动态写入数据库字段_批处理写入,动态SQL和参数化SQL,数据库的性能如何?...
sql 动态写入数据库字段 最有效的数据库优化之一是批处理写入. 批处理写入受大多数现代数据库和JDBC标准的一部分支持,并且受大多数JPA提供程序支持. 普通数据库访问包括在单独的数据库/网络访问中 ...
- 嵌入式sql语句oracle,第十讲 嵌入式SQL语言之动态SQL
动态SQL的概念 静态SQL特点:SQL语句在程序中已经按要求写好,只需要把一些参数通过变量(高级语言程序语句中不带冒号) 传送给嵌入式SQL语句即可(嵌入式SQL语句中带冒号) 例如: SpecNa ...
- oracle 执行带参数的sql语句_Oracle动态SQL语句的简单执行
在使用ODP.NET进行Oracle编程时,有时候SQL语句非常复杂,需要采用动态构造查询语句的情况,有两种方法可以构造动态的SQL语句,并执行返回结果集. 1.在数据访问层构造SQL语句 例如下面的 ...
- java回顾:MyBatis参数、sql片段、动态sql、高级查询
目录 一.MyBatis参数 SqlSessiong工具类 1.映射文件配置-入参 1.1 parameterType入参 1.2 单个入参,变量名任意定义: 1.3 多个入参,解决方案: 1.4 p ...
- SQL中的动态SQL
在介绍动态SQL前我们先看看什么是静态SQL 静态SQL 静态 SQL 语句一般用于嵌入式 SQL 应用中,在程序运行前,SQL 语句必须是确定的,例如 SQL 语句中涉及的列名和表名必须是存在的.静 ...
- Mysql动态sql之mybatis动态sql
mysql动态sql想必大家都了解了 举个列子:现在有如下sql语句 select id,name from animals where id = 1 and name ="老虎" ...
- sql语句和动态sql语句
mybatis常用静态sql和动态sql 文章目录 mybatis常用静态sql和动态sql 静态sql 1.select 标签 2.insert, update 和 delete 3.sql标签 动 ...
最新文章
- datetime处理日期和时间
- Python自动化开发 - 字符编码、文件和集合
- W10中给文件夹添加备注或者注释
- python开两个守护线程_python 守护线程
- Nvidia CUDA初级教程6 CUDA编程一
- Maven(2)--- 环境配置
- Linux中的configure、pkg-config、pkg_config_path
- [R语言绘图]条状图barplot
- java中的锁有哪几种
- 使用MATLAB搭建用于时间序列分类的1DCNN模型
- Go:Cos求余弦(附完整源码)
- Cannot find ‘xxx‘ in scope
- NeroTrace Pro追踪工具
- python线性方程组求解_python求解方程组的三种方法
- Java使用策略模式替换掉 if else
- Java 搭建高级画图板
- 2019社交电商十大平台集锦
- 记一笔(mybatis) Could not find a parent resultmap with id xx
- python 读取 excels中的sheet
- 输入一行字符,分别统计其中英文字母、空格、数字和其他字符的个数。
热门文章
- 吵架后一个老公的检讨书(超经典)
- 如何利用CIC滤波器、CIC补偿滤波器和半带滤波器设计一个高频数字抽取滤波器
- c语言 sizeof length,size()、length ()和sizeof()的区别
- 传播路径可训练的神经网络(云上人二代)
- 如何只训练网络中的全连接层
- 比较器 Comparable 与compartor 的区别及理解
- 想成为牛逼程序员? 先数数编程语言之父们的头发
- linux下uptime命令详解
- 使用HtmlGenericControl控件动态产生一些HtmlControls
- wayos利用easyradius实现WEB认证页面的记住密码及到期提醒功能