plsql_basic_training
PLSQL循序渐进全面学习教程(全)
PLSQL循序渐进全面学习教程(全)PL/SQL是用于Oracle数据库的编程语言,它结合了SQL语句的数据操作能力和一般编程语言的逻辑控制能力。
PL/SQL循序渐进的全面学习教程将帮助你逐步学习和掌握PL/SQL的各个方面。
1.简介和基础知识:-PL/SQL的概念和背景-PL/SQL的开发工具和环境-PL/SQL和SQL的关系-PL/SQL的基本语法和数据类型2.变量和常量:-PL/SQL变量的声明和使用-不同类型的变量和数据类型-常量的定义和使用3.控制结构:-IF-THEN语句和IF-THEN-ELSE语句-CASE语句的使用-循环语句(FOR循环、WHILE循环)4.异常处理:-异常的概念和分类-异常处理的方法和语句-自定义异常和错误处理5.子程序和函数:-PL/SQL子程序和函数的概念和用途-创建和调用子程序和函数-参数传递和返回值6.游标和结果集:-游标的概念和使用场景-游标的声明、打开、关闭和绑定-使用游标处理结果集和数据集7.触发器:-触发器的概念和作用-创建和使用触发器-触发器的触发事件和触发时机8.包和包体:-包和包体的定义和特点-创建和使用包和包体-包的封装和共享9.过程和函数:-过程和函数的概念和区别-创建和使用过程和函数-过程和函数的编写和调用10.使用PL/SQL开发应用程序:-使用PL/SQL编写数据库操作代码-使用PL/SQL开发业务逻辑-PL/SQL和其他编程语言的集成以上是PL/SQL循序渐进全面学习教程的大纲,你可以根据自己的学习进度逐步深入学习每个主题。
希望这个教程对你学习和掌握PL/SQL编程语言有所帮助!。
PLSQL进阶教育训练
14
Oracle的CASE语句和表达式
Create or replace function calculate_values (p_input varchar2, p_number number) Return number Is V_return number; Begin case When p_input ='EXPENSE' and p_number < 1000 Then v_return:=0; When p_input ='EXPENSE' and p_number < 5000 Then v_return:=20; When p_input ='EXPENSE' and p_number >= 5000 Then v_return:=40; Else v_return:=100; End case; Return v_return; End;
BACK
11
Oracle9i PL/SQL里增加新功能
关联数组 Oracle CASE语句和表达式 Oracle MERGE语句 对ANSI/ISO SQL 1999规范的支持
12
关联数组
原來版本可以在定义完一个PL/SQL表之后通过 INDEX BY BINARY_INTEGAER选项,用索引的方式把 数值型数据类型关联到PL/SQL表的数组。 Oracle9i现在还允许通过INDEX BY VARCHAR2(N)选项对Varchar数据类型创建索引。下面 就是这样一个PL/SQL语句的例子: type v_test_table is table of number index by varchar2(100);
7
PLSQL基础教程-初学者必看
PL/SQL程序设计目录第一章PL/SQL 程序设计简介 (4)§1.2SQL与PL/SQL (4)§1.2.1 什么是PL/SQL? (4)§1.2.1 PL/SQL的好处 (4)§1.2.2 PL/SQL 可用的SQL语句 (5)§1.3运行PL/SQL程序 (5)第二章PL/SQL块结构和组成元素 (6)§2.1PL/SQL块 (6)§2.2PL/SQL结构 (6)§2.3标识符 (6)§2.4PL/SQL变量类型 (7)§2.4.1 变量类型 (7)§2.4.2 复合类型 (9)§2.4.3 使用%ROWTYPE (11)§2.4.4 LOB类型* (11)§2.4.5 Bind 变量 (11)§2.4.6 INDEX BY TABLES (12)§2.4.7 数据类型的转换* (13)§2.5运算符和表达式(数据定义) (13)§2.5.1 关系运算符 (13)§2.5.2 一般运算符 (13)§2.5.3 逻辑运算符 (14)§2.6变量赋值 (14)§2.6.1 字符及数字运算特点 (14)§2.6.2 BOOLEAN 赋值 (14)§2.6.3 数据库赋值 (14)§2.6.4 可转换的类型赋值 (15)§2.7变量作用范围及可见性 (15)§2.8注释 (16)§2.9简单例子 (17)§2.9.1 简单数据插入例子 (17)§2.9.2 简单数据删除例子 (17)第三章PL/SQL流程控制语句 (18)§3.1条件语句 (18)§3.2CASE表达式 (19)§3.3循环 (19)§3.3标号和GOTO (21)§3.4NULL语句 (21)第四章游标的使用 (23)§4.1游标概念 (23)§4.1.1 处理显式游标 (23)§4.1.2 处理隐式游标 (26)§4.1.3 游标修改和删除操作 (27)第五章异常错误处理 (29)§5.1异常处理概念 (29)§5.1.1 预定义的异常处理 (29)§5.1.2 非预定义的异常处理 (30)§5.1.3 用户自定义的异常处理 (31)§5.1.4 用户定义的异常处理 (32)§5.2异常错误传播 (33)§5.2.1 在执行部分引发异常错误 (33)§5.2.2 在声明部分引发异常错误 (34)§5.3异常错误处理编程 (34)§5.4在PL/SQL中使用SQLCODE,SQLERRM (35)第六章存储函数和过程 (36)§6.1引言 (36)§6.2创建函数 (36)§6.3存储过程 (39)§6.3.1 创建过程 (39)§6.3.2 调用存储过程 (40)§6.3.3 开发存储过程步骤 (42)§6.3.4 与过程相关数据字典 (43)第七章包的创建和应用 (44)§7.1引言 (44)§7.2包的定义 (44)§7.3包的开发步骤 (45)§7.4包定义的说明 (45)§7.5子程序重载 (48)§7.6删除过程、函数和包 (50)§7.7包的管理 (50)第八章触发器 (51)§8.1触发器类型 (51)§8.1.1 DML触发器 (51)§8.1.2 替代触发器 (51)§8.1.3 系统触发器 (51)§8.2创建触发器 (51)§8.2.1 触发器触发次序 (53)§8.2.2 创建DML触发器 (53)§8.2.3 创建替代(Instead_of)触发器 (54)§8.2.3 创建系统事件触发器 (54)§8.2.4 系统触发器事件属性 (55)§8.2.5 使用触发器谓词 (56)§8.2.6 重新编译触发器 (56)§8.3删除和使能触发器 (56)§8.4触发器和数据字典 (57)§8.5数据库触发器的应用举例 (57)第一章PL/SQL 程序设计简介PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。
《PLSQL基础》课件
掌握函数的创建和使用,以便在SQL查询中返回计算结果。
3 区别和联系
比较存储过程和函数的差异,了解它们在不同场景下的应用。
游标和触发器
1 游标的概念和用法
了解如何使用游标在PLSQL中处理查询结果集。
2 触发器的概念和应用
学习如何创建和使用触发器来自动触发数据库操作。
3 难点分析
1 条件判断语句
掌握IF-THEN、IF-THEN-ELSE和CASE语句,用于根据条件执行不同的代码块。
2 循环语句
学习FOR、WHILE和LOOP语句,以便重复执行代码块。
3 例外处理语句
了解如何处理异常情况,确保代码的可靠性和稳定性。
存储过程和函数
1 存储过程的定义和应用
学习如何创建和调用存储过程,以实现具有复杂逻辑的数据库操作。
了解在哪些场景下使用PLSQL可以极大地提升开发效率和数据处理能力。
2 知识点回顾
复习本课程的核心知识点,加深对PLSQL的理解和掌握。
3 后续学习建议
给出一些建议,帮助学员继续深入学习和应用PLSQL。
PLSQL具有高性能、可扩展性和安全性,它可以有效地处理大量数据和复杂的业务逻辑。
变量与数据类型
1 变量的定义
学习如何声明和使用变量,以存储和操作数据。
2 数据类型的分类和应用
了解各种数据类型的特性和用法,包括数字、字符、日期等类型。
3 常量的定义和应用
学习如何定义和使用常量,以存储不可变的值。
控制语句
探讨使用游标和触发器时可能遇到的常见问题和解决方法。
高级技巧
1 包的定义和使用
了解包的概念和结构,学习如何使用包来组织和管理PLSQL代码。
(2024年)数据库培训PLSQL
安全性考虑和防范措施
1 2
防止SQL注入攻击
在编写动态SQL时,必须严格验证用户输入,避 免将用户输入直接拼接到SQL语句中,以防止 SQL注入攻击。
限制数据库访问权限
应根据实际需求为应用程序分配最小的数据库访 问权限,避免应用程序拥有过高的权限导致安全 风险。
定期审计和监控数据库访问
3
通过定期审计和监控数据库访问记录,可以及时 发现异常访问行为并采取相应措施,保障数据库 安全。
循环控制
PLSQL支持FOR、WHILE和LOOP等 循环控制结构,用于重复执行一段代 码直到满足特定条件。
2024/3/26
6
异常处理机制
2024/3/26
异常类型
PLSQL中的异常包括预定义异常(如NO_DATA_FOUND、TOO_MANY_ROWS 等)和自定义异常(通过RAISE语句触发)。
数据库培训PLSQL
2024/3/26
1
目录
2024/3/26
• PLSQL概述与基础 • 数据库操作与查询优化 • 存储过程与函数设计 • 触发器设计与应用 • 游标、包和异常处理 • PLSQL高级特性与最佳实践
2
01
PLSQL概述与基础
2024/3/26
3
PLSQL定义及作用
定义
PLSQL是Oracle数据库的过程化SQL扩展语言,全称为Procedural Language/Structured Query Language。
变量
在PLSQL中,可以使用DECLARE部分声明变量,并为其指定 数据类型和初始值。变量用于存储临时数据,可以在程序执 行过程中进行修改和访问。
5
控制结构与流程
PLSQL编程基础讲课教案
(1)声明常量。声明常量的基本格式如下: <常量名> constant <数据类型> := <值>; 关键字constant表示声明的是常量。要声明一个程序 的版本信息常量conversion: conversion constant VARCHAR2(20) := '1.0.01';
【例2】定义变量conVersion,保存指定产品的版本信息。 然后调用dbms_output.put_line输出常量的值:
常用函数
数值型函数 字符型函数 日期型函数 统计函数
数值型函数
ABS函数返回给定数字表达式的绝对值。 【例11】如果要计算−4的绝对值:
SET ServerOutput ON; BEGIN dbms_output.put_line(ABS(-4)); END;
字符型函数
ASCII函数返回字符表达式最左端字符的 ASCII 代码值。 【例12】执行以下命令,输出字符A的ASCII码。
PL/SQL语言基础
由于学时有限,主要讲解PL/SQL 编程基础知识,包括PL/SQL程序 结构、各种类型变量的定义及使用 方法、异常处理过程及自定义异常 的方法、游标的定义及使用方法等。
PL/SQL是一种数据库程序设计语言,是 Oracle数据库系统提供的扩展SQL语言。使 用PL/SQL语言可以在各种环境下对Oracle 数据库进行访问。
说明:
(1)SET ServerOutput ON; 用于将环境变量serveroutput
设为打开状态,从而使PL/SQL程序能够在SQL*PLUS中输出结构。 (2)使用函数dbms_output.put_line(var_UserName);可以 输出参数的值。
数据库培训-PLSQL
数据库培训-PLSQL数据库培训 PLSQL在当今数字化的时代,数据库管理和编程技能变得愈发重要。
PL/SQL(Procedural Language/Structured Query Language)作为一种强大的数据库编程语言,在企业级应用开发中发挥着关键作用。
无论是处理复杂的业务逻辑、提高数据库性能,还是确保数据的准确性和完整性,PL/SQL 都有着出色的表现。
接下来,让我们深入了解一下PLSQL 培训的相关内容。
PL/SQL 是 Oracle 数据库对 SQL 语言的过程化扩展。
它将 SQL 语言的强大查询能力与过程化编程语言的控制结构相结合,使得开发者能够在数据库内部编写复杂的逻辑和操作。
通过使用 PLSQL,我们可以创建存储过程、函数、触发器等数据库对象,从而实现更高效、更灵活的数据处理。
在 PLSQL 培训中,首先要掌握的是基本语法。
这包括变量的定义和使用、数据类型的选择、控制结构(如条件判断、循环)等。
例如,我们可以使用`DECLARE` 关键字来定义变量,像这样:```sqlDECLAREv_name VARCHAR2(50);v_age NUMBER;BEGIN后续代码中使用变量进行操作END;```数据类型的选择也非常重要,常见的数据类型有字符型(如`VARCHAR2` )、数值型(如`NUMBER` )、日期型(如`DATE` )等。
掌握了基本语法后,接下来就是学习如何进行数据库操作。
PL/SQL 可以与SQL 语句无缝集成,方便我们对数据库中的表进行查询、插入、更新和删除等操作。
比如,要从一个名为`employees` 的表中查询数据,可以这样写:```sqlDECLAREv_employee_id NUMBER;v_employee_name VARCHAR2(50);BEGINSELECT employee_id, employee_name INTO v_employee_id,v_employee_nameFROM employeesWHERE department_id = 10;对获取到的数据进行进一步处理END;```存储过程是 PLSQL 中的重要概念之一。
PLSQL培训手册
文档作者:
创建日期:
确认日期:
控制编码:
当前版本internal use only
1
目录
目录 ............................................................................................................................................................................................................... 2 UNIT1 SQL、PL/SQL 概要 ............................................................................................................................................................... 1 单元培训目标 ................................................................................................................................................................................ 1 LESSON 1 SQL、SQL*Plus 和 PL/SQL 基本概念 ..........................................................................................................
PLSQL程序设计培训教程
1-17
• • • • • •
规则3 规则 每个if语句有且只有一个 每个 语句有且只有一个else。 语句有且只有一个 。 规则4 规则 Else语句行后面不跟语句结束符。 语句行后面不跟语句结束符。 语句行后面不跟语句结束符 3 if-then-elsif 这种结构用于替代嵌套if-then-else结构。例子如 结构。 这种结构用于替代嵌套 结构 下页所示。 下页所示。
1-18
• • • • • • • • •
1-19
If var1>var2 then DBMS_OUTPUT.put_line(‘var1 is larger than var2’); elsif var1=var2 then DBMS_OUTPUT.put_line(‘var1 is equal to var2’); else DBMS_OUTPUT.put_line(‘var1 is smaller than var2’); End if; 规则5 规则 elsif无匹配的 无匹配的end if。 无匹配的 。
•
DBMS_OUTPUT.put_line(‘Radius=’ || TO_CHAR(radius) || ‘,Circumference= ‘ || TO_CHAR(Circumference) || ‘,Area= ‘ || TO_CHAR(Area)); END;
•
1-9
•
显示了PL/SQL引擎在 引擎在Oracle服务器中的位置 图5.2显示了 显示了 引擎在 服务器中的位置
1-4
• • • • • • • • • •
1-5
5.1.2 数据类型 BINARY_INTEGER NUMBER(精度 比例 精度,比例 精度 比例) CHAR(长度 长度) 长度 VARCHAR2(长度 长度) 长度 DATE ROWID 存储数据库表中每一行的物理地址 UROWID 存储数据库表中每一行物理的、逻辑的 存储数据库表中每一行物理的、 或外部的( 或外部的(非Oracle的)地址 的 BOOLEAN
PLSQL基础培训PPT课件
PL/SQL 语言
SQL中操作符的使用
定义:操作符是保留的字或字符,主要用于比 较和算术运算。
分类:比较操作符,逻辑操作符和算术运算符。 1、比较操作符
包括:=,<>, >, <, <=, >=。 注意比较双方的数据类型。 2、算术运算符 包括:+,-,*,/等。 与数学运算规则一致。
PL/SQL 语言
PL_SQL基础培训
通过本章的学习应该掌握:
PL/SQL语言的编程规范 Oracle数据库的基本数据类型和函数 应用PL/SQL语言编写基本的sql
PL_SQL基础培训
一、PL/SQL语言编程规范 1)命名
语言---命名使用能表述对象意义的单词或者约定俗成的符号,不允 许使用中文或者特殊符号。
单词分隔---命名的各单词使用下划线进行分隔。 保留字----命名禁止使用sql保留字(可以在v$reserved_words视
图中查找所有的保留字)。 命名长度---限制在30个字符内(含前缀)。
PL_SQL基础培训
2)命名规范
普通变量---前缀为v_,存放字符、数字、日期型变量。 游标变量---前缀为cur_,存放游标记录集。 存储过程---前缀为p_,按照业务操作命名。 函数---前缀为f_,按照业务操作命名。 包---前缀为pkg_,按照业务操作集合命名。 触发器---前缀为trig_,触发器名是前缀+表名+触发器名 索引---前缀为IDX_,索引名是前缀+表名+索引字段
Sequence_of_statement1; ELSE
Sequence_of_statement2; END IF;
PL_SQL基础培训
OraclePLSQL基础培训
12
基础知识-声明变量-声明变量示例
• 变量声明:
13
基础知识-声明变量-声明变量示例
• 变量赋值:
14
基础知识-声明变量-变量作用域
• 作用域:
• PL/SQL变量作用域从变量声明开始,到代码块结束 • 子块声明的变量,对块不可见 • 字块同名变量会覆盖父块变量 • 定义父块时指定块名,在字块通过父块名.变量名,引用父块同
• 使用-- 做单行注释,/* */做多行注释 • 在DECLARE部分声明变量 • NULL语句表示什么都不做 • RETURN语句,显示退出PL/SQL块执行 • PL/SQL块可以嵌套
8
基础知识
• 声明变量
• 基本语法 • 变量类型 • 声明变量示例 • 变量作用域
9
基础知识-声明变量-基本语法
• 日期 • DATE
• 布尔 • BOOLEAN
PLSQL基本操作手册
PL/SQL基本操作手册PL/SQL(Procedural Language/Structured Query Language)是一种基于SQL 语言的过程编程语言,它在Oracle数据库中非常常见。
本文将介绍PL/SQL的基本操作,如变量、控制语句、游标等。
变量和常量变量可以使用DECLARE语句声明。
在代码中,变量必须指定它们的类型,例如NUMBER、VARCHAR2或BOOLEAN。
DECLAREv_employee_id NUMBER:=100;v_employee_name VARCHAR2(50) :='John Doe';v_is_hired BOOLEAN:=TRUE;BEGIN-- code goes hereEND;常量是一个不可变的参数,可以使用CONSTANT关键字定义。
常量的值不会在程序中更改。
DECLAREc_tax_rate CONSTANT NUMBER(4, 2) :=0.08;BEGIN-- code goes hereEND;控制语句控制语句提供了决策和循环结构。
IF语句IF语句用于对一个表达式进行测试,以确定哪个分支应该执行。
IF expression THEN-- code goes hereELSIF expression THEN-- code goes hereELSE-- code goes hereEND IF;CASE语句CASE语句用于检查多个可能的条件。
CASE expressionWHEN value1 THEN-- code goes hereWHEN value2 THEN-- code goes hereELSE-- code goes hereEND CASE;LOOP语句LOOP语句用于无限的循环,可以通过某些条件来终止循环。
LOOP-- code goes hereEXIT WHEN expression;END LOOP;WHILE语句WHILE语句用于执行一系列语句,只要指定条件为TRUE。
PLSQL基本操作手册
第1章用PLSQL连接Oracle数据库PLSQL只能用来连接Oracle数据库(不象PB还可以连接JDBC、ODBC),所以必须首先安装并配置Oracle客户端。
§1.1初次登录PLSQL:运行PLSQL通过如下界面连接Oracle数据库:Database的下拉列表中自动列出了Oracle客户端配置的所有服务名。
选择要连接的Oracle服务名,并输入用户名/密码。
点击ok进行连接。
§1.2登录信息保存功能设置:如果设置了登录信息保存功能,可以通过以下方式连接数据库,而不必每次输入用户名/密码。
点击,在下拉列表中选择之前保存的数据库登录信息,直接进行连接。
登录信息保存功能设置:进入PLSQL后,在菜单区点击右键,出现如下PLSQL配置界面。
将Store with password 选中即可,这样第一次通过用户名/密码登录某数据库后,下次就不用再输入用户名/密码了。
§1.3进入PLSQL后切换数据库连接:点击,选择要连接的数据库即可完成切换。
第2章PLSQL中编写SQL语句并执行点击,并选择SQL Window进入SQL语句编写界面,如下:点击,执行SQL语句,页面右下方出现结果列表。
如下图:(执行快捷键为:F8)点击,使结果全部呈现。
第3章PLSQL中查看数据库表结构§3.1查看表结构:在如下界面,按住Ctrl键并将鼠标移动到一个表名,此时表名变了颜色:点击表名,便可显示表结构,如下图:§3.2表结构窗口和SQL编写窗口切换:在Tools菜单中,选中Window List,此时会新打开一个窗口,将其放置到左下脚,窗口中罗列了右下方操作区打开的所有窗口,通过选择可以进行窗口切换。
也可通过以下方式进行切换:在Window菜单最下方罗列了操作区打开的所有窗口,通过选择可以进行窗口切换。
第4章PLSQL中SQL语句的注释选取想要注释的语句,点击进行注释,如下:结果如下:取消注释点击。
PLSQL系列培训之一:基本语法(幻灯说明稿)
PL/SQL系列培训之一:基本语法第一讲分四个部分:SQL基本语法、基本逻辑控制、事务和异常SQL基本语法SQL分类数据定义语言DDL:CREATE/DROP/ALTER/COMMENT/TRUNCATE等数据操作语言DML:UPDA TE/DELETE/INSERT/CALL/SELECT FOR UPDA TE等数据控制语言DCL:GRANT/REVOKE/COMMIT/ROLLBACK等SELECT FOR UPDATESELECT FOR UPDA TE锁住某个表的相关行。
如果是多表查询:SELECT FOR UPDA TE of table.column----用来表连接时锁住其中一个表的相关行;----否则将锁住所有表(包括from子查询,不包括条件子查询)的相关行举例:SELECT t1.id, FROM test_table1 t1, test_table2 t2WHERE t1.id = t2.idFOR UPDA TE of t1.idLOCK TABLELOCK TABLE table_name IN lockmode MODE (NOWAIT)LOCK TABLE tanjie21 IN SHARE UPDATE MODE; --同下LOCK TABLE tanjie21 IN ROW SHARE MODE; --行共享锁,其他会话无法获得排他锁LOCK TABLE tanjie22 IN ROW EXCLUSIVE MODE; --行排他锁,禁止SHARE锁定--UPDATE/DELETE/INSERT自动获得LOCK TABLE tanjie23 IN SHARE MODE; --表共享锁LOCK TABLE tanjie24 IN EXCLUSIVE MODE; --表排他锁LOCK TABLE tanjie25 IN SHARE ROW EXCLUSIVE MODE; --表级共享行级排他W AIT/NOW AITNOWAIT --报ora-00054WAIT integer(秒) --报ora-30006EXECUTE IMMEDIATE处理动态SQL的两种方式:(1)EXECUTE IMMEDIA TE(2)OPEN-FOR, FETCH, and CLOSE性能优化(以后再讲):BULK EXECUTE IMMEDIA TEEXECUTE IMMEDIA TE的完整语法:EXECUTE IMMEDIATE dynamic_SQL_string[INTO defined_variable1, defined_variable2, ...][USING [IN | OUT | IN OUT] bind_argument1, bind_argument2, ...] [RETURNING INTO | RETURN bind_argument1, bind_argument2, ...]使用INTO子句确定返回的是单行查询结果(与SELECT INTO类似)SUB QUERY标准子查询:和主查询没有直接联系,在ORACLE中首先执行且只执行一次关联子查询:在执行过程中需要与主查询发生联系,如子查询的条件依赖于主查询传递的条件。
SFPLSQL基础操作培训20131120
数据操纵命令DDL数据操纵命令主要对存储于数据库的数据进行操作,如新增、删除、修改等。
1. L2.1新增记录Insert例:Insert Into test_table Values (test_valuel, test_value2);或Insert Into test_table (test_fieldl» test_field2) Values (test_valuebtest_value2);•插入空值例 : Insert Into test_table(test_fieldl, test_field2) Values (test_valuel, NULL);•插入包含单引号的数据插入包含单引号的数据,应先将Scan 设为OFF,再运行Insert 语句。
其中,单引 号表示为2个单引号例:Set Scan OffInsert Into test_table (:est_field ・ test_field2) Value (test_value, ' Intex System' );Set Scan On 1.1. 2. 2 修改记录 Update例:Update test_table Set test_fieldl=* IHIC . test_field2=* IC*★ Update 可以使用Where 子句以限定记录更改范围Delete From test_table Where test_field=' IC* :例:★ Fruncate Delete 的区别在于,Fruncate 执行后,不能撤消:Delete 执行后,只 要还没有提交就可以撤消。
1-1.4数据检囊命令Select数据检索命令主要用于对存储于数据库的数据进行查询统讣。
1. L<1常规语法使用通配符可以表示需要显示所有字段。
例:Select * From test_table;•选;^^待定的列1. L2. 3 删除记录Delete例: 1.12.4 删除记录FruncateFriincate From test-table Where test_field=* IC ;例J Select test_fieldb test_field2 From test_table;•利用表中数据进行计算例J Select test_fieldb test_field2+test_fieldl*2 Krom test_table;•连接多个文本PL/SQL语言中,连接多个文本的命令符为“H”(不同于其它语言的“ + ”和“&”), Select语句中除了可以连接不同的字段外,还可以连接其它字符型文本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle PL/SQL Training.
1-16
标识符
PL/SQL程序设计中的标识符定义要求和限制有: 1. 标识符名不能超过30字符; 2. 第一个字符必须为字母; 3. 不分大小写; 4. 不能用’-‘(减号); 5. 不能是SQL保留字。
提示: 一般不要把变量名声明与表中字段名完全一样, 如果这样可能得到不正确的结果.
1-22
Inside SQL Functions – Table 2
Category Date time Conversion
Function Name
Examples
ADD_MONTHS
SELECT ADD_MONTHS(SYSDATE,1) FROM DUAL
LAST_DAY
SELECT LAST_Y(SYSDATE) FROM DUAL
要执行的语句;
END LOOP 每循环一次,循环变量自动加1;使用关键字REVERSE,
循环变量自动减1。跟在IN REVERSE 后面的数字必须是从小 到大的顺序,而且必须是整数,不能是变量或表达式。 可以使用EXIT 退出循环
Oracle PL/SQL Training.
1-21
Inside SQL Functions – Table 1
END IF; 2. IF <布尔表达式> THEN
PL/SQL 和 SQL语句
ELSE 其它语句
END IF; 3. IF <布尔表达式> THEN
PL/SQL 和 SQL语句 ELSIF < 其它布尔表达式> THEN
其它语句 ELSIF < 其它布尔表达式> THEN
其它语句
ELSE 其它语句
1-2
SQL and PL/SQL
1). PL/SQL and Oracle version
2). Available SQL in PL/SQL
SELECT, INSERT, UPDTE, DELETE, COMMIT, ROLLBACK, SAVEPOINT
3). Execute PL/SQL
Oracle PL/SQL Training.
1-5
第二章: PL/SQL編程規範
變量定義
1). 變量統一以固定的標識開始,如V_,X_等,以方便快速識別. 2). 變量的取名應以可以讀懂為先. 3). 與Table Column相關聯的變量定義類型時,
盡量關聯Column的定義類型. 4). 對于有默認值的變量盡量使用default. 5). 對Cursor的定義應使用與變量不同的固定標識開始﹐如C_. 6). 定義變量時盡量使得變量左對齊,格式左對齊.
END IF;
提示: ELSIF 不能写成 ELSEIF
Oracle PL/SQL Training.
1-19
PL/SQL控制結構之二: CASE語句 CASE selector
WHEN expression1 THEN result1 WHEN expression2 THEN result2 WHEN expression N THEN result N [ ELSE resultN+1] END;
要执行的语句; EXIT WHEN <条件语句> /*条件满足,退出循环语句*/
END LOOP;
PL/SQL控制結構之三(2): WHILE 循环 WHILE <布尔表达式> LOOP
要执行的语句;
END LOOP;
PL/SQL控制結構之三(3): 数字式循环 FOR 循环计数器 IN [ REVERSE ] 下限 .. 上限 LOOP
Category Function Name CHR, ASCII LOWER, UPPER LPAD, RPAD
Character
LTRIM, RTRIM SUSTR, SUBSTRB INSTR,INSTRB LENGTH MOD ROUND
Number TRUNC
ABS FLOOR
Oracle PL/SQL Training.
MONTH_BETWEEN SELECT
MONTHS_BETWEEN(SYSDATE,SYSDATE-30) FROM DUAL
ROUND
SELECT ROUND(SYSDATE,'MM') FROM DUAL
TRUNC
SELECT TRUNC(SYSDATE,'MM') FROM DUAL
TO_CHAR
SELECT INSTR('ABC','A',1) FROM DUAL SELECT LENGTH('ABC') FROM DUAL SELECT MOD(123,10) FROM DUAL SELECT ROUND(123.15,1),ROUND(123.15,-1) FROM DUAL SELECT TRUNC(123.15,1),TRUNC(123.15,-1) FROM DUAL SELECT ABS(-123) FROM DUAL SELECT FLOOR(-123.5),FLOOR(123.5) FROM DUAL
SELECT TO_CHAR(12323,'9,9999') FROM DUAL
SELECT TO_CHAR(SYSDATE,'YYYY-MM-DD') FROM DUAL
TO_NUMBER
SELECT TO_NUMBER('1,2323','9,9999') FROM DUAL
TO_DATE
SELECT TO_DATE('19:12:34','HH24:MI:SS') FROM DUAL
Oracle PL/SQL Training.
1-6
變量定義 Sample
Oracle PL/SQL Training.
1-7
程序頭
為方便閱讀者能很快的知道該程序的用途,作者,日期等信息時, 我們需在每一個程序的開頭加入如下的注釋信息﹕
1). Program Name該程序挂在系統中的名稱是什么 2). Purpose該程序的用途﹑作什么用途。
并在程序頭注明修改版次
Oracle PL/SQL Training.
1-10
程序體 Sample
Oracle PL/SQL Training.
1-11
使用Exception的几點建議
1.一般不在一段連續的的動作之間使用Exception﹐ 防止相關聯的計算只成功一半。
2.一般不要使用Exception而不做任何動作﹐ 這樣很容易忽略錯誤而不被記錄或提示。
PL/SQL 程序設計基礎
Version 1.01
內容
第一章: PL/SQL簡介 第二章: PL/SQL編程規範 第三章: PL/SQL基礎 第四章: 游標 第五章: 過程和函數 第六章: 包 第七章: 触发器 第八章: 錯誤處理
Oracle PL/SQL Training.
Oracle PL/SQL Training.
1-13
子程式(procedure, function)的定義規范
1. 參數統一以固定的標識開始(P_)﹐ P_Parametername﹐ 以方便快速識變量(V_)和參數(P_)。
2. 對于該子程式所要完成功能的應該作一個簡單的描述(Purpose)。 3.子程式上建議寫上Modification History﹐以便以后追蹤和問訊。 4. 子程式寫法應該遵循簡單易懂為原則﹐不必過分追求編程上的技巧。
也可以加注基本的執行步驟。 3). Who Set用來追蹤﹐維護程序
Oracle PL/SQL Training.
1-8
程序頭 Sample
Oracle PL/SQL Training.
1-9
程序體
1. 程序中的字母大小寫規律化,(如關鍵字要大寫開頭…….﹐ 我們暫時只要求到同一大小寫)。
2. 段落的縮進格式要統一﹐每次縮進的長度要一致。一般為三個字符位。 3. @BEGIN…...END﹔要縮進 4. @LOOP要縮進 5. @子嵌套時要縮進 6. 當有多個或多層嵌套循環時﹐應在循環結束時標記。以方便解讀。 7. PL/SQL中的SQL語句應遵守SQL的格式規范 8. 寫程序時﹐應適時的Mark一些說明﹐以便理解。 9. 修改程序時﹐一定要注明修改原因﹑修改時間及修改人。
Oracle PL/SQL Training.
1-17
类型 CHAR VARCHAR2 NUMBER DATE BOOLEAN
ROWID LOB
PL/SQL 基本变量类型
说明 定长字符串 可变字符串 數值類型 日期型 布尔型
范围 032767 04000
TRUE, FALSE,NULL
存放数据库行号 大對象類型
Examples
SELECT CHR(65),ASCII('A') FROM DUAL SELECT LOWER('A'),UPPER('a') FROM DUAL SELECT LPAD('ABC',5,'XX') FROM DUAL SELECT TRIM(' ABC') FROM DUAL SELECT SUBSTR('ABC',1,2) FROM DUAL
SQL and PL/SQL engine SQL*Plus Develop tools
Oracle PL/SQL Training.
1-3
Oracle數據庫服務器
Oracle數據庫服務器