概述
零基础学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是一种块结构的语言,它将一组语句放在一个块中,一次性的发送给服务器,由服务器和自身引擎两个执 行器执行代码。 如图:
优点:
- 提高程序性能
- 提供模块化程序开发能力
- 良好的兼容性
- 允许定义标识符
- 提供了程序控制结构
- 提供了异常处理
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符号说明
4. 数据类型与变量
4.1 标量变量
即只能存入单个值的变量。
-
常用标量数据类型
-
定义标量变量
v_name varchar2(100);
v_age number(3) := 18;
- 使用%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) 多行注释
/* 注释内容 */
注:
(本博客资源源于网络资料整理与个人见解结合,如有雷同相似之处,请私信作者)