zoukankan      html  css  js  c++  java
  • 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);
                其赋值方式有两种:“:=”和intokeyword。
                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。存储过程,存储函数都能够返回一个或者多个參数。其二者基本上没有差别;
                实例一:查询某个部门中,全部员工的全部信息
                            须要包头和包体:
                当返回的结果是集合,能够使用光标来实现;
                

                            


                
               




  • 相关阅读:
    NJUPT_Wrj 个人训练实录
    图片保存本地,上传阿里云,保存该图片 在阿里云的 路径 到 本地数据库
    微信所有国家列表
    YII load()
    ab命令压力测试
    fatal: Could not read from remote repository
    JS获取URL中参数值的4种方法
    yii 生成 模型
    php子类是否自动调用父类构造函数
    自己实现一个简化版的SpringMVC框架
  • 原文地址:https://www.cnblogs.com/wzzkaifa/p/7069303.html
Copyright © 2011-2022 走看看