Chinaunix首页 | 论坛 | 博客
  • 博客访问: 52121
  • 博文数量: 23
  • 博客积分: 1415
  • 博客等级: 上尉
  • 技术积分: 281
  • 用 户 组: 普通用户
  • 注册时间: 2006-08-04 16:00
文章分类

全部博文(23)

文章存档

2014年(19)

2008年(1)

2007年(3)

我的朋友

分类: Oracle

2014-05-10 20:53:12

一、应用背景:
     PL/SQL是SQL的语言的扩展,是SQL和过程语言整合而成一种语言。在PL/SQL中可以完美的使用SQL语句。但是无法将SELECT语句的 执行结果展示出来,以及将执行结果进行二次处理。于是要求有一种机制可以处理这样的应用需求。


二、DQL:
   1、定义:DQL= data query language,是数据查询语言,习惯上称之为SELECT语句。
   2、作用:对表中数据进行查询、检索、展示。
   3、关键字:
       1)into          //将SELECT查询结果赋值给指定的变量,从而使得查询结果可以进行二次处理。
       2)结果唯一      //SELECT执行结果必须唯一,否则会抛出异常。


三、PL/SQL中DQL的使用:
  语法:
    select col_name1,col_name2 [,...,col_nameN] into var_name1,var_name2 [,...,var_nameN] 
    from table_name where ...;
 
  说明:
     col_name1    ----------- 表示字段名,字段名可以有多个。
     into         ----------- 关键字,表示将前面的字段值赋值给后面的变量。
     var_name1    ----------- 表示变量名,变量名可以有多个。一般变量的个数与字段数相等。
     table_name   ----------- 表示表名


四、实例应用

  实例1: 
    declare
      v_name varchar2(20);
    begin
      select name into v_name from emp where userid='JC-BJ-0027';
      dbms_output.put_line( 'The name is : '|| v_name );
    end;

    执行结果:
  
    The name is : zhangye


    PL/SQL procedure successfully completed.

  实例2: 
    declare
      v_userid varchar2(20);    --声明变量
      v_name varchar2(20);
      v_sal number;
      v_deptno number;
    begin
      select userid,name,sal,deptno into v_userid,v_name,v_sal,v_deptno
      from emp
      where userid='&userid';   --使用绑定变量
      dbms_output.put_line( 'The name is : '|| v_name );
      dbms_output.put_line( 'The sal  is: '|| v_sal );
      dbms_output.put_line( 'The deptno is: '|| v_deptno );
    end;
  
    执行结果:
    Enter value for userid: JC-BJ-0025
    old   9:       where userid='&userid';
    new   9:       where userid='JC-BJ-0025';
    The name is : hgx1
    The sal  is: 4000
    The deptno is: 30


    PL/SQL procedure successfully completed.

  实例3: 
    declare
      v_emp emp%rowtype;    --声明复合变量
    begin
      select * into v_emp from emp where userid='JC-BJ-0027';
      dbms_output.put_line( 'The name is : '|| v_emp.name);
      dbms_output.put_line( 'The sal  is: '|| v_emp.sal );
      dbms_output.put_line( 'The deptno is: '|| v_emp.deptno);
    end;
  
    执行结果:
    The name is : zhangye
    The sal  is: 30000
    The deptno is: 40

    PL/SQL procedure successfully completed.

阅读(264) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~