PL/SQL developer基础语法学习(二)之语法
来源:互联网 发布:如何购买一个淘宝店铺 编辑:程序博客网 时间:2024/04/28 18:44
一、sql的dml
1)、查询,运用 select into
实例(只能查询的单个数据:有且只有一个值 “不能有多个值,不能为空”):
/**操作 select ,使用 select into*/declare v_ename emp.ename%type;begin --获取 工资为 800的员工姓名 select ename into v_ename from emp where sal=800; dbms_output.put_line(v_ename);end;
除此之外,还可以添加异常处理
例如:
--加入异常declare v_ename emp.ename%type;begin --获取 工资为 800的员工姓名 select ename into v_ename from emp where sal=&月薪; dbms_output.put_line(v_ename);exception when no_data_found then dbms_output.put_line('数据未找到'||sqlcode||'-->'||sqlerrm); when too_many_rows then dbms_output.put_line('数据超出'||sqlcode||'-->'||sqlerrm); when others then dbms_output.put_line('其他异常'||sqlcode||'-->'||sqlerrm); end;
二、异常
异常 exception: 非正常情况
1、no_data_found :数据未找到
2、to_many_rows :数据太多
3、others
三、控制语句
1.选择语句
1)格式如下
if then elsif then…elseend if;2)实例:
--计算年薪declare --获取员工的 奖金 v_income emp.sal%type;begin execute immediate 'select (nvl(comm,0)+sal)*12 from emp where empno=&员工编号 ' into v_income; --判断 if v_income<10000 then dbms_output.put_line('1'); elsif v_income<50000 then dbms_output.put_line('2'); else dbms_output.put_line('不错'); end if; exception when no_data_found then dbms_output.put_line('数据未找到'||sqlcode||'-->'||sqlerrm); when too_many_rows then dbms_output.put_line('数据超出'||sqlcode||'-->'||sqlerrm); when others then dbms_output.put_line('其他异常'||sqlcode||'-->'||sqlerrm); end;
2、循环
循环四要素: 初始表达式 条件表达式 迭代因子 循环体
1)、直到型(先执行后判断)
格式为:
loop exit when 条件end loop;
实例:
--直到型declare --100以内的奇数 --1、初始化表达式 v_num number(5):=1; begin loop --2、循坏体 if mod(v_num,2)=1 then dbms_output.put_line(v_num); end if; exit when v_num>=100; --3、条件 --4、迭代因子 v_num :=v_num+1; end loop;end;
2)、当到型
格式为:while 条件 loopend loop;
实例:
--当到型declare --100以内的奇数 --1、初始化表达式 v_num number(5):=1; begin --3、条件 while v_num<=100 loop --2、循坏体 if mod(v_num,2)=1 then dbms_output.put_line(v_num); end if; --4、迭代因子 v_num :=v_num+1; end loop;end;
3)、for
变量不需要声明 变量,变量的值不能改变,内部值+1
格式:
for index in [reverse] min..max loopend loop
declare --1..100的奇数 --初始化表达式 v_num number(5):=1; begin for i in 1..100 loop if mod(i,2)=1 then dbms_output.put_line(i); end if; end loop;end;
for的内部倒叙操作 reverse
实例
--for (倒转输出)declare --1..100的数 --1、初始化表达式 v_num number(5):=1; begin for i in reverse 1..100 loop dbms_output.put_line(i); end loop;end;
0 0
- PL/SQL developer基础语法学习(二)之语法
- PL/SQL developer基础语法学习(一)之变量
- PL/SQL developer基础语法学习(三)之游标
- ORACLE之PL/SQL简单基础语法学习(二)
- PL/SQL developer基础语法学习(一)
- ORACLE之PL/SQL简单基础语法学习(一)
- PL/SQL之基础语法
- pl/sql基础语法
- PL/SQL基础语法
- SQL学习语法基础(二)
- PL/SQL基础(1):语法
- PL/SQL基础语法入门
- oracle--PL/SQL基础语法
- PL/SQL之一 基础语法
- PL/SQL学习(基本语法)
- PL/SQL语法之游标
- SQL语法学习二
- SQL学习语法基础
- Java NIO系列3:缓冲区
- vmware-tool安装
- java.nio.Buffer flip()方法的用法详解
- summernote编辑器插件使用笔记
- 无法登陆树莓派pi账户
- PL/SQL developer基础语法学习(二)之语法
- arange函数——numpy模块
- 域名登录和IP登录的session问题
- 4-1 简单输出整数 (10分) PTA
- Java NIO系列4:通道和选择器
- 基于Tcp协议与基于Http协议的RPC简介笔记
- php rdkafka扩展发送和接收消息
- strcpy的模拟实现
- 我只所以写博客