PL/SQL编程的简单学习

简介:

PL/SQL简单学习


1.PL/SQL块的组成部分:


① 声明部分:该部分包含了变量和常量的定义,以及变量和常量的初始值定义,这部分由关键字declare开始,如果PL/SQL块中不需要声明变量或常量,该部分可以省略。


② 执行部分:执行部分是PL/SQL的执行指定部分,由关键字begin开始,关键字end结尾。

  所有可执行的SQL都放在这一部分,该部分不能省略,end关键字后面使用分号结尾。


③ 异常处理部分:该部分是可选的,该部分使用exception关键字将可执行部分分为两个部分,

  一部分是正常运行的程序,一旦出现异常就跳转到异常部分执行。





2.PL/SQL中符号的声明:


① := → 赋值运算符;


  --  → 单行注释;


  ..  → 范围操作符;eg.1..5 → 表示1到5


  ||  → 字符串连接 ;


  /* */  → 多行注释;    



② 算术运算符: + , - , * , /  ,  **(求幂运算,eg. 3**2=9)


③ 关系运算符: > , < , >=  , <=  , <>  , !=  


④ 逻辑运算符: and , or , not






3.变量的声明:

eg.

declare name nvarchar2(20) := 'hanchao';

-- nvarchar(20)→数据类型;name→变量名;‘hanchao'变量的默认值;

begin

       dbms_output.put_line(name);

-- 用于将变量输出到控制台上,如果没有输出可以通过set serveroutput on 设置输出。

end;

-- 用于执行上面的语句。





4.变量的赋值:

① :=

 select ... into 变量名 from ...

[注意事项:查询结果只能是一行,如果是多行或没有行,则会引发异常]

eg.

declare num1 int;

begin

 num1 := 10;

select 1 into num1 from dual;

 dbms_output.put_line(num1);

end;

/





5.声明常量:通过constant关键字来声明常量

declare pi constant float := 3.14;

r int := 4;

area float;

begin

    area := pi * r * r;

    dbms_output.put_line('area: ' || area);

end;

/    





6.特殊数据类型:


① %ROWTYPE : 该数据类型表示一条记录,相当于java中的一个对象,可以通过 “.”(点)操作符访问记录中的属性。

eg.

declare emprow emp%rowtype ;-- emp为表名

begin

   select * into emprow from emp where empno = 7934;

   dbms_output.put_line(emprow.ename);

end;

/    




②%TYPE : 引用某个变量或数据库的列作为数据类型来声明一个变量。

eg.

declare myname emp.ename%type; -- 以表emp的ename列为数据类型

begin

     select ename into myname from emp where empno = 7934;

     dbms_output.put_line(myname);

end;

/      





7.条件分支语句:

declare value1 number(10) := 10;

begin

      if value1 > 10 then

          dbms_output.put_line(' > 10');

      elsif value1 = 10 then

          dbms_output.put_line(' = 10 ');

       else

          dbms_output.put_line('< 10') ;

       end if;

end;

/                




8.循环结构

①loop ... end loop 循环

eg1.

declare temp number(3) := 0;

       total number(5) := 0;        

begin

 loop

       temp := temp + 1;

       total := total + temp;


      if temp >= 100 then

         exit;

       end if;

 end loop;

 dbms_output.put_line('total: ' || to_char(total));

end;

/


eg2.

declare temp number(3) := 0;

       total number(5) := 0;


begin

loop

   temp := temp + 1;

   total := total + temp;

  exit when temp >= 100;

 end loop;

 dbms_output.put_line('total : ' || to_char(total));

end;

/  



②while 循环

declare temp number(3) := 0;

       total number(5) := 0;


begin

  while temp < 100

    loop

      temp := temp + 1;

      total := total + temp;

    end loop;


   dbms_output.put_line('total : ' || to_char(total));

end;

/      





③for循环

declare temp number(3) := 0;

       total number(5) := 0;


begin

 for temp in 0..100

   loop

     total := total + temp;

   end loop;

dbms_output.put_line(' total : '|| to_char(total));

end;

/    


     本文转自韩立伟 51CTO博客,原文链接:http://blog.51cto.com/hanchaohan/1340620,如需转载请自行联系原作者






相关文章
|
22天前
|
SQL 存储 关系型数据库
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
本文详细介绍了MySQL中的SQL语法,包括数据定义(DDL)、数据操作(DML)、数据查询(DQL)和数据控制(DCL)四个主要部分。内容涵盖了创建、修改和删除数据库、表以及表字段的操作,以及通过图形化工具DataGrip进行数据库管理和查询。此外,还讲解了数据的增、删、改、查操作,以及查询语句的条件、聚合函数、分组、排序和分页等知识点。
【MySQL基础篇】全面学习总结SQL语法、DataGrip安装教程
|
2月前
|
SQL 安全 前端开发
Web学习_SQL注入_联合查询注入
联合查询注入是一种强大的SQL注入攻击方式,攻击者可以通过 `UNION`语句合并多个查询的结果,从而获取敏感信息。防御SQL注入需要多层次的措施,包括使用预处理语句和参数化查询、输入验证和过滤、最小权限原则、隐藏错误信息以及使用Web应用防火墙。通过这些措施,可以有效地提高Web应用程序的安全性,防止SQL注入攻击。
70 2
|
2月前
|
SQL 数据采集 监控
局域网监控电脑屏幕软件:PL/SQL 实现的数据库关联监控
在当今网络环境中,基于PL/SQL的局域网监控系统对于企业和机构的信息安全至关重要。该系统包括屏幕数据采集、数据处理与分析、数据库关联与存储三个核心模块,能够提供全面而准确的监控信息,帮助管理者有效监督局域网内的电脑使用情况。
41 2
|
2月前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
3月前
|
SQL 存储 数据库
SQL学习一:ACID四个特性,CURD基本操作,常用关键字,常用聚合函数,五个约束,综合题
这篇文章是关于SQL基础知识的全面介绍,包括ACID特性、CURD操作、常用关键字、聚合函数、约束以及索引的创建和使用,并通过综合题目来巩固学习。
72 1
|
5月前
|
SQL 存储 关系型数据库
PostgreSQL核心之SQL基础学习
PostgreSQL核心之SQL基础学习
69 3
|
5月前
|
SQL Oracle 关系型数据库
SQL与PL/SQL:数据库编程语言的比较
【8月更文挑战第31天】
110 0
|
5月前
|
SQL 数据库 索引
SQL 编程最佳实践简直太牛啦!带你编写高效又可维护的 SQL 代码,轻松应对数据库挑战!
【8月更文挑战第31天】在SQL编程中,高效与可维护的代码至关重要,不仅能提升数据库性能,还降低维护成本。本文通过案例分析探讨SQL最佳实践:避免全表扫描,利用索引加速查询;合理使用JOIN,避免性能问题;避免使用`SELECT *`,减少不必要的数据传输;使用`COMMIT`和`ROLLBACK`确保事务一致性;添加注释提高代码可读性。遵循这些实践,不仅提升性能,还便于后期维护和扩展。应根据具体情况选择合适方法并持续优化SQL代码。
76 0
|
6月前
|
SQL 存储 关系型数据库
关系型数据库SQL Server学习
【7月更文挑战第4天】
97 2
|
6月前
|
SQL 关系型数据库 MySQL
sql 学习
sql 学习