reate table fleet_header(
  day date,name varchar2(20),
  route_id number(5),fleet_id number(5)
);

create view fleet (day,route_id)
as select day, route_id from fleet_header;

insert into fleet values('10-10月-05',9);

--修改视图定义

create or replace view fleet as select * from fleet_header;

--删除视图
drop view fleet;

--如何在fleet_header表的name 列上创建名为aud_index的索引
create index aud_index on fleet_header(name);

--创建唯一索引
--如何在fleet_header表的route_id 列上创建名为aud_index的索引
create unique index place_ind on fleet_header(route_id)

--创建组合索引
create index comp_index on fleet_header(route_id,fleet_id)

--创建反向键索引
--fleet_header表的route_id列值是一个顺序增长的序号,
--需要在此列上创建索引以提高查询速度
create index rev_ind on fleet_header(route_no) reverse;

--创建位图索引
create bitmap index bit_ind on fleet_header(cat._code);

--创建位图索引
create index ucase_name_ind on fleet_header (upper(name));
--输入以下语句使用该索引
select * from fleet_header where upper(name)='smith';

--删除索引
drop index emp_ind1;

----------------------------------------
--使用条件控制
----------------------------------------
create table salary_records
(
             deptcode varchar2(15),
            empcode varchar2(10),
            empsal  number
)

insert into salary_records
values('DP04','A4',0)

declare
   dptcode varchar2(15);
   emp_code varchar2(10);
   salary number;
begin
   select deptcode,empcode,empsal into dptcode,emp_code,salary
   from salary_records where empcode='&empid'

for update of empsal;

IF dptcode ='DP01' then
      update salary_records set empsal=salary+2000
      where empcode=emp_code;
   elsif dptcode ='DP01' then
       update salary_records set empsal=salary+1700
      where empcode=emp_code;
   elsif dptcode='DP03' then
       update salary_records set empsal=salary+2000
      where empcode=emp_code;
   end if;
commit;
end;

-----------------------------------------------
--使用循环控制
---------------------------------------------
declare
   courserec SALARY%rowtype;
   counter  number:=0;
  begin
    courserec.empsal:=&id;
    courserec.empcode:='&name';
  while counter <12
   loop
      insert into SALARY
      values(courserec.empsal,courserec.empcode);
      counter:=counter+1;
      courserec.empsal:=courserec.empsal+1;
    end loop;
  end;

-----------------------------------------------
使用顺序控制
-------------------------------------------
alter table salary_records add (working_days number);

select * from salary_records

declare
     workdays number;
     salary   number;
     bonus    number;
     dept     varchar2(10);
   begin
          select  working_days,empsal,deptcode into workdays,
      salary,dept from salary_records where empcode='&empid';
     IF workdays>=29 then
     
         goto calc_raise;
        else
       DBMS_OUTPUT.PUT_LINE('工作天数少于29天');
      end if;
<<calc_raise>>
    if dept='DP01' then
           bonus :=salary*0.25;
           dbms_output.put_line(bonus);
     else
           bonus :=salary*0.10;
           dbms_output.put_line(bonus);
       end if;
   end;

set serveroutput on
 /

oracle视图索引的更多相关文章

  1. oracle 序列 视图 索引 同义词

    序列 Oracle 12C 之后,Oracle 之中提供的是一种手工的自动增长列控制,而这样的控制在 Oracle 之中使用序列(对象)完成. 序列的创建: CREATE SEQUENCE 序列名称 ...

  2. Oracle学习2 视图 索引 sql编程 游标 存储过程 存储函数 触发器

    ---视图 ---视图的概念:视图就是提供一个查询的窗口,来操作数据库中的数据,不存储数据,数据在表中. ---一个由查询语句定义的虚拟表. ---查询语句创建表 create table emp a ...

  3. Oracle索引梳理系列(七)- Oracle唯一索引、普通索引及约束的关系

    版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内 ...

  4. Oracle视图分类及各种操作讲解(超级好文)

    目录:一.视图的定义: 二.视图的作用: 三.创建视图: 1.权限 2.语法 3.1  创建简单视图   3.2  创建连接视图  3.2.1 连接视图定义  3.2.2 创建连接视图  3.2.3 ...

  5. oracle视图总结

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  6. oracle视图总结(转)

    视图简介: 视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改.视图基于的表称为基表.视图是存储在数据字典里的一条select语句. 通过创建视图可以提取数 ...

  7. oracle 创建索引思考(转)

    在Oracle数据库中,创建索引虽然比较简单.但是要合理的创建索引则比较困难了. 笔者认为,在创建索引时要做到三个适当,即在适当的表上.适当的列上创建适当数量的索引.虽然这可以通过一句话来概括优化的索 ...

  8. Oracle 视图 (待更新, 缓存)

    参考: 视图.索引.存储过程优缺点: http://www.cnblogs.com/SanMaoSpace/p/3147059.html oracle视图总结(转):http://tianwei013 ...

  9. oracle唯一索引与普通索引的区别和联系以及using index用法

    oracle唯一索引与普通索引的区别和联系 区别:唯一索引unique index和一般索引normal index最大的差异是在索引列上增加一层唯一约束.添加唯一索引的数据列可以为空,但是只要尊在数 ...

随机推荐

  1. SQL SERVER 2008/2012/2012R2/2014 设置开启远程连接(sa配置)

    本文方案适用于Microsoft Sql Server 2008/2012/2012 r2/2014版本,以下简称MSSQLSERVER. MSSQL默认是不允许远程连接,并且禁用sa账户的.如果想要 ...

  2. Cocos2d-x——支持多触点

    1:在AppController的didFinishLaunchingWithOptions中,加入 [__glView setMultipleTouchEnabled:YES]; 2:在CCLaye ...

  3. Java Nio 多线程网络下载

    --> 默认最多50个线程 同一文件下载失败延迟超过30秒就结束下载 --> 下载5分钟超时时间,假设5分钟内未下载完就结束下载 --> 依赖 commons-httpclient ...

  4. 一个奇怪的html上url参数问题

    今天踩了一个坑  如xxx.com/xxx/xxx?code=+adfdf  我需要拿到 code=+adfdf 但是后台拿到的是 adfdf, 后来只能对 code的值进行 urlencode处理了

  5. range-bar

    https://github.com/edmodo/range-bar

  6. Java中介者设计模式

    中介者设计模式是一种很常见的设计模式,当中我们最为熟悉的就是我们的MVC框架.当中的C作为控制器就是一个详细的中介者,它的作用是把业务逻辑(Model),和视图(Viwe)隔离开来.使M V协调工作, ...

  7. SHELL 详解

    http://blog.csdn.net/vah101/article/details/6173488 ( a=2;b=4;c=9; ) 子shell 环境 { a=2;b=4;c=9; } 当前sh ...

  8. debian之source.list详解

    之前安装的是debian sarge(内核是2.4.7),不太想更新,但是发现原来的源/ect/apt/source.lists如下,但是用apt-get update,发现大都已经不可用了.怎么办, ...

  9. 小白日记41:kali渗透测试之Web渗透-SQL手工注入(三)-猜测列名、表名、库名、字段内容,数据库写入

    SQL手工注入 靶机:metasploitable(低)  1.当无权读取infomation_schema库[MySQL最重要的源数据库,必须有root权限]/拒绝union.order by语句 ...

  10. eclipse按Crl+鼠标左键,找不到源文件的解决办法。

    这种情况一般发生在tomcat的之中,原因是缺少类的源文件.在jdk中很少见,jdk中自带类的源文件,配置jdk的时候就已经将其加载进来了.而tomcat之中没有带类的源文件,需要自己去网上单独下载. ...