Oracle_01_PLSQL基础(2020年12月)

概述

零基础学Oracle资源地址: 零基础学oracle(百度云盘资源)

1. Oracle简介


Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。 是在数据库领域一直处于领先地位的产品。可以说Oracle数据库系统是目前世界上流行的关系数据库管理系统,系统可移植性好、使用方便、功能强,适用于各类大、中、小、微机环境。它是一种高效率、可靠性好的、适应高吞吐量的数据库解决方案。

2. PL/SQL概述


PL/SQL(Procedural Language/SQL)是Oracle数据库对SQL语句的扩展。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL就是把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算的程序语言。 PL/SQL是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服务器和自身引擎两个执 行器执行代码。 如图:

Oracle_01_PLSQL基础(2020年12月)_第1张图片

优点:

  • 提高程序性能
  • 提供模块化程序开发能力
  • 良好的兼容性
  • 允许定义标识符
  • 提供了程序控制结构
  • 提供了异常处理

3. PL/SQL基本语法


PL/SQL是一种块结构的语言。一个PL/SQL包含了一个或多个逻辑快,逻辑块中可以声明变量、写程序主体、还可以捕获异常和异常处理。每个逻辑快分为三个部分,语法结构如下:
declare 
/** 
定义部分:常量、变量、复杂数据类型、游标、异常 
*/ 
begin 
/** 
执行部分:PL/SQL语句和SQL语句 
*/ 
exception 
/** 
异常处理部分 
*/ 
end;
/*块结束标记*/

例1:只包含执行部分的块

 --set serveroutput on --注意,pl/sql不支持,可以在sqlplus中执行 
 begin 
 	dbms_output.put_line('hello,pl/sql'); 
 end; 

例2:包含定义和执行部分的块

declare 
	v_date varchar2(20); 
begin 
	select to_char(sysdate,'yyyy-mm-dd') into v_date from dual; 
	dbms_output.put_line('today is ' || v_date); 
end;

例3:包含定义、执行部分和异常处理部分的块

declare 
	v_title varchar2(100); 
begin 
select title into v_title from book where id = 2; 
	dbms_output.put_line('title is ' || v_title); 
exception when no_data_found then 
	dbms_output.put_line('书号错误'); 
end;

以上都是匿名块,还可以定义带名称的过程、函数、包、触发器等,后面详述。
总结:
  • PL/SQL是一种编程语言,有自己独有的数据类型,变量声明和赋值以及流程控制语句。
  • 对大小写不敏感,但是为了规范:关键字全部大写,其余部分小写。
  • 每一条语句以分号结束。 PL/SQL符号说明
    Oracle_01_PLSQL基础(2020年12月)_第2张图片

4. 数据类型与变量


4.1 标量变量

即只能存入单个值的变量。

  1. 常用标量数据类型
    Oracle_01_PLSQL基础(2020年12月)_第3张图片

  2. 定义标量变量

	v_name varchar2(100); 
	v_age number(3) := 18;
  1. 使用%type属性
	v_name customer.name%type;
4.2 复合变量

1. Record
可存放表里的一条数据,类似javabean封装数据,使用type…is record定义。
例1:

declare 
	type book_type is record( 
		id number(10), 
		title varchar(100) );
	book_record book_type; 
begin select id,title into book_record from book where id=1; dbms_output.put_line(book_record.id || ':' || book_record.title); 
end;

例2:

declare 
	book_record book%rowtype; 
begin 
	select id,title into book_record from book where id=4;
	dbms_output.put_line(book_record.id || ':' || book_record.title); 
end;

2. 集合类型
例1:

declare 
	type book_table_type is table of book%rowtype index by binary_integer; 
	book_table book_table_type; 
begin 
	select id,title into book_table(-1) from book where id=1;--注意这里不支持集合数据 
	dbms_output.put_line(book_table(-1).id || ':' || book_table(-1).title); 
end;

例2:

declare 
	type book_table_type is table of book%rowtype index by binary_integer; 
	book_table book_table_type; 
begin 
	select id,title bulk collect into book_table from book ; 
	dbms_output.put_line(book_table(1).id || ':' || book_table(1).title);--注意索引从1 开始
end;

3. 游标变量
(后面会给大家讲到)

5. PL/SQL词汇

1. 标识符
用于指定程序单元和程序项的名称,可以定义常量、变量、异常、游标等名称
强调两点:

  • 最大长度30个字符
  • 不能使用oracle关键字

2. 字面量
字面量是指由字母,数字等构成的字符串或者数值,它只能作为右值出现,所谓右值是指等号右边的值
a) 数字字面量
b) 字符字面量
c) 字符串字面量
d) 布尔字面量 :true、false、null
e) 日期字面量

3. 注释

a) 单行注释

-- 注释内容

b) 多行注释

/* 注释内容 */

注:
(本博客资源源于网络资料整理与个人见解结合,如有雷同相似之处,请私信作者)

你可能感兴趣的:(oracle,数据库)