PL/SQL程序设计基础语法详解(一)

一.什么是PL/SQL(Procedure Language/SQL)

概念:PLSQL是Oracle对sql语言的过程化扩展

指在SQL命令语言中增加了过程处理语句(如分支、循环等),使SQL语言具有过程处理能力。

PL/SQL的结构:

declare
      说明部分    (变量说明,光标申明,例外说明 〕
begin
      语句序列   (DML语句〕…
exception
      例外处理语句
End;

简单的PL/SQL程序

如果是在命令行中需要使用 set serveroutput on先打开显示

declare
 --声明变量
begin
-- 程序执行的主体
dbms_output.put_line(‘Hello World‘); --输出语句
end;



二.PL/SQL程序的基本语法

1.常量和变量

2.变量类型

3.引用型变量和记录型变量的使用

引用型变量的使用

-- 查询并打印7839的姓名和薪水
declare
  -- 定义姓名和薪水的变量
  pname emp.ename%type; --即引用emp表中ename列的类型
  psal emp.sal%type;   --即引用emp表中sal列的类型

begin
  -- 查询语句 赋值的两种方式 1.:=   2. into关键字
  select ename,sal into pname,psal from emp where empno=‘7839‘;
  dbms_output.put_line(pname ||‘的薪水是‘|| psal);

end;

记录型变量

-- 查询并打印7839的姓名和薪水
declare
  -- 定义记录型变量,代表一行
 dec_emp emp%rowtype; --即记录了emp表中一行的类型,使用的时候直接.调用
begin
  -- 查询语句
  select * into dec_emp from emp where empno=‘7839‘;
  --使用的时候 dec_emp.sal   变量名.列名
  dbms_output.put_line(dec_emp.ename ||‘的薪水是‘|| dec_emp.sal);
end;

3.if语句

三种格式:

格式一:
      IF   条件  THEN 语句1;
       语句2;
       END IF;
格式二:
 IF  条件  THEN  语句序列1;
    ESLE   语句序列 2;
    END   IF;
格式三(主要使用这种):
   IF   条件  THEN 语句;
   ELSIF  条件  THEN  语句;
   ELSE    语句;
   END  IF;
-- 判断用户键盘上输入的数字是几

-- 接收键盘的输入
-- num是地址值,在地址值上保存了输入的数字
accept num prompt ‘请输入一个数字‘;
declare
  -- 定义变量保存数字
  pnum number := #

begin
  if pnum = 0 then dbms_output.put_line(‘您输入的数字是0‘);
    elsif pnum = 1 then dbms_output.put_line(‘您输入的数字是1‘);
    elsif pnum = 2 then dbms_output.put_line(‘您输入的数字是2‘);
    else dbms_output.put_line(‘其他数字‘);
  end if;
end;

4.循环语句

格式一:
WHILE   条件
LOOP
语句序列;
END  LOOP;
-----------------------------------------------
例如:
WHILE  total  <= 25000
LOOP
.. .
total : = total + salary;
END  LOOP;
格式二(主要使用这种,EXIT的地方容易理解):
Loop
EXIT [when   条件];
语句序列
End loop
格式三:
FOR   I   IN   1 . . 3
LOOP
语句序列 ;
END    LOOP ; 
-- 打印1~10的数字
declare
  pnum number := 1;
begin
  loop
    --循环
    --退出条件
    exit when pnum > 10;
    dbms_output.put_line(pnum);
    -- 加1
    pnum := pnum + 1;
  end loop;
end;


以上就是PL/SQL程序设计基础语法详解(一)的全部内容了,更多内容请关注:CPP学习网_CPP大学

本文固定链接:CPP学习网_CPP大学-PL/SQL程序设计基础语法详解(一)

时间: 2024-10-18 16:11:05

PL/SQL程序设计基础语法详解(一)的相关文章

Oracle数据库之PL/SQL程序设计基础

PL/SQL程序设计基础 一.PL/SQL块结构 前边我们已经介绍了PL/SQL块的结构,再来回顾一下: DECLARE /* * 声明部分——定义常量.变量.复杂数据类型.游标.用户自定义异常 */ BEGIN /* * 执行部分——PL/SQL语句和SQL语句 */ EXCEPTION /* * 异常处理部分——处理运行异常 */ END; /*块结束标记 */ 要实现PL/SQL程序设计,先介绍如下的基本内容: 二.标识符 PL/SQL程序设计中的标识符定义与SQL的标识符定义的要求相同:

PL/SQL 游标的使用详解

一:通过游标,PL/SQL 指向语句被分析以后的活动集 二:对于不同的SQL语句,游标的使用情况不同:1:非查询语句--隐式的2:结果是单行的查询语句--隐式的或显式的3:结果是多行的查询语句--显式的 三:游标属性1:%FOUND 2:%NOTFOUND 3:%ISOPEN 4:%ROWCOUNT 三:显式游标的用法四个步骤(1)定义一个游标名,以及与其相对应的SELECT 语句.语法:CURSOR cursor_name IS select_statement (2)打开游标.语法:OPEN

Hadoop Hive sql语法详解

Hive 是基于Hadoop 构建的一套数据仓库分析系统,它提供了丰富的SQL查询方式来分析存储在Hadoop 分布式文件系统中的数据,可以将结构化的数据文件映射为一张数据库表,并提供完整的SQL查询功能,可以将SQL语句转换为MapReduce任务进行运行,通过自己的SQL 去查询分析需要的内容,这套SQL 简称Hive SQL,使不熟悉mapreduce 的用户很方便的利用SQL 语言查询,汇总,分析数据.而mapreduce开发人员可以把己写的mapper 和reducer 作为插件来支持

SQLSERVER存储过程语法详解

SQL SERVER存储过程语法: Create PROC [ EDURE ] procedure_name [ ; number ]     [ { @parameter data_type }         [ VARYING ] [ = default ] [ OUTPUT ]     ] [ ,...n ] [ WITH     { RECOMPILE | ENCRYPTION | RECOMPILE , ENCRYPTION } ] [ FOR REPLICATION ] AS sq

SQL注入攻防入门详解(2)

SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么好经验,为避免后知后觉的犯下大错,专门查看大量前辈们的心得,这方面的资料颇多,将其精简出自己觉得重要的,就成了该文

[转]SQL注入攻防入门详解

原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么

SQL注入攻防入门详解

原文地址:http://www.cnblogs.com/heyuquan/archive/2012/10/31/2748577.html =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但是对安全方面的知识依旧薄弱,事实上是没机会接触相关开发……必须的各种借口.这几天把sql注入的相关知识整理了下,希望大家多多提意见. (对于sql注入的攻防,我只用过简单拼接字符串的注入及参数化查询,可以说没什么

【转载】SQL注入攻防入门详解

滴答…滴答…的雨,欢迎大家光临我的博客. 学习是快乐的,教育是枯燥的. 博客园  首页  博问  闪存    联系  订阅 管理 随笔-58 评论-2028 文章-5  trackbacks-0 站长统计|  今日IP[353] | 今日PV[848] | 昨日IP[922] |  昨日PV[2188] |当前在线[10] SQL注入攻防入门详解 =============安全性篇目录============== 毕业开始从事winfrm到今年转到 web ,在码农届已经足足混了快接近3年了,但

Oracle创建表语句(Create table)语法详解及示例

Oracle创建表语句(Create table)语法详解及示例   创建表(Create table)语法详解1. ORACLE常用的字段类型ORACLE常用的字段类型有VARCHAR2 (size) 可变长度的字符串, 必须规定长度CHAR(size) 固定长度的字符串, 不规定长度默认值为1NUMBER(p,s) 数字型p是位数总长度, s是小数的长度, 可存负数最长38位. 不够位时会四舍五入.DATE 日期和时间类型LOB 超长字符, 最大可达4GCLOB 超长文本字符串BLOB 超长