`

oracle基础知识8_plsql_基本语法

    博客分类:
  • DB
 
阅读更多

 

 

0 说明:

a) 和java一样,是一种语言,不过后者是面向对象的,前者是面向过程的

b) 操作对象是数据库表

c) PL/SQL = Procedure Language/SQL,是oracle在sql语句中增加了过程处理语句 eg: 分支,循环

d) 效率很高,在oracle中操作数据库最快的语言就是plsql,对于实时性要求高的系统,建议将一些逻辑写成PLSQL,并让比如java等语言来直接调用

e) sql server中对sql功能扩展的是Transact-sql,类似于oracle的pl/sql功能

 

 

1 hello world:

 

set serveroutput on;
declare 
 begin
  dbms_output.put_line('hello zm');
 end;
/

说明: 
1默认情况下 oracle的输出开关是关闭的,因此需要开启 , 
2 / 表示退出并执行

 

执行结果如下:

 

hello zm
PL/SQL 过程已成功完成。

 

 

2 语法介绍:

 

a)变量和常量:

1 类型: char, varchar2,date,number,boolean,long

2 声明顺序:  name char(40);  married boolean :=true; money number(7,2);    :=表示赋值

3 赋值可以用 :=  也可以用 into

3 定义引用类型变量 pname  emp.ename%type; (定义变量pname,其类型和表emp的字段ename一致)

 

set serveroutput on

declare
--定义变量
pename emp.ename%type;
psal emp.sal%type;

begin
 -- 执行赋值语句
  select ename,sal into pename,psal from emp where empno = 7839;
  -- 打印变量结果
  dbms_output.put_line(pename ||'的薪水是'||psal);
end;
/


执行结果: KING的薪水是5000

 

4  定义引用类型变量---列记录,emp_rec emp%rowtype, 案例如下:
declare
  --记录型变量 代表一行记录
  emp_rec emp%rowtype;
begin
  -- 将emp表中empno=7839的所有列数据拷贝结构同时赋值给 emp_rec
  select * into emp_rec from emp where empno=7839;

  dbms_output.put_line(emp_rec.ename||'的编号是'||emp_rec.empno);
end;
/

结果: KING的编号是7839
  

 b)If 语句

格式:

IF 条件  THEN 语句1;
语句2;
END IF;

IF 条件  THEN 语句序列1;
ELSE 语句序列2;  // // 注意 elseif 在 plsql中写成 elsif 
END IF;

IF 条件  THEN 语句;
ELSIF 语句 THEN 语句;
END IF;

 

案例如下:

--判断用户输入的数字

set serveroutput on

--接收键盘输入
--num: 地址值,在该地址上,存了输入的值
accept num prompt '请输入一个数字';

declare
--定义变量保存输入的数字
--隐式转换 将键盘输入的字符串转变成我们需要的int 
-- &num 表示指针num对应内存的数值
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
结果:  其他数字

 

  c)循环 语句
格式如下:

while  total <= 10000
loop
 total := total + salary;
end loop;


loop
exit[when 条件]
...
end loop;



for i in 1..3
loop
...;
end loop;

 

案例如下:

 

 

--打印1~10

set serveroutput on

declare
  pnum number := 1;
begin
  loop
    --当符合pnum>10时,退出循环, 否则执行循环体内容
    exit when pnum > 10; 
    -- 循环体内容
    dbms_output.put_line(pnum);
    pnum := pnum + 1;
    -- 结束循环
  end loop;
end;
/

 

 

分享到:
评论

相关推荐

    Oracle_PLSQL_存储过程

    Oracle存储过程基础知识; Oracle存储过程的基本语法; 用Java调用Oracle存储过程总结; 在存储过程中做简单动态查询; Oracle存储过程调用Java方法; Oracle高效分页存储过程实例

    Oracle开发应用(PLSQL)基础大全及实例讲解.pdf

    本文讲解了 Oracle开发应用基础知识,在测试通过的基础上,采用语法结合实例的方式,对PL/SQL语法知识进行了说明和解释,并对注意事项和关键点进行了标注和解析。读者只需按照本文内容学习和操作,即可掌握Oracle...

    Oracle PLSQL by Example, 5th Edition

    本书通过实际的实验、示例和项目来讲解你所需的全部PL/SQL技能,它涵盖从基础语法、程序控制到最新的优化和安全增强等方面的知识。读者循序渐进地学习每个关键任务,自己就能掌握当今最有价值的Oracle12c的PL/SQL...

    PLSQL 基础教程

    本文档用于描述基于PLSQL的一些SQL基础知识及使用技巧,便于相关人员了解基础SQL的语法知识及简单的使用技巧,以便于在实际的工作中能更好的处理遇到的一些问题。 通过本文档的学习希望可以到达能使用PLSQL进行基础...

    Oracle PLSQL语言初级教程.pdf

    详细介绍了Oracle PLSQL的基础知识和语法结构

    PLSQLDeveloper下载

    基本能够调试任何程序单元(包括触发器和Oracle8 对象类型),无需作出任何修改。 PL/SQL完善器——该完善器允许您通过用户定义的规则对SQL和PL/SQL代码进行规范化处理。在编译、保存、打开一个文件时,代码将自动被...

    oracle开发文档

    oracle开发文档非常实用,本人感觉相当的好,特意拿出来分享下。 此文档主要包括常用函数、基础PLSQL语法、基础知识、安装、配置、创建新表空间和创建新用户等语法。希望大家能够喜欢

    Oracle 10g 学习笔记

    │ 融会贯通Oracle数据库的25条基本知识.txt │ 详细讲解Oracle服务器的常用命令行.mht │ └─资料 │ Ora 10G Err_Msg.chm │ Oracle10g_DBA.pdf │ Oracle10G官方文档CHM合集SQL参考手册.pdf │ Oracle9i...

    PL/SQL Developer8.04官网程序_keygen_汉化

    编程基础知识  1. 程序结构 PL/SQL程序都是以块(block)为基本单位,整个PL/SQL块分三部分:声明部分(用declare开头)、执行部分(以 begin开头)和异常处理部分(以exception开头)。其中执行部分是必须的,...

    Oracle数据库从入门到实用教程详解

    包含但不限于,Oracle的基本概念,Oracle数据库的创建以及维护,oracle数据库表的创建以及维护,查询和视图详解,索引和权限详解,以及备份和还原,plsql的基础语法详解等知识要点。通过本课程的学习,能让学员轻松...

    高级数据库应用实验(Oracle)项目 电商平台商品管理系统 大学编程作业(TUST 天津科技大学 2023 年)

    通过这次高级数据库应用实验(Oracle)项目的实践,我巩固了 SQL 语法,为之后的 Oracle 数据库的深入学习打下了基础。 这个项目是我大三写的,现在回顾已经非常粗糙,分享出来一方面希望可以帮助初学者,另一方面...

    SQL必知必会(第3版)--详细书签版

    附录C SQL语句的语法 167 C.1 ALTER TABLE 167 C.2 COMMIT 167 C.3 CREATE INDEX 168 C.4 CREATE PROCEDURE 168 C.5 CREATE TABLE 168 C.6 CREATE VIEW 168 C.7 DELETE 169 C.8 DROP 169 C.9 INSERT 169 ...

Global site tag (gtag.js) - Google Analytics