zoukankan      html  css  js  c++  java
  • 5、oracle入门篇

    1、视图

    视图的概念:视图就是提供一个查询的窗口,所有数据来自于原表。

    视图的作用?
    第一:视图可以屏蔽掉一些敏感字段。
    第二:保证总部和分部数据及时统一。

    注意:创建视图【必须有dba权限】

    ---查询语句创建表
    create table emp as select * from scott.emp;
    --查询视图
    select * from emp;

    2、索引

    索引的概念:索引就是在表的列上构建一个二叉树
    达到大幅度提高查询效率的目的,但是索引会影响增删改的效率。

    单列索引:

    ---创建单列索引
    create index idx_ename on emp(ename);
    ---单列索引触发规则,条件必须是索引列中的原始值。
    ---单行函数,模糊查询,都会影响索引的触发。
    select * from emp where ename='SCOTT'

    复合索引:

    ---创建复合索引
    create index idx_enamejob on emp(ename, job);
    ---复合索引中第一列为优先检索列
    ---如果要触发复合索引,必须包含有优先检索列中的原始值。
    select * from emp where ename='SCOTT' and job='xx';---触发复合索引
    select * from emp where ename='SCOTT' or job='xx';---不触发索引
    select * from emp where ename='SCOTT';---触发单列索引。

    3、plsql编程

    pl/sql编程语言是对sql语言的扩展,使得sql语言具有过程化编程的特性。
    pl/sql编程语言比一般的过程化编程语言,更加灵活高效。
    pl/sql编程语言主要用来编写存储过程和存储函数等。 

    ---声明方法
    ---赋值操作可以使用:=也可以使用into查询语句赋值
    declare
        i number(2) := 10;
        s varchar2(10) := '小明';
        ena emp.ename%type;---引用型变量
        emprow emp%rowtype;---记录型变量
    begin
        dbms_output.put_line(i);
        dbms_output.put_line(s);
        --赋值
        select ename into ena from emp where empno = 7788;
        dbms_output.put_line(ena);
        --赋值
        select * into emprow from emp where empno = 7788;
        dbms_output.put_line(emprow.ename || '的工作为:' || emprow.job);
    end;

    4、pl/sql中的if判断

    ---成绩大于等于90,表示优秀
    ---成绩大于等于70,表示良好
    ---成绩大于等于60,表示及格
    ---成绩小于60,表示较差
    declare
      i number(3) := 90;
    begin
      if i>=90 then
        dbms_output.put_line('优秀');
      elsif i>=70 then
        dbms_output.put_line('良好');
      elsif i>=60 then
        dbms_output.put_line('及格');
      else
        dbms_output.put_line('较差');
      end if;
    end;

    5、pl/sql中的loop循环

    用三种方式输出1到10是个数字

    ---while循环
    declare
      i number(2) := 1;
    begin
      while i<11 loop
         dbms_output.put_line(i);
         i := i+1;
      end loop;  
    end;
    ---exit循环
    declare
      i number(2) := 1;
    begin
      loop
        exit when i>10;
        dbms_output.put_line(i);
        i := i+1;
      end loop;
    end;
    ---for循环
    declare
    
    begin
      for i in 1..10 loop
         dbms_output.put_line(i);  
      end loop;
    end;
  • 相关阅读:
    乐观锁悲观锁及其使用场景
    inner join, left join, right join的作用是什么
    主键和唯一索引的区别
    在排序数组中查找元素的第一个和最后一个位置
    寻找旋转排序数组中的最小值
    [模板] 最小费用最大流
    CF878E Numbers on the blackboard
    CF1286F Harry The Potter
    CF1368H1 Breadboard Capacity
    CF1442E Black, White and Grey Tree
  • 原文地址:https://www.cnblogs.com/M87-A/p/15256870.html
Copyright © 2011-2022 走看看