PL/SQL之基础语法
2016-12-06 14:58
465 查看
1.PL/SQL的程序结构
declare--说明部分(变量说明、光标申明、例外说明)
begin
--语句序列(DML语句)
exception
--例外处理语句
end;
/
2.1说明部分-基本变量
(1).定义基本变量(2).类型:char,varchar2,date,number,boolean,long
(3).举例:var1 char(15);
married boolean :=true;
psal number(7,2);
(4).eg:
--使用基本变量类型
declare
--定义基本变量类型
--基本数据类型
pnumber number(7,2);
--字符串变量
pname varchar2(20);
--日期变量
pdate date;
begin
pnumber :=1;
dbms_output.put_line(pnumber);
pname :='Tom';
dbms_output.put_line(pname);
pdate :=sysdate;
dbms_output.put_line(pdate);
--计算明天的日期
dbms_output.put_line(pdate+1);
end;
/
2.2说明部分-引用型变量
(1).引用型变量(2).举例
my_name emp.ename%type;(引用emp表中ename列的类型作为变量my_name的类型,并且变量的类型始终与其保持一致)
(3).eg:
set serveroutput on
declare
pename emp.ename%type;
psal emp.sal%type;
begin
select ename,sal into pename,psalfrom emp where empno=7839;
dbms_output.put_line(pename||'的薪水是'||psal);
end;
/
Tips:赋值的时候用“:=”,在select语句中可以用关键字into,连接字符串用||。
2.3说明部分-记录型变量
(1).记录型变量(2).举例:emp_rec emp%rowtype;(记录型变量代表的是表中的一行数据,以一整行的数据作为一个变量类型,把记录型变量理解为一个数组,而在这个数组中的每一个元素代表这一行中的每一列数据)
(3).记录型变量分量的引用:emp_rec.ename :=’ADAMS’;
(4).eg:
set serveroutput on
declare
emp_rec emp%rowtype;
begin
select * into emp_rec from empwhere empno=7839;
dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
end;
/
3.if语句的使用
(1).IF条件THEN语句1;语句2;
END IF;
(2).IF条件THEN语句序列1;
ELSE 语句序列2;
END IF;
(3).IF条件THEN语句;
ELSIF语句THEN语句;
ELSE语句;
END IF;
(4).eg:
set serveroutput on
accept num prompt'请输入一个数字';
declare
pnum number := #
begin
if pnum = 0 thendbms_output.put_line('您输入的数字是0');
elsif pnum = 1 thendbms_output.put_line('您输入的数字是1');
elsif pnum = 2 thendbms_output.put_line('您输入的数字是2');
else dbms_output.put_line('其他数字');
end if;
end;
/
Tips:accept(从键盘接收) num(变量名) prompt(提示)'请输入:'
num的含义是地址值,定义保存时在num前加&;
= --判断,:= --赋值。
4.循环语句
(1).WHILE total<=25000 LOOP…
total := total+salary;
END LOOP;
eg:
set serveroutput on
declare
pnum number := 1;
begin
while pnum <=10 loop
dbms_output.put_line(pnum);
pnum:= pnum + 1;
end loop;
end;
/
(2).LOOP
EXIT[WHEN条件];
…
END LOOP;
eg:
set serveroutput on
declare
pnum number := 1;
begin
loop
exit when pnum>10;
dbms_output.put_line(pnum);
pnum := pnum + 1;
end loop;
end;
/
(3).FOR i IN 1..3 LOOP(in后边的必须连续)
语句序列;
END LOOP;
eg:
set serveroutput on
declare
pnum number := 1;
begin
for pnum in 1..10 loop
dbms_output.put_line(pnum);
end loop;
end;
/
相关文章推荐
- ORACLE之PL/SQL简单基础语法学习(二)
- PL/SQL基础语法入门
- PL/SQL基础语法
- PL/SQL之一 基础语法
- Oracle pl/sql 基础入门语法
- Oracle PL/SQL基础语法 ——Oracle Database 11g R2
- PL/SQL developer基础语法学习(二)之语法
- PL/SQL developer基础语法学习(三)之游标
- pl/sql基础语法
- oracle PL/SQL语法基础
- PL/SQL基础语法
- PL/SQL developer基础语法学习(一)之变量
- PL/SQL基础语法 赋值循环游标etc
- PL/SQL developer基础语法学习(一)
- oracle--PL/SQL基础语法
- 【DB.PL/SQL】PL/SQL —— 语法基础
- ORACLE之PL/SQL简单基础语法学习(一)
- Oracle PL/SQL 基础语法、游标、例外
- pl/sql基础语法
- PL/SQL程序设计基础语法详解(一)