zoukankan      html  css  js  c++  java
  • pl/sql(一)

    
    --pl/sql
    
    --主要是结构  以及基础的定义
    --判断 循环  loop 分支
    --应用 异常处理   函数  
    
    -- pl/sql 语言的注释
    /*
    
    使用/* */
    
    /*
    
    这个就是段落注释 
    第二个注释方法就是
    -- 前面两个-号
    
    */
    
    /*
    sql  结构化查询语言  cudr  第四代语言
    
    pl/sql  第三代语言  是一种过程化的语言 java c# 都是第三代语言
    java能做什么?
    C# 
    定义变量 char  int
    定义结构体 (int ,char)
    判断 if else
    循环 for  while  do--while
    函数 f(x,y){return x}
    
    
    pl/sql 也可以完成以上所有操作
    
    
    1 .pl/sql 可以提高程序性能
    soft软件    ---->sql  -------> 数据库中
                ---->sql  ------->
                ---->sql  ------->
                ---->sql  ------->
                ---->sql  ------->
    特点就是每一次执行操作都需要进行一次操作
    打开链接  传入sql  执行 获得结果  关闭链接
    打开链接  关闭链接  都是时间开销
    
    1 使用别的框架  学java的同学 mybatis 代理池
    
    
    pl/sql 语言
    
    soft --------->   pl/sql 代码块   ------->数据库
    
    打开链接  执行预先准备的pl/sql代码  对数据库处理
    
    
    2使程序模块化
    
    pl/sql是三代语言  java  c#
    可以编写函数
    f(a,b)
        if a>b
            return a
        else
            return b
    
    3 使用逻辑语句
        if  while for  do-while
    4 处理错误信息
    sql
    select * from studenn     :studenn错误  表不存在 就会中断运行
    select * from student
    while sid='001';
    
    pl/sql 通过一些设置在中断之后还能够继续运行
    
    5 移植性
    oracle server1  -----------
                               | 拷贝 就可移植过来
           server2  <----------
    
    */
    
    /*
    回忆java里面学过什么东西
    hello wrod!
    
    输出语句  system.out.print()
    
    
    
    */
    
    DECLARE
    -- 最基本的pl/sql 代码块
    BEGIN  
    --开始
    --在一个表里面有一个输出函数
    DBMS_OUTPUT.PUT_LINE('这是我的第一个PL/SQL的执行');  --换行打印
    -- EXCEPTION  ---跟的是异常处理
    END;   
    /
    --结束
    
    
    
    
    --申明变量
    DECLARE
    --在此申明变量
    --取名 数据类型
    stu_no varchar2(10) ;  --这个数据和我们数据库中的sno数据类型一致
    
    BEGIN  
    --可以进行赋值
    -- 注意 赋值不能使用 = 需要使用 := 进行赋值  
    stu_no := 's001';
    --开始
    --在一个表里面有一个输出函数
    DBMS_OUTPUT.PUT_LINE('学生的id是' || stu_no);  --换行打印
    END;   
    --结束
    /
    
    -- 注意  这个开关 默认是关闭的
    SET SERVEROUTPUT ON
    -- 注意  这个开关 默认是关闭的
    SET SERVEROUTPUT ON
    -- 注意  这个开关 默认是关闭的
    SET SERVEROUTPUT ON
    
    ON  开
    OFF 关
    
    
    --申明变量
    DECLARE
    --在此申明变量
    --取名 数据类型
    v_sno varchar2(10);   --能不能直接使用表的数据类型?
    v_sname varchar2(20);
    v_sage number(2);
    v_ssex varchar2(5);
    
    --可以进行赋值
    stu_no := 's001' 
    
    -- 注意 赋值不能使用 = 需要使用 := 进行赋值  
    BEGIN  
    --开始
    --在一个表里面有一个输出函数
    DBMS_OUTPUT.PUT_LINE('这是我的第一个PL/SQL的执行');  --换行打印
    END;   
    --结束
    
    
    -- 查看表结构
    desc table_name
    /*
    SQL> desc  student
     名称                                      是否为空? 类型
     ----------------------------------------- -------- ---------------
     SNO                                       NOT NULL VARCHAR2(10)
     SNAME                                              VARCHAR2(20)
     SAGE                                               NUMBER(2)
     SSEX                                               VARCHAR2(5)
    */
    
    
    
    DECLARE
    -- 最基本的pl/sql 代码块
    v_sno varchar2(10);   --能不能直接使用表的数据类型?
    v_sname varchar2(20);
    v_sage number(2);
    v_ssex varchar2(5);
    BEGIN  
    select sno,sname,sage,ssex 
    into  v_sno,v_sname,v_sage,v_ssex
    from student
    where sno='s001' ;
    --开始
    --在一个表里面有一个输出函数
    DBMS_OUTPUT.PUT_LINE('学生姓名:'||v_sname);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生性别:'||v_ssex);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生年龄:'||v_sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||v_sage);  --换行打印
    END;   
    /
    
    
    
    
    DECLARE
    -- 最基本的pl/sql 代码块
    v_sno student.sno%type;   --能不能直接使用表的数据类型
    v_sname student.sname%type;
    v_sage student.sage%type;
    v_ssex student.ssex%type;
    BEGIN  
    select sno,sname,sage,ssex 
    into  v_sno,v_sname,v_sage,v_ssex
    from student
    where sno='s001' ;
    --开始
    --在一个表里面有一个输出函数
    DBMS_OUTPUT.PUT_LINE('学生姓名:'||v_sname);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生性别:'||v_ssex);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生年龄:'||v_sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||v_sage);  --换行打印
    END;   
    /
    
    
    ps:
    v_ssex student.ssex%type;
    /*
    v_ssex  : 变量名称
    student : 表名称
    .       : 取表的数据
    ssex    : 表的字段
    %type   : 获取字段的数据类型
    ;
    */
    
    
    
    
    DECLARE
    -- 最基本的pl/sql 代码块
    v_sno student.sno%type;   --能不能直接使用表的数据类型?
    v_sname varchar2(20);
    v_sage student.sage%type;
    v_ssex student.ssex%type;
    v_test CONSTANT v_sname%type:='test';
    BEGIN  
    select sno,sname,sage,ssex 
    into  v_sno,v_sname,v_sage,v_ssex
    from student
    where sno='s001';
    --开始
    --在一个表里面有一个输出函数v
    DBMS_OUTPUT.PUT_LINE('学生姓名:'||v_sname);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生性别:'||v_ssex);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生年龄:'||v_sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||v_sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||v_test);  --换行打印
    END;   
    /
    
    
    ps:
    v_ssex student.ssex%type;
    /*
    v_ssex  : 变量名称
    student : 表名称
    .       : 取表的数据
    ssex    : 表的字段
    %type   : 获取字段的数据类型
    ;
    */
    
    v_sname varchar2(20);
    v_test CONSTANT v_sname%type:='test';
    /*
    要使用数据类型继承的时候 首先被继承的申明必须是明确的
    v_test :变量名称
    CONSTANT :关键字
    v_sname  :被继承的变量名称
    %type    :获取变量的数据类型和大小
    :='test'; : 要给一个初始值
    */
    
    
    
    DECLARE
    -- 最基本的pl/sql 代码块
    
    TYPE studen IS RECORD(
    v_sno student.sno%type, 
    v_sname varchar2(20),
    v_sage student.sage%type,
    v_ssex student.ssex%type
    );
    s studen ;
    BEGIN  
    select sno,sname,sage,ssex 
    into    s --返回的是一个单独的实例
    from student
    where sno='s001';
    --开始
    --在一个表里面有一个输出函数v
    DBMS_OUTPUT.PUT_LINE('学生姓名:'||s.v_sname);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生性别:'||s.v_ssex);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生年龄:'||s.v_sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||s.v_sage);  --换行打印
    
    END;   
    /
    
    
    
    
    
    --PS
    TYPE studen IS RECORD(
    v_sno student.sno%type,   --能不能直接使用表的数据类型?
    v_sname varchar2(20),
    v_sage student.sage%type,
    v_ssex student.ssex%type
    );
    /*
    TYPE :申明的关键字
     studen  :自己取的结构体名称
     
     IS RECORD : 关键字
    
    (
    ....      :数据结构
    );
    */
    s studen ;
    -- 注意:使用前要先定义
    DBMS_OUTPUT.PUT_LINE('学生学号:'||s.v_sage);  --换行打印
    -- 调用的时候使用变量名称.变量的方法
    
    
    -- 总结:
    -- 先申明   (申明的是数据结构)
    -- 再定义   (定义数据的类型)
    -- 后使用   (再来使用定义过后的变量)
    -- int a =10;
    
    
    
    DECLARE
    -- 最基本的pl/sql 代码块
    -- student;
    s student%ROWTYPE;
    BEGIN  
    select *
    into    s --返回的是一个单独的实例
    from student
    where sno='s001';
    --开始
    --在一个表里面有一个输出函数v
    DBMS_OUTPUT.PUT_LINE('学生姓名:'||s.sname);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生性别:'||s.ssex);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生年龄:'||s.sage);  --换行打印
    DBMS_OUTPUT.PUT_LINE('学生学号:'||s.sage);  --换行打印
    
    END;   
    /
    
    
    -- 到此结束 end
    每个人都是在努力的路上,别因为别人的误解而放弃,,术业有专攻,如是而已。
  • 相关阅读:
    PHP遍历数组元素
    In PHP5, what is the difference between using self and $this? When is each appropriate?
    了解如何构建 Metro 样式的应用程序
    HTML5在路上
    meta 之 viewport
    dede数据库连接文件
    windows 环境安装wamp软件实现php开发环境
    域名空间那些事
    Javascript编程风格
    apache 服务器修改网站默认首页
  • 原文地址:https://www.cnblogs.com/16699qq/p/13153502.html
Copyright © 2011-2022 走看看