Oracle学习之PLSQL(一)

首先安装plsql工具官网下载地址:https://www.allroundautomations.com/registered/plsqldev.html

PLSQL语法结构

Declare

声明部分---声明变量、常亮、复杂数据类型、游标等

Begin

执行PL/SQL语句和SQL语句

Exception

异常处理部分

End;

块结束标记

红色为必须模块

DECLARE

  v_name VARCHAR2(10);

  v_sal  NUMBER(7,2);

  v_hiredate DATE;

  c_tax_rate CONSTANT NUMBER(3,2) := 0.02;

  v_tax_sal  NUMBER(7,2);

  v_valid    BOOLEAN DEFAULT TRUE;

BEGIN

  SELECT ename,sal,hiredate

  into v_name,v_sal,v_hiredate

  from emp

  WHERE empno = 7369;

  --计算所得税

  v_tax_sal := v_sal * c_tax_rate;

  --打印     打印输出语句

  DBMS_OUTPUT.PUT_LINE(v_name||'的工资:'||v_sal||'日期是:'||v_hiredate||'所得税是:'||v_tax_sal);

  IF v_valid THEN

    DBMS_OUTPUT.PUT_LINE('已核实');

   END IF;

END;

说明:into 把数据查出来的数据赋值给定义的变量

:=  :给常量或变量赋值

变量类型

引用型变量

DECLARE

--引用型变量    把数据库类型直接赋值给变量

       v_name emp.ename%TYPE;

       v_sal  emp.sal%TYPE;

 BEGIN

       SELECT ename,sal

       INTO v_name,v_sal

       from emp

       WHERE empno = 7788;

       DBMS_OUTPUT.PUT_LINE(v_name||'工资是:'||v_sal);      

END;

 

记录型变量

DECLARE

       --定义记录型变量

       emp_recode emp%ROWTYPE;

BEGIN

       --将7788的员工信息全部赋值给记录型变量emp_recode

       SELECT *

       INTO emp_recode

       FROM emp

       WHERE empno = 7788;

       --打印薪水和姓名

       DBMS_OUTPUT.PUT_LINE(emp_recode.ename||'的工资:'||emp_recode.sal);

END;

运算符

--算数运算

DECLARE

       v_num1 NUMBER(3) :=10;

       v_num2 NUMBER(3) :=2;

BEGIN

       DBMS_OUTPUT.PUT_LINE(v_num1 + v_num2);--加

       DBMS_OUTPUT.PUT_LINE(v_num1 - v_num2);--减

       DBMS_OUTPUT.PUT_LINE(v_num1 * v_num2);--乘

       DBMS_OUTPUT.PUT_LINE(v_num1 / v_num2);--除

       DBMS_OUTPUT.PUT_LINE(v_num1 ** v_num2);--乘方

END;

--关系运算符

DECLARE

       v_num1 NUMBER(2) := &n1; --&n1替代变量 运行时在界面输入值

       v_num2 NUMBER(2) := &n2;

BEGIN

       IF(v_num1 > v_num2)THEN

                 DBMS_OUTPUT.PUT_LINE('v_num1大于v_num2');

       ELSIF(v_num1 = v_num2)THEN

                 DBMS_OUTPUT.PUT_LINE('v_num1等于v_num2');

       ELSIF(v_num1 < v_num2)THEN

                 DBMS_OUTPUT.PUT_LINE('v_num1小于v_num2');

       END IF;

               if (v_num1 <> v_num2) THEN --不等于或者!=

                  DBMS_OUTPUT.PUT_LINE('v_num1不等于v_num2');

       END IF;

END;

--比较运算符

DECLARE

       v_num NUMBER(2) := &n1;

BEGIN

  IF(v_num BETWEEN 5 AND 10)THEN

       DBMS_OUTPUT.PUT_LINE('v_num在5-10之间');

   ELSE

       DBMS_OUTPUT.PUT_LINE('v_num不在5-10之间');

  END IF;

   IF(v_num IN(3,8,10))THEN

        DBMS_OUTPUT.PUT_LINE('v_num在3,8,10中');

   ELSE

        DBMS_OUTPUT.PUT_LINE('v_num不在3,8,10中');

  END IF;

   IF(v_num IS NULL)THEN

        DBMS_OUTPUT.PUT_LINE('v_num是null');

   ELSE

        DBMS_OUTPUT.PUT_LINE('v_num不是null');

   END IF;

END;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值