PL/SQL之基础篇】的更多相关文章

参考文献:<Oracle完全学习手册>第11章 1.PL/SQL概述 PL/SQL(Procedure Language/Structuer Query Language)是Oracle对标准SQL规范的扩展,全面支持SQL的数据操作.事务控制等.PL/SQL完全支持SQL数据类型,减少了在应用程序和数据库之间转换数据的操作. 构成PL/SQL程序的基本单位是程序块.程序块由过程.函数和无名块3种形式组成,它们之间可以互相嵌套. PL/SQL的运行工具有:SQL*Plus.PL/SQL dev…
目录 数据类型 定义变量 PL/SQL控制结构 参考资料 Oracle10g数据类型总结 PL/SQL之基础篇 数据类型 学习总结 字符类型 char.nchar.varchar.nvarchar:有n的以字符存储无n的以字节存储,有var是可变的,存储空间以实际大小存储,无var的是固定大小,从空格补齐. 数字类型 NUMBER(p[,s]):定点数,s为小数位数 BINARY_FLOAT:32位单精度浮点数类型 BINARY_DOUBLE:64位双精度浮点数类型. 时间类型 date 定义变…
原文地址:http://www.cnblogs.com/sin90lzc/archive/2012/08/30/2661117.html 参考文献:<Oracle完全学习手册> 1.概述 本文主要介绍PL/SQL中的有名程序块:存储过程.函数.包头/包体及触发器的使用.而这些的基础是PL/SQL无名块的编写,这在PL/SQL之基础篇 中已经讲述过了. 这四种程序块到底是什么东西呢? 存储过程可以认为它是一个无返回值的函数(排除参数返回): 函数则是一个带返回值的函数,但函数只能用于表达式中,不…
2.PL/SQL编程基础: PL/SQL块:        declare        定义部分        begin        执行部分        exception        异常处理部分        end结束标记 当使用dbms_output包输出数据或消息时,必须要将SQL*Plus的环境变量serveroutput设置为on.        如:set serveroutput on(输出显示打开) 命令行:        SQL>        用/结束命令行代…
Pl/SQL简介 提高应用程序的运行性能, 提供模块化的程序设计, 自定义标示符, 具有过程语言控制结构, 良好的兼容性, 处理运行错误. Pl/SQL语言基础 sql是关系数据库的基本操作语言. sql语言包括:数据查询,数据操纵,事物控制,数据定义和数据控制语言登5个部分. Pl/SQL块 Pl/SQ的基本单元 DECLARE /*定义部分-变量,常量,游标,列解*/ BEGIN /*定义部分-PL/SQL语句*/ EXCEPTION /*异常处理部分-处理运行错误*/ END;/*结束块标…
[PL/SQL编程基础]语法: declare 声明部分,例如定义变量.常量.游标 begin 程序编写,SQL语句 exception 处理异常 end: / 正斜杠表示执行程序快范例 -- Created on 2016/8/22 by VITAS declare 定义变量 v_num number; v_eno number; v_ename varchar2(10); begin v_num:=234; v_eno:=&empno; 接收输入变量 select ename into v_…
PL/SQL语言基础 进行PL/SQL编程前,要打开输出set serveroutput on 1.创建一个匿名PL/SQL块,将下列字符输出到屏幕:"My PL/SQL Block Works". 声明一个暂存员工号的变量v_empno,编写一个匿名块,查询smith员工的工号并输出显示. 2.编写一个PL/SQL块,输出所有员工的姓名.员工号.工资和部门号. 3.编写一个PL/SQL块,输出所有比本部门平均工资高的员工信息. 4.编写一个PL/SQL块,输出所有员工及其部门领导的姓…
  PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00…
PL/SQL PL/SQL 简介 每一种数据库都有这样的一种语言,PL/SQL 是在Oracle里面的一种编程语言,在Oracle内部使用的编程语言.我们知道SQL语言是没有分支和循环的,而PL语言是为了补充SQL语言的,是带有了分支和循环的语言. PL/SQL 语法 基本数据类型声明 declare v_name varchar2(20); v_temp number(1); v_count binary_integer := 0; v_sal number(7,2) := 4000.00;…
数据类型划分 在Oracle之中所提供的数据类型,一共分为四类: 标量类型(SCALAR,或称基本数据类型) 用于保存单个值,例如:字符串.数字.日期.布尔: 标量类型只是作为单一类型的数据存在,有的只能够在PL/SQL中使用. 复合类型(COMPOSITE) 复合类型可以在内部存放多种数值,类似于多个变量的集合, 例如:记录类型.嵌套表.索引表.可变数组等都称为复合类型: 引用类型(REFERENCE) 用于指向另一不同的对象,例如:REF CURSOR.REF: LOB类型 大数据类型,最多…
PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同在于,SQL没有变量,SQL没有流程控制(分支,循环).而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多条SQL语句一起发送给数据库,减少网络流量 SQL执行 PL/SQL执行 匿名Pl/SQL块 – 动态构造,只能执行一次 一次性完成,没有名字 存储过程,…
课程教师:李兴华 课程学习者:阳光罗诺 日期:2018-07-28 知识点: 1. 了解PL/SQL的主要特点 2. 掌握PL/SQL块的基本结构 PL/SQL PL/SQL是Oracle在关系数据库结构化查询语言SQL基础上扩展得到的一种过程化查询语言. SQL与编程语言之间的不同之处在于,SQL没有变量,SQL没有流程控制(分支.循环).而PL/SQL是结构化的和过程化的结合体,而且最为重要的是,在用户执行多条SQL语句时,每一条SQL语句都是逐一的发送给数据库,而PL/SQL可以一次性将多…
PL/SQL是ORACLE对标准数据库语言的扩展,ORACLE公司已经将PL/SQL整合到ORACLE server和其它工具中了,近几年中很多其它的开发者和DBA開始使用PL/SQL,本文将讲述PL/SQL基础语法,结构和组件.以及怎样设计并运行一个PL/SQL程序. 1.PL/SQL的长处 从版本号6開始PL/SQL就被可靠的整合到ORACLE中了,一旦掌握PL/SQL的长处以及其独有的数据管理的便利性,那么你非常难想象ORACLE缺了PL/SQL的情形.PL/SQL 不是一个独立的产品,他…
用数据库的方式思考SQL是如何执行的 虽然 SQL 是声明式语言,我们可以像使用英语一样使用它,不过在 RDBMS(关系型数据库管理系统)中,SQL 的实现方式还是有差别的.今天我们就从数据库的角度来思考一下 SQL 是如何被执行的. Oracle 中的 SQL 是如何执行的 我们先来看下 SQL 在 Oracle 中的执行过程: 从上面这张图中可以看出,SQL 语句在 Oracle 中经历了以下的几个步骤. 语法检查:检查 SQL 拼写是否正确,如果不正确,Oracle 会报语法错误. 语义检…
一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同: 标识符名第一个字符必须为…
create table mytest(name varchar(20),password varchar(30)); create or replace procedure sp_pro2 is  begin  insert into mytest values('fc','123'); end; 查看错误信息 show error 怎样调用该过程: 1. exec 过程名 (參数,..) 2.  call 过程名 (參数  ) set server output on begin  dbms…
异常处理 异常产生所带来的问题: 使用EXCEPTION程序块进行异常处理: 实现用户自定义异常. 使用异常可以保证在程序中出现运行时异常时程序可以正常的执行完毕: 用户可以使用自定义异常进行操作. 异常简介 在程序开发之中经常会由于设计错误.编码错误.硬件故障或其他原因引起程序的运行错误.虽然不可能预测所有错误,但在程序中可以规划处理某些类型的错误.在PL/SQL程序中的异常处理机制使得在出现某些错误的时候程序仍然可以执行.比如内部溢出或者零除等等. 用户可以处理的只有运行时异常,而对于编译的…
程序控制 程序结构有分支结构与循环结构: 分支结构语法:IF.CASE: 循环结构:FOR.WHILE LOOP:先执行再判断,至少执行一次: WHILE LOOP:先判断再执行,如果不满足条件,就不执行 FOR循环:已知要循环的次数. 如果明确知道循环次数,使用FOR循环: 如果不知道循环次数,但是知道循环结束条件,使用LOOP循环. 循环控制:EXIT与CONTINUE语句完成. PL/SQL程序与其他编程语言一样,也拥有自己的三种程序结构:顺序结构.分支结构.循环结构.这三种不同的结构都有…
变量的声明.赋值.运算符 1.声明并使用变量 变量可以在声明时赋值,也可以先定义后赋值: 使用%TYPE与%ROWTYPE可以根据已有类型定义变量. PL/SQL是一种强类型的编程语言,所有的变量都必须在它声明之后才可以使用,变量都要求在DECLARE部分进行声明,而对于变量的名称也有如下的一些规定: 变量名称的组成可以由字母.数字._.$.#等组成: 所有的变量名称要求以字母开头,不能是Oracle中的保留字(关键字): 变量的长度最多只能为30个字符. 声明变量的语法 所有的变量都要求在DE…
PL/SQL(Procedural Language extensions to SQL)是Oracle 对标准 SQL 语言的过程化扩展,是专门用于各种环境下对 Oracle 数据库进行访问和开发的语言. 一.概述 Oracle数据库对标准的SQL 语言进行了扩展,将 SQL 语言的非过程化与第三代开发语言的过程化相结合,产生了 PL/SQL 语言.在 PL/SQL 语言中,既可以通过SQL 语言实现对数据库的操作,也可以通过过程化语言中的复杂逻辑结构完成复杂的业务逻辑. 在PL/SQL程序中…
在前面的学习中,我们大部分接触的都是SQL语言,但是,在实现复杂操作的时候,SQL语言就无能为力了,这时候就需要引入新的语言,PL/SQL语言就是对SQL语言的扩展,可以实现存储过程,函数等的创建.下面是我对PL/SQL语言的总结,和大家分享一下. 一.基本结构 1.PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性发送给服务器,当PL/SQL引擎分析收到PL/SQL语句块中的内容,把其中的过程语句由PL/SQL引擎自身去执行,把PL/SQL语句块中的SQL语句交给服务器的SQL语…
1. PL/SQL块的基础结构 DECLARE /* * 定义部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行错误 */ END; /*块结束标记 */ 2. 使用变量和常量 1) PL/SQL 块中可以使用变量和常量 a. 在声明部分声明,使用前必须先声明 b. 声明时必须指定数据类型,每行声明一个标识符 c. 在可执行部分的 SQL 语句和过程语句中使…
如果有一些异常并没有异常名称,比如一些ORA-开头的异常并没有一个友好的预定义的异常定义,此时在WHEN子句中无法使用具体的异常名称,必须要使用OTHERS异常处理器进行捕捉.通过EXCEPTION_INIT编译指示,可以为这些不在预定义异常范围内的异常添加名称. 编译指示是指能在编译期而非运行时进行处理的编译指令. 编译指令EXCEPTION_INIT将告诉编译器,将异常名称和错误编号关联起来,使得在PL/SQL语句块中可以使用名称来引用所有的内部异常,为其在EXCEPTION语句块中编写特定…
在oracle中使用pl/sql来扩展SQL的功能,使得SQL能够更加的灵活,功能更加强大,效率更高.pl/sql让sql也能执行判断,循环等操作.主要记录一下pl/sql的基本语法和基本条件判断语句和循环语句供忘记了方便查阅. 1.pl/SQL的语法结构: declare //这部分用于声明变量 begin //这部分用于处理业务逻辑 exception //这部分用于处理例外也就是异常情况 end; 例如: declare uname varchar2(10); hello varchar2…
    花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句--select DML语句--insert,upate,delete等(关键…
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句——select DML语句——insert,upate,delete等(关键字后带表…
优化的步骤: 0.先sql运行看看是否真的很慢,注意设置SQL_NO_CACHE 1.where条件单表查,锁定最小返回记录表.这句话的意思是把查询语句的where都应用到表中返回的记录数最小的表开始查起,单表每个字段分别查询,看哪个字段的区分度最高 2.explain查看执行计划,是否与1预期一致(从锁定记录较少的表开始查询) 3.order by limit 形式的sql语句让排序的表优先查 4.了解业务方使用场景 5.加索引时参照建索引的几大原则 6.观察结果,不符合预期继续从0分析 对优…
  DML语句 insert 向表中插入新的记录   --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 insert into dept2 values(50,'DANAME','BEIJING');   --(2)指定某些字段往里插,其他不插的字段默认都是空值 insert into dept2(deptno,dname) values(60,'DNAME2');   --(3)将子查询的结果插入到表中 insert into dept2 select * from…
    多表连接查询 内连接(inner join) 目的:将多张表中能通过链接谓词或者链接运算符连接起来的数据查询出来. 等值连接(join...on(...=...)) --选出雇员的名字和雇员所在的部门名字 --(1)必须明确的指出重复字段属于哪个表 select ename,dname dept.deptno from emp,dept where emp.deptno = dept.deptno;   --(2)新语法:join...on(...=...) select ename,…
SQL语句 创建一个数据库: create database+数据库名; 使用数据库: use+数据库名; 查看mySQL中有哪些数据库: show databases; 删除数据库 drop database + 数据库名; 创建表: create table + 表名(列名+类型,-.,); 查看表: show tables; 查看表是如何创建的: show create table +表名; 添加数据: insert into + 表名 (列名,列名,-,列名) values(列名对应值)…