每天学点Oracle——plsql语法结构、判断、循环

目录

一、PL/SQL语法结构:

1)PL/SQL语法结构

2)输出一个 HELLO WORLD 

3)输入一个员工编号,打印出其姓名

4)给定一个员工编号,输出其姓名和职位

5)求一个半径位10的圆的面积

二、判断

1)判断语法格式

2)给定两个数  输出其最大值

3)查询JAMES的工资,如果大于1500元,则发放奖金100元,如果工资大于900元,则发奖金800元,否则发奖金400元。

三、循环(常用for循环)

1)输出15行 ‘HELLO WORLD’

1、loop循环

2、while循环 

3、for循环

2)求1+2+3+…+100的值

1、loop循环

2、while循环

3、for 循环

3)求1+2+3+……+100奇数的和

1、for循环

2、while 循环

4)求1+2+3+……+100偶数的和

5)求1..100之间的所有素数(质数:只能被1和本身整除,1除外)

6)求100..999之间的所有水仙花数(个位数的3次方 + 十位数的3次方 + 百位数的三次方 = 这个数值本身)

7)100-1000之间的所有奇数之和

8)输出9*9 乘法口诀,如下格式:

9)创建一张表,往表中插入100行数据,格式如下:



一、PL/SQL语法结构:

1)PL/SQL语法结构

PL/SQL语法结构:
DECLARE
     --declaration statements]  --声明部分:变量  常量 游标  如果不需要声明  可以省略
BEGIN
     --executable statements  --增删改查
END;

2)输出一个 HELLO WORLD 

BEGIN
  DBMS_OUTPUT.put_line('HELLO WORLD');
END;
DECLARE
V_SQL VARCHAR2(200):='HELLO WORLD';
BEGIN
  DBMS_OUTPUT.put_line(V_SQL);
END;

3)输入一个员工编号,打印出其姓名

SELECT ... INTO ... FROM 表 ---单行查询
--输入一个员工编号,打印出其姓名
DECLARE
V_ENAME EMP.ENAME%TYPE;--复制表中某个字段的数据类型
BEGIN
  SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO=7369;
  DBMS_OUTPUT.put_line(V_ENAME);
END;
DECLARE
V_ENAME EMP.ENAME%TYPE;--复制表中某个字段的数据类型
BEGIN
  SELECT ENAME INTO V_ENAME FROM EMP WHERE DEPTNO=10;--报错 ,返回多行
  DBMS_OUTPUT.put_line(V_ENAME);
END;

注释:返回多行时需使用游标。

DECLARE
V_ENAME EMP.ENAME%TYPE;--复制表中某个字段的数据类型
BEGIN
  SELECT ENAME INTO V_ENAME FROM EMP WHERE EMPNO=&输入一个员工编号;
  DBMS_OUTPUT.put_line(V_ENAME);
END;

注释:&符号可以输入数据

4)给定一个员工编号,输出其姓名和职位

DECLARE
V_ENAME EMP.ENAME%TYPE;
V_JOB   EMP.JOB%TYPE;
BEGIN
  SELECT ENAME,JOB INTO V_ENAME,V_JOB FROM EMP WHERE EMPNO=7369;
  DBMS_OUTPUT.put_line(V_ENAME||'--'||V_JOB);
 END;

注释:DBMS_OUTPUT.put_line只能put一个变量,put多个需要用拼接符连接 ||

DECLARE
V_EMP EMP%ROWTYPE;--把整张表的字段和数量类型复制给变量
BEGIN
  SELECT ENAME,JOB INTO V_EMP.ENAME,V_EMP.JOB FROM EMP WHERE EMPNO=7369;
   DBMS_OUTPUT.put_line(V_EMP.ENAME||'--'||V_EMP.JOB);
END;

5)求一个半径位10的圆的面积

DECLARE
PI CONSTANT NUMBER(10,2):=3.14;
R NUMBER(10):=3;
S NUMBER(10,2);
BEGIN
  R:=10;
  S:=PI*R*R;
  DBMS_OUTPUT.put_line(S);
END;
DECLARE
PI CONSTANT NUMBER(10,2):=3.14;
R NUMBER(10):=3;
S NUMBER(10,2);
BEGIN
  PI:=10;--错误,常量不可以被重新赋值
  R:=10;
  S:=PI*R*R;
  DBMS_OUTPUT.put_line(S);
END;

二、判断

1)判断语法格式

IF 条件 THEN
     --条件结构体
END IF;	
---------------------


IF 条件 THEN
     --条件成立结构体
ELSE
     --条件不成立结构体
END IF;
---------
IF 条件1 THEN 
    ....
    ELSIF 条件2 THEN 
    ....
    ELSIF 条件3 THEN 
    ....
    ELSE--    如果前面都列举完了,可以不写ELSE
      ...
END IF;

2)给定两个数  输出其最大值

DECLARE
V_NUM1 NUMBER(10):=1;
V_NUM2 NUMBER(10):=2;
BEGIN
  IF V_NUM1 > V_NUM2 THEN 
    DBMS_OUTPUT.put_line(V_NUM1);
    ELSE
    DBMS_OUTPUT.put_line(V_NUM2);
  END IF;
END;
  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值