PL SQL概述

什么是PL/SQL?

PL/SQL(Procedural Language/SQL)。

一种过程化语言,通过增加编程语言的特点,实现对SQL的扩展。

PL/SQL的特点

  • 支持所有SQL的语法
  • 支持case语句,方便地实现循环
  • 通过继承,实现子类具有父类的属性和方法
  • 设置了新的日期类型

PL/SQL的开发环境

  • Oracle数据库服务器
  • Oracle开发工具

PL/SQL的工作原理

  • 由PL/SQL引擎接收指令
  • 将指令传递给Oracle数据库服务器执行

语句块::重点部分

PL/SQL语句块

PL/SQL程序是按照块结构进行划分

块是PL/SQL程序的基本单位

Declare用于声明变量、游标
v_name varchar2(30):='Jack'; --定义用户名称
v_age number :=6; --定义用户年龄
Begin表示程序的开始
--将用户的姓名和年龄插入到club_user表中
insert into club_user values (v_name,v_age);
Exception表示异常
--当出现异常时的处理
when others then
DBMS_OUTPUT.PUT_LINE('插入数据失败');
End;表示程序结束

PL/SQL声明,命名规则

声明

  • 使用declare关键字
  • 用于定义变量或者常量
DECLARE(声明) variable_name(变量名称)  [CONSTANT](是否为常量) type(变量的数据类型) [NOT NULL](是否为空) [:=value](变量初始化);

命名规则

变量命名规则:

  • 变量名首字母必须是英文字母,其后可以是字母、数字或者特殊字符$、#和下划线
  • 变量名长度不超过30个字符
  • 变量名中不能有空格

表达式和运算符

表达式的分类

数值型 字符型 日期型 布尔型

运算符分类

算术运算符 关系运算符 逻辑运算符 其他运算符


流程控制

条件结构:IF…THEN

IF condition THEN
Statements1 (执行语句,例:插入语句,删除语句等)
ELSE
Statements2
END IF;

条件结构:IF-THEN-ELSIF

IF condition1 THEN
Statements
ELSIF condition2 THEN
Statements
ELSE
Statements
END IF;

CASE语句(在oracle 9i后引入)

CASE variable
WHEN value1 THEN statements1;
WHEN value2 THEN statements2;
....................
WHEN valuen THEN statementsn;
[ELSE else_stataments;]
END CASE;

循环结构

LOOP循环
WHILE-LOOP循环

类似于while循环

FOR-LOOP循环

类似于for循环


PL/SQL的异常处理

预定义异常


异常处理


常用的变量类型

binary_integer: 整数,主要用来计数而不是用来表示字段类型

number: 数字字符

char: 定长字符串

varchar2: 变长字符串

date: 日期

long: 长字符串 最长2GB

boolean: 布尔类型,可以取值true | false | null值


复杂变量Table,Record,

PL/SQL 学习分享的更多相关文章

  1. PL/SQL 学习分享(续)

    事务 事务的概述 事务的特性 回滚点 事务实例练习 动态SQL 动态SQL概述 动态SQL应用场合 动态SQL的执行语法 绑定变量 动态SQL创建表 动态SQL绑定变量 动态SQL综合案例添加数据 使 ...

  2. ORALCE PL/SQL学习笔记

    ORALCE  PL/SQL学习笔记 详情见自己电脑的备份数据资料

  3. Oracle之PL/SQL学习笔记

    自己在学习Oracle是做的笔记及实验代码记录,内容挺全的,也挺详细,发篇博文分享给需要的朋友,共有1w多字的学习笔记吧.是以前做的,一直在压箱底,今天拿出来整理了一下,给大家分享,有不足之处还望大家 ...

  4. 浅析Oracle PL/SQL 学习--未完待续

    这是一篇关于Oracle Pl/SQL数据库编程的课程学习分享... 首先说明几点: 学习这门课程之前,已经学过并且掌握一些基础的SQL语句.数据库结构分析.ER图设计等知识: 这里也只是较为大概地将 ...

  5. Oracle PL/SQL学习之Hello World(0)

    1.PL/SQL是Oracle数据库的一大创举,让一些复杂繁琐的常规主流编程代码做的编码处理过程,只需要在PL/SQL中使用简短的几句代码就可以解决,并且准确高效.那么遵循惯例,我们学习PL/SQL编 ...

  6. [Oracle] PL/SQL学习笔记

    -- 1. 使用一个变量 declare -- Local variables here v_name ); begin -- Test statements here select t.user_n ...

  7. PL/SQL学习(六)触发器

    原文参考:http://plsql-tutorial.com/ 创建语法: CREATE [OR REPLACE ] TRIGGER trigger_name {BEFORE | AFTER | IN ...

  8. PL/SQL学习(五)异常处理

    原文参考:http://plsql-tutorial.com/ 组成: 1) 异常类型 2) 错误码 3) 错误信息   代码结构: DECLARE Declaration section BEGIN ...

  9. PL/SQL学习(四)存储过程和函数

    原文参考:http://plsql-tutorial.com/ PL/SQL存储过程 存储过程相当于一个有名字的PL/SQL块,经过第一次编译后再次调用时不需要再次编译 创建格式: CREATE [O ...

随机推荐

  1. canvas--总结二

    canvas图形绘制 矩形绘制 rect(x,y,w,h)  没有独立路径 strokeRect(x,y,w,h) 有独立路径,不影响别的绘制 fillRect(x,y,w,h) 有独立路径,不影响别 ...

  2. 如何在Nginx不绑定域名下使用SSL/TLS证书?

    前提 该文主要记录如何在没有购买域名的情况下使用SSL/TLS协议,即地址前面的http变成了https.但是这样的SSL协议是会被浏览器认为是不安全的.在开发或者测试环境可以这样搞,生产环境下还是乖 ...

  3. TurtleBot3 Waffle (tx2版华夫)(1)笔记本上安装虚拟机、 Ubuntu 系统

    1.1虚拟机的安装 1.1.1.windows7系统建议安装14.1版本 VMware workstation 百度云链接: 链接:https://pan.baidu.com/s/1q6Lh9fMuX ...

  4. CSS系列 (05):浮动详解

    浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止.由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样. -- W3C 文字环绕 float可以 ...

  5. linux hosts_access

    linux hosts_access 概要 tcp连接的访问控制功能,通过libwrap提供,即编译到代码里的访问控制功能 可以通过ldd 命令查看程序是否链接了libwrap库 主要根据程序名称,以 ...

  6. CSS&&label_div

    Css-div部分 本章主要内容 0.基础知识 1.CSS概述 2.CSS基础语法 3.CSS选择器 4.CSS主要属性 5.CSS核心机制-盒子模型 6.CSS重点和难点-定位 7.综合示例 基础知 ...

  7. Lesson_strange_words2

    cap 大写字母 mechanical 机械的,力学的 optical 光学的,视觉的 charge 电荷,负载 couple 耦合的,联接的,成对的 charge-coupled device 电荷 ...

  8. dhcp分发地址以及静态路由设置

    路由器R1配置: system-view [Huawei]sysname R1 [R1]user-interface console 0 [R1-ui-console0]idle-timeout 0 ...

  9. 【JavaWeb】JSTL 标签库

    JSTL 标签库 简介 JSTL(JSP Standard Tag Library),即 JSP 标准标签库.标签库是为了替换代码脚本,使得整个 jsp 页面变得更加简洁. JSTL 有五个功能不同的 ...

  10. Flutter 布局类组件:线性布局(Row和Column)

    前言 所谓线性布局,即指沿水平或垂直方向排布子组件.Flutter中通过Row和Column来实现线性布局,并且它们都继承自弹性布局(Flex). 接口描述 Row({ Key key, // 表示子 ...