您的位置:首页 > 博客中心 > 数据库 >

Oracle数据处理

时间:2022-03-14 01:37

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,存储过程,存储函数都可以返回一个或者多个参数,其二者基本上没有区别;             实例一:查询某个部门中,所有员工的所有信息                         需要包头和包体:             当返回的结果是集合,可以使用光标来实现;             
                        

            
           




热门排行

今日推荐

热门手游