• 0730 视图、索引、PL/SQL 流程控制、创建存储过程有、无参


    视图

    视图可以修改 但尽量不要修改 因为太麻烦 如果要改 尽量改基表

    视图的语句可以修改    但不建议修改 

    -- 创建表
    create table t_testseq
    (
      id number,
      name varchar2(10)
    );
    -- 创建序列
    create sequence seq_value
    start with 1
    increment by 1;

      注意 这里不是SQL语句   要从新创建用命令窗口 

      注意:这里如果不点   是不会执行

    -- 正常查询 
    select * from t_testseq where id=50000
    -- 创建索引 在查询 (创建索引后 会提高查询速度 )
    create index test_index on t_testseq(id)

    plsql的结构

     

    组成

    1、定义部分:declare

      定义一些常量、变量等;

    2、执行部分:(begin 必写)

      包含要执行的sql语句;

    3、异常处理部分:exception

      捕获异常(可能出现的运行错误,并编写出错后的代码)

    declare
     --变量声明部分
    begin
     --执行部分
    exception
     --异常处理部分
    End

    declare 和 exception 可以不写 根据需求    begin和end 必须写

    二、调试:

    使用set serveroutput on 命令设置环境变量;
    serveroutput为打开状态,从而使得pl/sql程序能够在SQL*plus中输出结果。
    在编写存储过程时,有时会用
    dbms_output.put_line将必要的信息输出,以便对存储过程进行调试,只有将serveroutput变量设为on后,信息才能显示在屏幕上

    三、变量定义:(类似java里面的匿名方法)

    1、格式:

    变量名 变量类型(oracle里面数据类型) [约束] default 默认值

    变量名 变量类型 [约束] [:=初始值]

    PLSQL基本sql块

    SQL> declare
    2 n number default 1;
    3 begin
    4 n:=n+1;
    5 dbms_output.put_line(n);
    6 end;
    7 /
    2
    PL/SQL procedure successfully completed  

    四、PL/sql块中流程控制

    IF 循环语句

    -- PL/SQL 流程语句  if
    declare
       height number:=175;
    begin
       if height>180 then
         dbms_output.put_line('你很高');
       elsif height>170 and height<180 then
         dbms_output.put_line('你有点矮');
       else
         dbms_output.put_line('你很矮');
       end if;
    end;  
    /

    运行结果:

    你有点矮
    PL/SQL procedure successfully completed

    --while 
    -- 计算1..100的和
    declare
       i number:=1;
       summ number:=0;
    begin
         while i<=100 loop
           summ:=summ+i;
           i:=i+1;
           end loop;
           dbms_output.put_line(summ);
    end;
    /

    运行结果

    5050
    PL/SQL procedure successfully completed

     

    -- for 循环  计算1...10的和
    declare
       summ number:=0;
    begin
      for i in 1..100 loop
        summ:=summ+i;
        end loop;
        dbms_output.put_line(summ);
    end;
    /

    5050
    PL/SQL procedure successfully completed

    for循环 倒序打印

    -- 倒序打印 1-10
    begin
      for i in reverse 1..10 loop
        dbms_output.put_line(i);
        end loop;
    end;

    reverse 是倒序;注意起始值与终止值中间有两点

    --Loop 计算1..100的和
    declare
      i number default 1;
      summ number :=0;
    begin
      loop
        summ:=summ+i;
        i:=i+1;
        exit when i>100;
        end loop;
        dbms_output.put_line(summ);
    end;
    /

     存储过程创建语法:

    存储过程:有名字的PLSQL 块!

    procedure:存储过程! 

    create or replace procedure 名称[(参数)]-- 这个名称相当于java里的方法名
    authid current_user|definer --以定义者还是调用者的身份运行
    is[不要加declare]
    --变量声明部分
    begin
    --主体部分,封装起来,然后调用的时候才开始执行,类似于调用方法
    exception
    --异常部分
    end;
    -- 创建存储过程  无参
    create procedure hello2
    is
    begin
      dbms_output.put_line('helloworld');
    end;
    -- 创建存储过程 有参
    create procedure addd(a int,b int)
    is
    summ int:=0;
    begin
      summ:=a+b;
      sbd
      dbms_output.put_line(summ);
    end;
    调用存储过程--有参的
    call a2(1,2);
  • 相关阅读:
    connect oralce
    monolog php
    js继承
    前后端交互-一些关于接口设计的思考
    zoom:1;
    H5的新特性及部分API详解
    软文参考
    seo细节
    seo每天要做的事情
    seo(每天要干的哪些事)
  • 原文地址:https://www.cnblogs.com/zs0322/p/11268884.html
Copyright © 2020-2023  润新知