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. 巧用 Lazy 解决.NET Core中的循环依赖关系

    原文作者: Thomas Levesque 原文链接:https://thomaslevesque.com/2020/03/18/lazily-resolving-services-to-fix-ci ...

  2. 【函数分享】每日PHP函数分享(2021-1-7)

    ltrim() 删除字符串开头的空白字符(或其他字符). string ltrim ( string $str[, string $character_mask]) 参数描述str 输入的字符串. c ...

  3. 实现Vue的多页签组件

    在之前的博客中  关于vue的多页面标签功能,对于嵌套router-view缓存的最终无奈解决方法  有写过vue的多页签功能的解决方案 可以看到我当时那个多页签的组件还是比较简单 的,只有打开跟关闭 ...

  4. 【C++】《C++ Primer 》第七章

    第七章 类 一.定义抽象数据类型 类背后的基本思想:数据抽象(data abstraction)和封装(encapsulation). 数据抽象是一种依赖于接口(interface)和实现(imple ...

  5. 【Linux】awk想打印制定列以后的所有列

    今天偶然研究awk,有一个文件,文件内容是全篇的1 2 3 4 5 6 7 8 9 0 现在想打印除了第一列意外的所有列 文件内容: [root@localhost ~]# cat test.txt ...

  6. [SSL]在线检查服务器HTTPS安全

    https://myssl.com/ SSL/TLS安全评估报告 https://www.ssllabs.com/ssltest/ SSL Server Test HTTPS开启工具(IIS) htt ...

  7. ctfshow—web—web3

    打开靶机 提示是文件包含漏洞 测试成功 https://d7c9f3d7-64d2-4110-a14b-74c61f65893c.chall.ctf.show/?url=../../../../../ ...

  8. oracle查看用户的系统权限,角色以及数据库对象权限

    select * from dba_sys_privs where GRANTEE='monkey'; select * from dba_role_privs where GRANTEE='monk ...

  9. [Usaco2006 Nov]Corn Fields牧场的安排

    题目描述 Farmer John新买了一块长方形的牧场,这块牧场被划分成M列N行(1<=M<=12; 1<=N<=12),每一格都是一块正方形的土地.FJ打算在牧场上的某几格土 ...

  10. InnoDB事务篇

    1.解决数据更新丢失的问题 1)LBCC:基于锁的并发控制.让操作串行化执行.效率低. 2)MVCC:基于版本的并发控制.使用快照形式.效率高.读写不冲突.主流数据库都是使用的MVCC. 2.Inno ...