PL/SQL基础

1.PL/SQL 简介

PL/SQL 是过程语言(Procedural Language)与结构化查询语言(SQL)结合而成的编程语言

PL/SQL 是对 SQL 的扩展

支持多种数据类型,可使用条件和循环等控制结构

可用于创建存储过程、触发器和程序包,给SQL语句的执行添加程序逻辑

与 Oracle 服务器和 Oracle 工具紧密集成,具备可移植性、灵活性和安全性

支持 SQL,在 PL/SQL 中可以使用:

1.数据操纵命令

2.事务控制命令

3.游标控制

4.SQL 函数和 SQL 运算符

用户把PL/SQL块整个发送到服务器端,oracle服务器端编译、运行,再把结果返回给用户

可移植性,可运行在任何操作系统和平台上的Oralce 数据库

更佳的性能,PL/SQL 经过编译执行

安全性,可以通过存储过程限制用户对数据的访问

与 SQL 紧密集成,简化数据处理。

支持所有 SQL 数据类型

支持 NULL 值

支持 %TYPE 和 %ROWTYPE 属性类型

PL/SQL 块简介

PL/SQL 块是构成 PL/SQL 程序的基本单元

将逻辑上相关的声明和语句组合在一起

PL/SQL 分为三个部分,声明部分、可执行部分和异常处理部分

   [DECLARE 

    declarations]

    BEGIN

    executable statements

    [EXCEPTION

    handlers]

END;

2.标识符

使用标识符来为PL/SQL程序中的常量、变量、游标等命名。

标识符可以由字母、数字、美元符号($)、下划线(_)和数字符号(#)组成。以字母开头

如果有其它特殊字符要使用双引号括起来

   最长不超过30个英文字母的长度

3.数据类型

PL/SQL数据类型不但支持Oracle SQL中的数据类型,还有自身自带的数据类型。

  (1)数值类型:

     number(p,s):存放各种数字类型数据

     pls_integer,binary_integer:数值类型,只能存放整数

  (2)字符串类型:

     varchar2(len):变长字符串类型,存放字符串类型数据

     char(len):定长字符串类型

注:sql中的CHAR最大字节长度为2000字节,plsql中的CHAR最大字节长度为32767字节  

sql中的VARCHAR2最大字节长度为4000字节,plsql中的VARCHAR2最大字节长度为32767字节

  (3)日期类型:

     date:日期类型

  (4)%type类型

  %type:它的类型是取数据库表中某一个字段的类型,作为变量类型

  写法:

     表名.列名%type; --完整的类型

     emp.ename%type 等同于 varchar2(10)

  (5)record类型

  普通的数据类型声名的变量,只能存放一个值,记录类型是存放一组值

  它使用前需要去定义一个确定类型

  

  1>记录类型的定义:

  type type_name is record(

      变量名 数据类型,

      变量名 数据类型,

      变量名 数据类型

  );

  type_name:记录类型名称

  type emp_type is record(

      ename varchar2(10),

      job emp.job%type,

      sal emp.sal%type

  );

  

  

  

  2>声名一个记录类型变量

  变量名 记录类型;

  

  v_emp emp_type;

  

  3>给记录类型赋值

  变量名称.属性名

  

  v_emp.ename:='张三';

  

  (6)%rowtype类型

  %rowtype:它是%type类型和record类型的结合

  

  表名%rowtype

  dept%rowtype

v_dept dept%rowtype;

4.变量和常量

  变量:它是存储数据的,它里面存放的值是可以根据程序需要改变的。

  变量的声名语法:

  变量名 数据类型 [NOT NULL] [:=默认值];

注: := 在plsql中是赋值符号

  declare

    v_n number(10):=1;

  begin

    v_n:=10;

  end;

  常量:它存储数据,一旦给它赋值,它的值就不可改变     

  常量名 constant 数据类型 :=默认值;

注:

&:输入符号

select * from emp where deptno=&deptno;  

select * from emp where ename='&name';

declare

  --声名一个number类型变量

  v_m number(10);

begin

  --从键盘输入一个数字存入变量v_m中

  v_m:=&请输入一个数字;

  --把变量v_m的值输出在控制台上

  dbms_output.put_line('v_m的值是:'||v_m);

end;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值