博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(学习笔记)pl/sql基本语法——声明变量
阅读量:4927 次
发布时间:2019-06-11

本文共 1730 字,大约阅读时间需要 5 分钟。

PL/SQL是是由甲骨文公司在90年代初开发,以提高SQL的功能。作用是让sql语句具有程序的特性,以及面向对象的特性

1.语法:

  declare  //固定语法部分,单词意思为“声明”,意思为“声明头部”

    xxx xxx  /*声明体。用于声明变量,变量类型分为普通变量声明、引用变量声明、

    xxx xxx  记录变量声明、以及光标的声明*/

  begin  //固定语法部分,意思为“开始标签”

    xxx xxx xxx xxx  /*执行体。pl/sql的代码执行体

    xxx xxx xxx xxx  用于循环、输出、循环遍历光标

    xxx xxx xxx xxx  逻辑运算等,和普通类似*/

  end;  //固定语法部分,意思为“结束标签”

例子:(以java语言的语法进行理解)

  declare  //固定语法部分

    name nvarchar2(3);  //声明一个基本类型name变量,类型为nvarchar2,与java不同的是先声明变量名,后指定类型

    age number(3,0);  //声明一个基本类型age变量,类型为number

  begin  //固定语法部分

    name := '大明';  //对变量赋值,与java不同的是赋值是用’ := ‘

    age := 22;  //同上

    dbms_output.put_line('名字:'||name||'年龄:'||age);  //进行输出dbms_output.put_line()可以理解为System.out.println(),只不过用'||'表示java中的字符串连接

  end;  //固定语法部分

  输出结果——名字:大明年龄:22

 

2.上面是声明基本型变量,下面是引用型变量

语法:

  首先先创建一个表,用于举例create table student (id number(4,0) primary key, name nvarchar2(3,0), age number(3,0));

  插入一条数据 insert into student (1, '大明', 22);

  declare

    s_name student.name%type;  //声明引用类型s_name,引用student表中的name字段,可以理解为变量s_name和字段name为同一个类型

    s_age student.age%type;  //同上

  begin

    select name, age into s_name, s_age from student where id = 1;  //将查询结果赋值给s_name和s_age,关键字’into‘带有赋值的意思

    dbms_output.put_line('名字:'||s_name||'年龄:'||s_age);  //输出

  end;

  输出结果——名字:大明年龄:22

 

3.记录型变量可以理解为一个对象,这个对象是用来描述表中的一行中的所有字段,而不是单个字段,用上面的student表举例

  语法:

    declare

      one_student student%rowtype;  \\声明一个记录型变量one_student,可以理解为one_student的类型是用来描述表中的一整条数据

    begin

      select  * into one_student from student where id = 1;  //将查询到的一条结果赋值给one_student

      dbms_output.put_line('名字:'||one_student.name||'年龄:'||one_student.age);  //输出,类似java中的对象.变量名的形式输出

  end;

  输出结果——名字:大明年龄:22

转载于:https://www.cnblogs.com/yemingqianduzou/p/9355733.html

你可能感兴趣的文章
iis7.5+win2008 出现 HTTP Error 503. The service is unavailable.
查看>>
python7
查看>>
python的and和or优先级
查看>>
if 调用common里的函数
查看>>
使用spring.net+nibernate时如何用aspnet_regiis加密数据库连接字符串
查看>>
UNION
查看>>
九.配置SMB共享(Samba共享)
查看>>
正则表达式
查看>>
Oracle RMAN Recover中使用BBED 跳过缺失的归档 继续 Recover 的测试
查看>>
定期备份脚本
查看>>
生成桌面插件
查看>>
Unable to resolve target 'android-9'
查看>>
vector和list的区别
查看>>
[LeetCode] 127. Word Ladder _Medium tag: BFS
查看>>
20172302 《程序设计与数据结构》第四周学习总结
查看>>
FZU 2086 餐厅点餐(枚举)
查看>>
HDU 2188 悼念512汶川大地震遇难同胞——选拔志愿者(基础巴什博奕)
查看>>
多态,虚函数
查看>>
Could not obtain information about Windows NT group/user 'xxxx\xxxx', error code 0x5
查看>>
get_locked_objects_rpt.sql
查看>>