Oracle数据处理

DML语言

&:地址符;(PrepareStament)

批处理:插入--------一次将10号部门的员工插入新的表中;

其不必书写values语句;子查询中的值列表应与insert中子句中的列名对应;

delete与truncate的区别:1;delete逐条删除,而truncate先摧毁表,然后在新建表;

2:主要区别是两种不同的语言;

3;delete不会释放空间,而truncate可以;

4:delete删除时会产生碎片,而truncate不会产生;

5:delete可以闪回,而truncate不可以闪回;

set feedback off 命令:不显示执行语言;

执行硬盘上的sql脚本命令:如:@c:\sql.sql; 测试得出:delete操作速度快;

DCL语言

Oracle的事物是自动开启,手动提交(显示:commit;隐式:正常退出,ddl语句) 回滚(显示:rollback;隐式:非正常退出,断电,宕机);

通过保存点savepoint能够更好控制事物;创建保存点的命令:savepoint 保存点名;

Oracle支持的事物级别:READ COMMITED(default),SERIALIZABLE,READ ONLY;

DDL语言

对象有12个

表:创建表时需要权限,空间;我们可以通过子查询快速建表,可以通过add,modfiy,drop,rename实现对表字段的修改;

Oracle的回收站:show recyclebin 查看回收站;purge recyclebin 清空回收站;并不是每个用户都有回收站,管理员没有回收站,普通用户才会有回收站;

如何将回收站的表取回?---闪回课程

表的约束:not null,unique,primary key,foreign key,check;一般创建表和创建约束分开,便于阅读;

约束的例子:

create table student

(

pid number constraint student_PK primary key,

sname varchar2(20) constraint student_name_notnull not null,

gender varchar2(2) constraint student_gender check (gender in(‘男‘,‘女‘)),

email varchar2(20) constraint student_email_unique unique

constraint student_email_notnull not null,

deptno number constraint student_FK references dept(deptno) on delete cascade

)

视图:从表中抽出的逻辑上相关的数据集合;目的:简化查寻;

不建议:通过视图对表的修改;

序列:sequences主要作用是给表的主键提供值,其有两个属性nextval,currval;

其特点:其是个数组,存在于内存当中;

数据不连续:回滚,系统异常--停电,多张表使用一个序列;

索引:提高查询速度;

如:create index myindex on emp(deptno,job);

同义词:别名

Oracle的plsql

操作Oracle最快的语言是plsql;

变量的类型:基础类型,引用性变量(%type),记录性变量(%rowtype);

其赋值方式有两种:“:=”和into关键字;

set serveroutput on 命令:打开控制台打印输出; accept num prompt ‘请输入‘命令是:接受键盘上输入的内容;

plsql的if语句必须以 if end结束;

光标:cursor用于储存一个查询返回的多行数据;其属性:%isopen是否打开;%rowcount记录数;%notfound 没有记录;

使用cursor首先open和最后close;Oracle最多支持300个光标;show paremeters 查看参数设置;

案例:使用光标查询员工的姓名和薪水,并打印;给员工涨工资,总裁1000,经理800,其它400;其也需要手动提交事物;

带参数的光标:其定义,打开光标时带参数,其它用法和不带光标的用法相同;

案例:查询某个部门的员工姓名

例外:系统自带的例外,自定义的例外;在Java中异常是向上处理机制,而plsql不能向上抛,

在java中try。。catch。。finally 而plsql中只有try。。catch其写法是exception when 。。then。。。

在declare中自定义例外:例外名 exception; 使用raise跑出异常,异常会帮你自动关闭光标;

实例一:统计每年入职的人数;

实例二:为员工涨工资,从最低工资调起没人涨10%,但工资总额不能超过5万元;请计算涨工资的人数和涨工资后的工资总额,并输出涨工资人数和工资总额;

=====================================================

存储过程(没有返回值),存储函数(有返回值),触发器

Java不能直接调用plsql,而是写成存储过程,存储函数,让后用Java来调用;

创建存储过称:create[ or replace] procedure 过程名(参数列表) as  plsql子程序体;参数类型及输入输出要标明;不要在存储函数,存储过程中不要提交事物;

调用存储过程的方法:exec 过程名();在另一个plsql中调用:begin 过程名();end;这两种方法;

创建存储函数:create[ or replace] procedure 过程名(参数列表) return 返回值类型 as  plsql子程序体;

输出参数适用out,存储过程,存储函数都可以返回一个或者多个参数,其二者基本上没有区别;

实例一:查询某个部门中,所有员工的所有信息

需要包头和包体:

当返回的结果是集合,可以使用光标来实现;

时间: 2024-10-09 20:34:55

Oracle数据处理的相关文章

Oracle Day05 集合与数据处理

1.集合 --集合操作: 并集.交集.差. select deptno,job,sum(sal) from emp group by deptno,job union select deptno,to_char(null),sum(sal) from emp group by deptno union select to_number(null),to_char(null),sum(sal) from emp; select deptno,job,sal from emp group by ro

Oracle的pipelined函数实现高性能大数据处理

在plsql开发中,会涉及到一些大数据量表的数据处理,如将某记录数超亿的表的记录经过处理转换插入到另外一张或几张表.常规的操作方法固然可以实现,但时间.磁盘IO.redo日志等等都非常大.Oracle 提供了一种高级函数,可以将这种数据处理的性能提升到极限.这种函数称为管道函数.在实际项目中,管道函数会和表函数.数据流函数(即表函数和CURSOR结合).数据集合.并行度一起使用,达到大数据处理的性能顶峰.下面是一个例子,将表t_ss_normal的记录插入到表t_target中,插入过程中有部分

Oracle Coherence中文教程二十四:在高速缓存中的数据处理

在高速缓存中的数据处理 coherence提供了理想的基础设施建设数据网格服务和客户端和基于服务器的应用程序使用数据网格.在一个基本的层面上,相干可以在大量的服务器在网格管理一个巨大的数据量,它可以提供接近零延迟访问该数据,它支持跨数据的并行查询中的map-reduce方式;它支持数据库和EIS系统,作为该数据的记录系统的集成.此外,Coherence提供一些服务,这是建立有效的数据网格的理想选择. 本章包含以下各节: 有针对性的执行 并行执行 基于查询的执行 数据网格范围内执行 代理针对性,并

Oracle连续数据处理示例

下面这段内容讲解的功能是Oracle数据库中有一张表,表中存储了连续的时间记录,同时对应的还存储了一个标记位. 现在要获取一个结果集:当标记位为0时,取前一个为1的时间数据,如果标记位为1时,取当前记录的时间数据. ================= 先上干货.再解释 1.建表 create table test_date( t_TIME varchar(20), --时间 t_ISOM number default 0 --标记 ) 2.初始化数据 DELETE FROM test_date;

oracle学习之集合运算和数据处理

集合运算主要有三种方式: 并集,union 两个集合相同的部份只保留一份,不同部份全部保留 union  all 两个集合全部保留 交集,intersect 两个集合保留相同的部份 差集,minus A差集B 保留 A中不在B中出现的部份 集合运算的注意事项: 1,参与运算的各个集合必须列数相同,且类型一致! 2,采用第一个集合的表头作为最终使用的表头,(别名也只能在第一个集合上起) 3,可以使用括号(),先执行后面的语句. 使用示例: select * from emp where deptn

oracle,mongodb数据处理相关

任务一:将项目运行日志进行自动备份,处理后放入mongodb中. 难点:字符串切割,日期时间格式处理,linux定时任务 过程:日志处理无外乎将有效字段从非结构化的日志文本中截取出来,抽取有效信息供下一步分析使用.本项目中的日志信息其实已经相当结构化了,字符串切割里面的问题主要是一行数据切割一次无法完整的获取所有信息,需要用不同的切割方式再进行获取. 在处理切割得到的字符串时间时,遇到了一些小问题.01/Jan/2018:01:14:42 ,这个格式的文本时间,直接用simpledateform

Oracle数据库(九)—— 数据处理

(一)插入数据 方式一 insert语句语法 INSERT INTO table [(column [, column...])] VALUES (value [, value...]); 使用这种语法一次只能向表中插入一条数据 若按照列的顺序赋值,可以不用写列名 否则要写列名,对于非空的列一定要复制 方式二:从其他的表拷贝数据 方式三:创建脚本(了解) 在SQL 语句中使用 & 变量指定列值0. & 变量放在VALUES子句中. 使用脚本,运行sql语句后,会出现弹框,所有弹框的值填好之

[转载]oracle游标概念讲解

原文URL:http://www.2cto.com/database/201203/122387.html ORACLE游标概念讲解 什么是游标?  ①从表中检索出结果集,从中每次指向一条记录进行交互的机制.      ②关系数据库中的操作是在完整的行集合上执行的.   由SELECT 语句返回的行集合包括满足该语句的WHERE 子句所列条件的所有行.由该语句返回完整的行集合叫做结果集.      应用程序,尤其是互动和在线应用程序,把完整的结果集作为一个单元处理并不总是有效的.      这些

客户视角:Oracle ETL工具ODI

客户视角:Oracle ETL工具ODI 数据集成已成为企业在追求市场份额中的关键技术组件,与依靠手工编码的方式不同,越来越多的企业选择完整的数据集成解决方案来支持其IT战略,从大数据分析到云平台的集成.Dao Research最近进行的一项研究,比较全球领先的几个数据集成解决方案之间的差异,及这些产品技术对现实企业的影响.他们采访了IBM,Informatica的,和甲骨文的客户.此外,他们也阅读了来自这三个供应商的公开可用的解决方案文档.该研究发现,甲骨文在数据集成领域具有某些方面的领先地位