zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    JID 2.0 RC4 发布,高性能的 Java 序列化库
    FBReaderJ 1.6.3 发布,Android 电子书阅读器
    Arquillian 1.0.3.Final 发布,单元测试框架
    JavaScript 的宏扩展 Sweet.js
    Hypertable 0.9.6.5 发布,分布式数据库
    JRuby 1.7.0 发布,默认使用 Ruby 1.9 模式
    httppp 1.4.0 发布,HTTP响应时间监控
    Redis 2.6.0 正式版发布,高性能K/V服务器
    OfficeFloor 2.5.0 发布,IoC 框架
    XWiki 4.3 首个里程碑发布
  • 原文地址:https://www.cnblogs.com/zs0322/p/11268884.html
Copyright © 2011-2022 走看看