当前位置: 首页>数据库>正文

MySQL可以写PLSQL吗 mysql有plsql吗

什么是PL/SQL

PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL)。PL/SQL是Oracle数据库对SQL语句的扩展。是面向过程的语言。在普通SQL语句的使用上增加了编程语言的特点,所以PL/SQL把数据操作和查询语句组织在PL/SQL代码的过程性单元中,通过逻辑判断、循环等操作实现复杂的功能或者计算。PL/SQL 只有 Oracle 数据库有。 MySQL 目前不支持 PL/SQL 的。

打印Hello World

以declare开头,它是声明的意思,后边跟的是说明部分。程序以begin开头,以end;结束

/ 表示退出当前编辑,并执行。


PL/SQL已执行后并没有输出Hello World。原因是默认情况下,Oracle数据库的输出开关是关闭的。需要手动打开

set serveroutput on
/ 右斜线表示运行上一次sql或pl/sql程序

如果没有说明部分,

declare可以不写。

PL/SQL程序结构

declare
    	说明部分(变量声明、光标声明、例外声明)
    begin 
    	语句序列(DML语句)
    exception
        例外处理语句
end;


declare说明部分定义变量或常量。可定义为的基本类型:char  varchar2  date number boolean long   

set serveroutput on
--使用基本变量类型
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;
/


执行结果:

匿名块已完成
1
Tom
10-3月 -17
11-3月 -17


declare说明部分定义引用型变量


例如:my_name emp.ename%type; 表示使用emp表的ename字段的类型作为my_name的类型。


--引用型变量
set serveroutput on
declare
--定义引用型变量:查询并打印7839的姓名和薪水
--pename varchar2(20);
--psal number;
pename emp.ename%type;
psal emp.sal%type;
begin 
匿名块已完成
KING的薪水是5000


匿名块已完成
KING的薪水是5000




declare说明部分定义记录型变量




例如:


emp_rec emp%rowtype;


取表中一行的类型作为变量的类型,一行有多个列,所以我们可以把记录性变量理解为数组,而数组中每个元素就代表该行的每一列。如果要引用其中某一列,


例如:


emp_rec。ename := 'admin';



--使用记录型变量,查询并打印7839的姓名和薪水
set serveroutput on
declare
--定义记录型变量:注意代表一行
  emp_rec emp%rowtype;
begin
  --得到7839一行的信息
  select * into emp_rec from emp where empno=7839;
  --打印姓名和薪水
  dbms_output.put_line(emp_rec.ename||'的薪水是'||emp_rec.sal);
  
end;
/



匿名块已完成
KING的薪水是5000





https://www.xamrdz.com/database/6wz1923167.html

相关文章: