Oracle数据库之SQL基础和分支循环
一、SQL基础语言
DECLARE --声明
a varchar2(10); --变量或对象 BEGIN
a:='小明';-- := 表示给一个变量赋值
dbms_output.put_line(a); --输出用 dbms_output.put_line() END;
二、分支
DECLARE
--声明
A NUMBER(10);
B NUMBER(10); BEGIN A := 2;
B := 3; IF A < B THEN
DBMS_OUTPUT.PUT_LINE('a小于b');
ELSIF A > B THEN --注意 ELSIF 的写法
DBMS_OUTPUT.PUT_LINE('a大于b');
ELSE
DBMS_OUTPUT.PUT_LINE('a等于b');
END IF; END;
三、循环
第一种:(loop循环)
DECLARE M NUMBER(5); BEGIN
M := 5; LOOP
EXIT WHEN M < 0;
DBMS_OUTPUT.PUT_LINE(M);
M := M - 1;
END LOOP; END; 执行结果:
第二种:(while 循环)
DECLARE M NUMBER(5); BEGIN
M := 5; WHILE M > 0 LOOP --while 循环
DBMS_OUTPUT.PUT_LINE(M);
M := M - 1;
END LOOP; END;
执行结果:
第三种:(for循环)
DECLARE BEGIN FOR N IN 1 .. 5 LOOP
--for 循环只能遍历像1~5这样的有规律的数字
DBMS_OUTPUT.PUT_LINE(N);
END LOOP; END;
执行结果:
四、处理异常
DECLARE
M NUMBER(10);
SNAME VARCHAR2(10); BEGIN M := 5; SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M;
DBMS_OUTPUT.PUT_LINE('查询结果:' || SNAME); END; 执行结果:
然后抛出异常 exception
DECLARE
M NUMBER(10);
SNAME VARCHAR2(10); BEGIN M := 50; --改个不存在的值 SELECT S.NAME INTO SNAME FROM Z_STUDENT S WHERE S.ID = M;
DBMS_OUTPUT.PUT_LINE('查询结果:' || SNAME); EXCEPTION
--抛出异常
WHEN NO_DATA_FOUND THEN
DBMS_OUTPUT.PUT_LINE('没有查询到数据'); END; 执行结果:
再举个例子:
DECLARE
--声明
A NUMBER(10);
B NUMBER(10);
NOZERO EXCEPTION; --定义nozero 为异常类型
BEGIN A := 2;
B := 0; IF A = 0 OR B = 0 THEN
RAISE NOZERO; --RAISE 抛出异常
END IF; IF A < B THEN
DBMS_OUTPUT.PUT_LINE('a小于b');
ELSIF A > B THEN
--注意 ELSIF 的写法
DBMS_OUTPUT.PUT_LINE('a大于b');
ELSE
DBMS_OUTPUT.PUT_LINE('a等于b');
END IF; EXCEPTION
WHEN NOZERO THEN
DBMS_OUTPUT.PUT_LINE('a和b都不能为0!');
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('其他异常!'); END; 执行结果为:
Oracle数据库之SQL基础和分支循环的更多相关文章
- Oracle数据库之SQL基础(一)
主要内容:用户与表空间:表与约束:查询语句. 一.概述 Oracle安装:访问官网,下载 二.用户与表空间 在安装Oracle时在开始菜单里可以用sql puls登录oracle. ★1.系统用户 s ...
- Oracle数据库之SQL基础(二)
一.约束 ❤ 1.约束概述 约束作用: (1)定义规则 (2)确保完整性:包括数据的精确性.可靠性.以确保数据不会出错,或者尽量减少出错. 约束的类型: (1)非空约束 (2)主键约束 (3)外键约束 ...
- Oracle数据库—— PL/SQL基础编程
一.涉及内容 1. 掌握PL/SQL程序块的结构,理解并熟悉各种变量的应用. 二.具体操作 (一)使用system用户登录SQL*PLUS,使用SQL语句创建用户:u_你的姓名首字母(例如:u_zs) ...
- 数据库学习---SQL基础(二)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) 上篇复习的sql的增删改查,and ,or ,>=, <=,!=等逻辑运算符,还有in ...
- 数据库学习---SQL基础(一)
数据库学习---SQL基础(一) 数据库学习---SQL基础(二) 数据库学习---SQL基础(三) SQL(struct query language)结构化查询语言:一种专门与数据库通信的语言, ...
- oracle数据库元数据SQL查询
oracle数据库经典SQL查询 .查看表空间的名称及大小 select t.tablespace_name, round(sum(bytes/(1024*1024)),0) ts_size from ...
- 搜索表字段包含某字符串的SQL和监控Oracle数据库的SQL。
1.第一个SQL 背景:需要找到SQL Server数据库中,包含某个字符串的表,输出表和包含该字符串的列. )='=' --这里填要搜索的字符串 DECLARE @sql NVARCHAR(MAX) ...
- Oracle Database 11g : SQL 基础
简介 1:课程目标 2:课程 目标 3:Oracle Database 11g 以及相关产品概览 1:Oracle Database 11g :重点领域 2:Oracle Fusion Middlew ...
- Oracle数据库的sql语句性能优化
在应用系统开发初期,由于开发数据库数据比较少,对于查询sql语句,复杂试图的编写等体会不出sql语句各种写法的性能优劣,但是如果将应用系统提交实际应用后,随着数据库中数据的增加,系统的响应速度就成为目 ...
随机推荐
- Python 集成开发环境(IDE)
DiscoverSDK网站进行了一次调查 - 什么是最好的Python IDE,这里是调查的结果 Python是一种非常流行的开源编程语言.得益于无尽的模块选项,Python今天广泛用于脚本 ...
- Windows 远程桌面文件传输的方法
实现电脑的远程连接以后,很多时候会需要进行主机间的文件传输,这个时候就可以用系统自带的远程连接里的磁盘映射来完成,详细如下: 远程桌面程序内置了映射磁盘的功能,通过这个功能可以实现远程登录服务器时自动 ...
- C# 计算一串字符串算法
工作中遇到一个小问题,就是要做一个类似excel那种的公式的东西,就是A0+A1*B0那样的公式,然后得出结果. 首先,分析. 这不是计算器,计算器要比这个简易,计算器是所按即所得,即你点击+-之类的 ...
- 【前端GUI】——对一些优秀网页设计作品的分析&心得
前言:优秀的网站设计作品都有一些相似的地方,即使是美学,也一定会遵循着一定的规律. ONE 这一组,属于同类. 主题:点心. 背景:卡通动物形象. 色调:柔和,甜美. 点线面布局: 在这两个页面中,点 ...
- 【React Native开发】React Native移植原生Android项目(4)
),React Native技术交流4群(458982758),请不要反复加群!欢迎各位大牛,React Native技术爱好者加入交流!同一时候博客左側欢迎微信扫描关注订阅号,移动技术干货,精彩文章 ...
- ichartjs 制作的图表
ichartjs资源包下载:https://files.cnblogs.com/files/xiandedanteng/ichartjs-ichartjs1.2.zip 本例下载地址:https:// ...
- 自定义带下划线文本的UIButton
转载自 http://mobile.51cto.com/hot-404798.htm,略有改动 UnderLineButton.h代码 @interface UnderLineButton : UIB ...
- Java 实现对Sql语句解析
原文地址:http://www.cnblogs.com/zcftech/archive/2013/06/10/3131286.html 最近要实现一个简易的数据库系统,除了要考虑如何高效的存储和访问数 ...
- 2018年EMUI系统能力分论坛来啦
为鼓励开发者创新,挖掘前沿创新能力的应用及服务,帮开发者打造爆款应用的同时丰富终端消费者的用户体验,由设立10亿激励基金耀星计划扶持的华为创新竞赛平台即将开启. 竞赛平台将滚动推出AI.HAG.AR. ...
- Windows下安装Oracle 11g全过程。
1. 解压Oracle11.1.0.6 for win32,然后点击setup 2.选择高级安装,下一步 3.选择企业版,下一步 4.修改Oracle基目录,也可以是默认,下一步 5.将状态复选框打上 ...