PLSQL语言(一)

PLSQL语言

 1、PLSQL语言

      PLSQL语言是ORACLE公司对SQL语言的功能的扩展,它是将过程性结构与ORACLE SQL无缝的集成在一起而产生的一种结构化的强有力的语言,是一种高级数据库程序设计语言。

2、SQL*PLUS

    SQL*PLUS是ORACLE公司提供的一个工具程序,它用于运行SQL语句和PL/SQL块,并且用于跟踪、调试SQL语句和PL/SQL块。该工具程序不仅可以在命令行运行,也可以在WINDOWS窗口环境中运行。

 2.1 在命令行运行SQL*PLUS

      格式:sqlplus  [username]/[password][@SERVER]           

      其中:  username用于指定数据库用户名

                 password用于指定用户口令

                 @SERVER用于指定主机字符串或网络服务名,当连接到本地数据库时,不需要提供网络服务名。

 2.2 在WINDOWS环境中运行SQL*PLUS

  2.2.1 具体方法:

          开始->程序->Oracle - OraDb10g_home1->应用程序开发->SQL PLUS

  2.2.2 在命令行执行SQLPLUSW命令

         格式:sqlplusw  [username]/[password][@SERVER]

 

2.3 SQL*PLUS的使用

 2.3.1 直接编辑:使用ED命令或在SQL>提示符下键入,以 / 退出,键入 / 或RUN执行行。

 2.3.2 使用文件:@或START执行 .sql文件。

 

例:查询DEPT表中的所有行

例1、使用@命令

   SQL> @ d:/dept.sql;
 
   DEPTNO DNAME          LOC
   ------ -------------- -------------
       10 ACCOUNTING     NEW YORK
       20 RESEARCH       DALLAS
       30 SALES          CHICAGO
       40 OPERATIONS     BOSTON
例2、使用START命令
    SQL> start d:/dept.sql;
 
    DEPTNO DNAME          LOC
    ------ -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
 

3、PL/SQL块的组成

  3.1 PL/SQL语言以块为单位,块中可以嵌套子块。 

   3.2 一个基本的PL/SQL块由3部分组成:

  • 定义部分(DECLARE):PL/SQL中使用的变量、常量、游标、复杂数据类型、和异常处理的名字都必须先定义后使用,并且必须定义在以关键字DECLARE开头的定义部分。
  • 执行部分 (BEGIN):该部分是PL/SQL块的主体,包含该块的可执行语句。该部分定义了块的功能,是必须的。由关键字BEGIN开始,EXCEPTION或END结束。
  • 异常处理部分(EXCEPTION):该部分包含该块的异常处理程序,当该块程序体中的某个语句出现异常时,程序控制转到异常部分的相应的异常处理程序中进行进一步的处理,该部分由关键字EXCEPTION开始,END关键字结束。

  3.3 定义部分

      简单变量定义格式:

      <variable_name>  [constant]  <datatype>  [ [not null]  {default | :=}<exception>];

    说明:

        ①定义部分是包括在关键字DECLARE和BEGIN之间的部分,每条语句后用';'结束。

        ②每行只能定义一个标识符。

        ③如果加上关键字CONSTANT,则表示所定义的标识符为一个常量,必须为它赋初始值。

        ④每个标识符必须以字母开头,而且不分大小写。如果定义的标识符不能为空,则必须加上关键字NOT NULL,并赋初始值。

        ⑤为标识符赋值时,使用赋值符号':=',默认值为NULL。

 

4、 赋值语句

       赋值符号为':='

       格式:<变量名>:=<表达式>

5、ORACLE常用数据类型

     number:数字型,范围10-130~10125

     char:定长字符型,最大2000个字符。

     varchar2:变长字符串,最大4000个字符。

     long:大文本,最大32760个字符。

     date:日期型,包括年、月、日、时、分、秒。

     boolean:逻辑型,取值true、false、null。

6、使用%TYPE

    使用%TYPE声明一个变量,可以使它的类型与某个变量或数据库基本表中某个列的数据类型一致。

例1:

declare
  Ename emp.eNAME%TYPE;
  JOB Ename%TYPE;
BEGIN
  select ename,job into Ename,job
  from emp
  where empno=7369;
  DBMS_OUTPUT.PUT_LINE(Ename||' , '||job);
END;

输出:SMITH , CLERK

7、记录类型

  记录类型定义的一般格式:

TYPE  <RecordTypeName>  IS  RECORD 

  (

       <field> <datatype> [[not null]{default | :=}<expression>]

       [,<field>......]

  );   

  说明:记录类型变量的属性引用方法是' . '引用。

例1:

DECLARE
  TYPE abc IS RECORD   --定义记录类型
  (
     aname emp.ename%type,
     ajob emp.job%type,
     adate emp.hiredate%type
  );
  a abc;  --定义记录变量
BEGIN
  SELECT ENAME,JOB,HIREDATE INTO A.ANAME,A.AJOB,A.ADATE
    FROM EMP
      WHERE EMPNO=7369;
  DBMS_OUTPUT.put_line(A.ANAME||' , '||A.AJOB||' , '||A.ADATE);
END;

输出:SMITH , CLERK , 17-12月-80

 

 8、使用%ROWTYPE

    使用%ROWTYEP声明一个记录型变量,可以使它的类型与某个基本表的数据结构一致。

例1:

DECLARE
  A EMP%ROWTYPE;
BEGIN
  SELECT ENAME,JOB,HIREDATE INTO A.ENAME,A.JOB,A.HIREDATE
    FROM EMP
      WHERE EMPNO=7369;
  DBMS_OUTPUT.put_line(A.ENAME||' , '||A.JOB||' , '||A.HIREDATE);
END;

输出:SMITH , CLERK , 17-12月-80

 

 

 

今天:2010-03-06 23:08:04

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值