学院网站建设建议,会宁网站建设,山西省住房城乡建设厅门户网站,制作游戏的平台本文主要向大家介绍了Oracle数据库之Oracle_PL/SQL(1) 匿名块#xff0c;通过具体的内容向大家展现#xff0c;希望对大家学习Oracle数据库有所帮助。1. PL/SQL 简介PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库。为什么使用PL/SQL#xff1f;Ora…本文主要向大家介绍了Oracle数据库之Oracle_PL/SQL(1) 匿名块通过具体的内容向大家展现希望对大家学习Oracle数据库有所帮助。1. PL/SQL 简介PL/SQL是一种比较复杂的程序设计语言, 用于从各种环境中访问Oracle数据库。为什么使用PL/SQLOrade是一种关系型数据库, 用来访问关系型数据库的语言是 “结构化査询语言”SQL。SQL是一种第四代语言只描述做什么不描述如何做。一代语言01二代语言汇编三代语言过程(条件判断、循环)四代语言sql DELETE FROM emp where majorMANAGER;第四代语言相对简单提供了较少的命令它将用户与底层的基本数据结构和算法隔离开来。但缺少第三代语言对过程(条件判断、循环)的处理。PL/SQL(Procedural Language/SQL)过程性SQL语言通过增加了过程性控制结构有效的扩充了SQL的功能。2. PL/SQL基础2.1 PL/SQL块PL/SQL中的基本単位是“块” (block)。所有的 PL/SQL程序都是由块构成的,这些块可以顺序出现也可以相互进行嵌套。分类匿名块没有名字只能被执行一次。函数存储过程包触发器匿名块语法declare声明部分;begin执行部分;exception异常处理部分;end;第一个例子beginnull;--dbms_output.put_line(hello);end;2.2 词法单位词法单位是一个字符序列包括大写和小写的字母A~Z和a~z数字0~9非显示的空字符空格、回车、Tab键数学符号 - * / 间隔符号() [] ? % # ! ;这些符号可以在PLSQL中使用PLSQL中不区分大小写(引号内的字符串除外)。2.2.1 标识符标识符是用来给PLSQL对象(变量、游标、类型、函数、存储过程、包、触发器等)命名的。必须以字母开头包括字母、数字、_、#、$其余字符则是非法的。标识符最长30个字符。变量命名 v_***参数命名 p_***函数命名 func_***过程命名 proc_***包命名 pkg_***触发器命名 tri_***保留字被oracle已使用的标识符称为保留字不能使用保留字作为标识符。标引标识符双引号内的标识符称为标引标识符标引标识符是区分大小写的。2.2.2 分界符算数运算符 - * /逻辑运算符 ! 注释符-- /* */字符串连接符||赋值符 :2.2.3 文字文字是一个不能成为标识符的字符、数字、布尔值。例如ABC,23,true,false,null2.2.4 注释注释增强了程序的可读性、使程序更容易被理解。注释在编译时会被编译器忽略。单行注释--多行注释/* */2.3 变量声明变量是一些内存单元可以在变量中存储数据。变量在块的声明部分被定义。每个变量都有一个特定的类型及长度。2.3.1 声明语法变量名 类型(长度) [not null] [:默认值];举例declarev_number number:45;begindbms_output.put_line(v_number);end;字符串长度限制在范围 (1...32767)declarev_char varchar2(20);beginv_char:abcde;dbms_output.put_line(v_char);end;declarev_date date;beginv_date:sysdate;dbms_output.put_line(v_date);end;The VARCHAR datatype is currently synonymous with the VARCHAR2 datatype.Oracle recommends that you use VARCHAR2 rather than VARCHAR.In the future, VARCHAR might be defined as a separate datatype usedfor variable-length character strings compared with different comparison semantics.2.3.2 变量初始化如果定义变量时没有给初始化值默认被赋值为null。declarev_char varchar2(20);begindbms_output.put_line(v_char);end;如果声明时指定了not null,那么变量就必须被初始化。declarev_char varchar2(20) not null;begindbms_output.put_line(v_char);end;如果声明时指定了constant,那么变量就必须被初始化且不能被修改。declarev_char constant varchar2(20):PLSQL;begindbms_output.put_line(v_char);end;declarev_char constant varchar2(20):PLSQL;beginv_char:abcde;dbms_output.put_line(v_char);end;在声明中可以用default来替换赋值符号:declarev_char varchar2(20) default abcd;beginv_char:abcde;dbms_output.put_line(v_char);end;在声明中每一行只能声明一个变量。declarev_char,v_char2 varchar2(20);beginv_char:abcde;dbms_output.put_line(v_char);end;declarev_char varchar2(20);v_char2 varchar2(20);beginv_char:abcde;dbms_output.put_line(v_char);end;2.4 PL/SQL类型2.4.1 使用TYPE变量可以用来存储表中的数据变量应该和表中的列具有相同的数据类型。declarev_ename varchar2(4);beginselect ename into v_ename from emp where empno7788;dbms_output.put_line(v_ename);end;declarev_ename emp.ename%type;beginselect ename into v_ename from emp where empno7788;dbms_output.put_line(v_ename);end;2.4.2 使用ROWTYPEdeclarev_emp emp%rowtype;beginselect * into v_emp from emp where empno7788;dbms_output.put_line(v_emp.ename);end;2.4.3变量作用域和可见性变量的作用域是可以访问该变量的程序部分。对于PLSQL变量作用域就是从变量声明开始直到该块的结束。变量超出作用域后系统自动回收变量的内存空间。2.5表达式和运算符2.5.1赋值变量:表达式;出现在:左边的称为左值出现在:右边的称为右值。左值必须是指向实际的存储单元即右值被写入的内存位置。所有的左值都是变量。declarev_number number;beginv_number:5*2;dbms_output.put_line(v_number);end;每行语句只能对一个变量赋值。declarev_number number;v_number2 number;beginv_number:v_number2:5*2;dbms_output.put_line(v_number);end;2.5.2 表达式PLSQL表达式是右值。表达式单独作为一个语句使用是无效的。表达式只能是语句的一部分。declarev_number number;begin5*2;dbms_output.put_line(v_number);end;本文由职坐标整理并发布希望对同学们学习Oracle有所帮助更多内容请关注职坐标数据库Oracle数据库频道