PLSQL PPT-Les05

合集下载

《PLSQL经典教程》课件

《PLSQL经典教程》课件

PLSQL变量与常量
了解如何定义和使用变量以及常量,实现 数据存储和常量值的复用。
PLSQL条件语句
学习使用条件语句(IF-THEN, IF-THEN-ELSE, IF-THEN-ELSIF)控制程序的执行流程。
PLSQL循环语句
掌握使用循环语句(LOOP, WHILE, FOR) 实现重复执行某一段代码的功能。
《PLSQL经典教程》PPT课 件
本课程旨在介绍PLSQL编程的基础知识和技能。通过本课程,您将全面了解 PLSQL语言的特点和高级应用,提升自己的编程能力。
简介
本课程为PLSQL经典教程PPT课件,旨在介绍PLSQL编程基础知识和技能。
第一章:PLSQL基础
PLSQL简介
PLSQL是Oracle数据库的编程语言,具有丰 富的数据处理和逻辑控制功能。
强制执行。
结束语
感谢您的耐心学习!希望本课程能对您的PLSQL编程有所帮助。
第二章:PLSQL高级应用
1
PLSQL异常处理
学习如何编写异常处理程序以及如
PLSQL游标
2
何定义和抛出异常。
了解如何定义、使用和操作游标,
处理和管理查询结果集。来自3PLSQL存储过程
学习如何定义和使用存储过程,提
PLSQL触发器
4
高编程的模块化和代码复用性。
掌握如何定义和使用触发器,实现 数据库操作的自动化和业务规则的

第4章-使用PLSQL语言PPT课件

第4章-使用PLSQL语言PPT课件
select * into v_dept_table(0) from dept where deptno=10; select * into v_dept_table(1) from dept where deptno=20; dbms_output.PUT_LINE('编号:'||v_dept_table(0).deptno||' 名称:'
v_emp.empno:=&no; select * into v_emp from emp where empno=v_emp.empno; dbms_output.PUT_LINE('更新前的奖金'||nvl(v_m,0)); if v_m is null then
update emp set comm=v_emp.sal*0.1 where empno=v_emp.empno; elsIf v_m<1000 then
||v_dept_table(0).dname||' 所在地:'||v_dept_table(0).loc); dbms_output.PUT_LINE('编号:'||v_dept_table(1).deptno||' 名称:'
||v_dept_table(1).dname||' 所在地:'||v_dept_table(1).loc); end;
2021/1/11
.
5
PL/SQL块
所有的PL/SQL程序都以块作为基本单位
块中包含过程化语句和SQL的DML语句。这些块可以按顺序出现 ,也可以相互嵌套(一个块在另一个块的内部)
块的分类
匿名块
匿名块是出现在应用程序中的没有名字且不存储到数据库中的块

PLSQL编程基础ppt课件

PLSQL编程基础ppt课件
5
7.2 变量的声明与赋值
变量声明并使用变量: 变量名称可以有字母、数字、_、$、#等组成。 所有变量名称要求以字母开头,不能是Oracle中的保留字 变量的长度最多只能为30个字符 变量不区分大小写
6
7.2 变量的声明与赋值
声明变量语法: 变量名称 [CONSTANT] 类型 [not NULL] [:=value] 使用%TYPE声明变量类型: 在编写PL/SQL程序时,如果希望某一个变量与指定数据表中某 一列的类型一样,则可以采用 “变量定义”表名称.表名称%TYPE的格式
DBMS_OUTPUT.put_line('雇员:' || v_eno || '的收入为高工资。') ;
WHEN v_salary >= 2000 AND v_salary <3000 THEN
CASE语句
Case语句是一种多条件的判断语句,其功能与IF……elseif……else类似
Case语法:
Case[变量] when [值|表达式] THEN
执行语句块; when [值|表达式] THEN
执行语句块; Else
条件都不满足时执行语块; End case
22
7.4.1 分支结构
范例:使用CASE进行多条件判断
END IF;
19
7.4.1 分支结构
范例:用户输入一个雇员编号,根据它所在的部门给 上涨工资,规则:
·10部门上涨10%,20上涨20%,30上涨30%; ·但是要求最高不能超过5000,超过5000就停留在 5000。
20
7.4.1 分支结构
DECLARE
v_empSal
emp.sal%TYPE ;

《PLSQL基础》课件

《PLSQL基础》课件
2 函数的定义和应用
掌握函数的创建和使用,以便在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代码。

PLSQL简介.ppt

PLSQL简介.ppt

3
内容
PL/SQL的优点 PL/SQL块基本结构 PL/SQL块声明部分 PL/SQL块可执行部分 PL/SQL注释
4
PL/SQL的优点
在通过网络执行一个SQL语句来访问Oracle数据库时,会将各个语 句都发送到服务器,进行处理,然后执行它们,向用户返回结果 (或一个消息)。每一个SQL语句都最少需要在网络中两次经过 “旅行”,一次是从用户到服务器,另一次是从服务器到用户。这 会产生大量网络数据流量。 在过程语言SQL(Procedure Language SQL,PL/SQL)程序嵌入SQL 语句是取代执行多个SQL语句的另一种方法。PL/SQL扩展了SQL的功 能。具有如下优点:
'||v_title||'is $'||v_newretail); END;
9
基本结构
分析示例: PL/SQL块的声明部分包括一个常量(c_)和三个变量(v_)。 可执行部分使用一个SELECT语句来检索两个不同列(Title和Retail) 的内容,并将这些值存储到(INTO)在声明部分指出的变量中。 注意,在SELECT子句中对Retail列执行力算术运算,以便确定这本书 的新价格。零售价将乘以存储在c_rateincrease变量(它的值实际上 是1.20或者120%)中的数量。 在将储在声明的变量中之后,就可以使用DBMS_OUTPUT程序包(DBMS_ OUTPUT.PUT_LINE)的PUT_LINE函数显示它们。与以前在SQL*Plus中执 行的SELECT命令不同,PL/SQL块在默认情况下不会显示SELECT语句的 结果。 DBMS_OUTPUT是一个包含一组函数的程序包,用户可以应用这 些函数来显示为变量指定的值。 使用DBMS_ OUTPUT.PUT_LINE显示信息之前,需要在SQL>提示符下键入 SET SERVEROUTPUT ON , SERVEROUTPUT 环境变量指出分配一个缓冲 区来存储PL/SQL块的输出。ON可以创建缓冲区。

PLSQL课件.ppt

PLSQL课件.ppt

1 PL/SQL简介
❖ SQL是属于第四代语言(4GL),其执行特点是非 过程化(描述性语言)。
❖ 然而,对于有些复杂的业务流程又要求相应的程序 来描述,那么4GL就有些无能为力了。PL/SQL的 出现正是为了解决这一问题,PL/SQL是一种过程 化语言,属于第三代语言,它与C,C++,Java等语言 一样关注于处理细节,因此可以用来实现比较复杂 的业务逻辑。
(4)可以使用Oracle数据工具管理存储在服务器中的PL/SQL 程序的安全性。可以授权或撤销数据库其他用户访问 PL/SQL程序的能力。
(5)PL/SQL代码可以使用任何ASCII文本编辑器编写,所以 对任何Oracle能够运行的操作系统都是非常便利的。
开发运行环境
❖ PL/SQL 不需要显式的安装或许可。它是 Oracle数据库的隐式部分。PL/SQL 编译器 和解释器也嵌入到多个 Oracle 工具中。
❖ Variable_name [CONSTANT] databyte [NOT NULL][:=|DEFAULT expression]
❖ v_id number; 声明变量 ❖ v_id CONSTANT NUMBER:=0 常量声明并赋值 ❖ birthdate DATE; ❖ emp_count SMALLINT DEFAULT 0; ❖ acct_id VARCHAR2(5) NOT NULL := 'AP001'; ❖ acct_id VARCHAR2(5) NOT NULL; -- 不合法,
变量赋值
❖ v_id:=5; --在程序执行部分赋值 ❖ Select a.deptno into v_dept … ❖ Fetch c1 into vname

PLSQL_Les05--包

PLSQL_Les05--包



创建一个新的包头 创建一个新的包体 修改一个已有包头 修改一个已有包体 删除包头和包体 删除包体 重新编译包头 重新编译包在一起 在一个用户的环境中解决命名的冲突问题
方便了过程和函数的管理
在不改变包头的定义是以可以改变包体的定义 限制过程的依赖性
包的规范
包规范(Package Specification),也就是“包头”,package 也就是“包头” Header, 包含了有关包的内容的信息. 但是不包含任何过程的代码.
CREATE OR REPLACE PACKAGE ClassPackage AS -- Add a new student into the specified class. PROCEDURE AddStudent(p_StudentID IN students.id%TYPE, p_Department IN classes.department%TYPE, p_Course IN classes.course%TYPE); -- Exception raised by RemoveStudent. e_StudentNotRegistered EXCEPTION; -- Table type used to hold student info. TYPE t_StudentIDTable IS TABLE OF students.id%TYPE INDEX BY BINARY_INTEGER; END ClassPackage;
包的管理
内 容
CREATE PACKAGE CREATE PACKAGE BODY CREATE OR REPLACE PACKAGE CREATE OR REPLACE PACKAGE BODY DROP PACKAGE DROP PACKAGE BODY ALTER PACKAGE package-name COMPILE PACKGAE ALTER PACKAGE package-name COMPILE PACKGAE BODY

PLSQL基础培训PPT课件

PLSQL基础培训PPT课件
PL_SQL基础培训
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基础培训
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

5-7
Copyright © Oracle Corporation, 2001. All rights reserved.
Using the COUNT Function
COUNT(*) returns the number of rows in a table.
SELECT COUNT(*) FROM employees WHERE department_id = 50;
The average salary 3500 in EMPLOYEES table 6400 for each department.
10033

5-13
Copyright © Oracle Corporation, 2001. All rights reserved.
Creating Groups of Data: The GROUP BY Clause Syntax
SELECT AVG(NVL(commission_pct, 0)) FROM employees;
5-12
Copyright © Oracle Corporation, 2001. All rights reserved.
Creating Groups of Data
EMPLOYEES
4400 9500
Grouping by More Than One Column
EMPLOYEES

“Add up the salaries in the EMPLOYEES table for each job, grouped by department.
5-17
Copyright © Oracle Corporation, 2001. All rights reserved.
The GROUP BY column does not have to be in the SELECT list.
SELECT AVG(salary) FROM employees GROUP BY department_id ;
5-16
Copyright © Oracle Corporation, 2001. All rights reserved.
5-20
Copyright © Oracle Corporation, 2001. All rights reserved.
Excluding Group Results
EMPLOYEES

The maximum salary per department when it is greater than $10,000
SELECT COUNT(DISTINCT department_id) FROM employees;
5-10
Copyright © Oracle Corporation, 2001. All rights reserved.
Group Functions and Null Values
Group functions ignore null values in the column.
EMPLOYEES
The maximum salary in the EMPLOYEES table.

5-3 Copyright © Oracle Corporation, 2001. All rights reserved.
Types of Group Functions
• AVG • COUNT • MAX • MIN • STDDEV • SUM • VARIANCE
HAVING clause
5-2
Copyright © Oracle Corporation, 2001. All rights reserved.
What Are Group Functions?
Group functions operate on sets of rows to give one result per group.
5-8
Copyright © Oracle Corporation, 2001. All rights reserved.
Using the COUNT Function
• •
COUNT(expr) returns the number of rows with non-null values for the expr. Display the number of department values in the EMPLOYEES table, excluding the null values.
5-21
Copyright © Oracle Corporation, 2001. All rights reserved.
Excluding Group Results: The HAVING Clause
Use the HAVING clause to restrict groups: 1. Rows are grouped. 2. The group function is applied.
department_id, AVG(salary) employees AVG(salary) > 8000 department_id;
SELECT FROM WHERE GROUP BY
WHERE
AVG(salary) > 8000 * ERROR at line 3: ORA-00934: group function is not allowed here
SELECT FROM [WHERE [GROUP BY [ORDER BY
column, group_function(column) table condition] group_by_expression] column];
Divide rows in a table into smaller groups by using the GROUP BY clause.
• •
COUNT(DISTINCT expr) returns the number of distinct non-null values of the expr. Display the number of distinct department values in the EMPght © Oracle Corporation, 2001. All rights reserved.
Using the AVG and SUM Functions
You can use AVG and SUM for numeric data.
SELECT AVG(salary), MAX(salary), MIN(salary), SUM(salary) FROM employees WHERE job_id LIKE '%REP%';
5-19
Copyright © Oracle Corporation, 2001. All rights reserved.
Illegal Queries Using Group Functions
• • •
You cannot use the WHERE clause to restrict groups. You use the HAVING clause to restrict groups. You cannot use group functions in the WHERE clause.
5-6
Copyright © Oracle Corporation, 2001. All rights reserved.
Using the MIN and MAX Functions
You can use MIN and MAX for any data type.
SELECT MIN(hire_date), MAX(hire_date) FROM employees;
5-14
Copyright © Oracle Corporation, 2001. All rights reserved.
Using the GROUP BY Clause
All columns in the SELECT list that are not in group functions must be in the GROUP BY clause.
5-4
Copyright © Oracle Corporation, 2001. All rights reserved.
Group Functions Syntax
SELECT FROM [WHERE [GROUP BY [ORDER BY
[column,] group_function(column), ... table condition] column] column];
SELECT AVG(commission_pct) FROM employees;
5-11
Copyright © Oracle Corporation, 2001. All rights reserved.
Using the NVL Function with Group Functions
The NVL function forces group functions to include null values.
Aggregating Data Using Group Functions
Copyright © Oracle Corporation, 2001. All rights reserved.
Objectives
After completing this lesson, you should be able to do the following:
相关文档
最新文档