SQL语句、PL/SQL块和SQL*Plus命令之间的区别

本文详细解析了SQL*Plus、SQL语句和PL/SQL块之间的核心区别,阐述了各自的功能和使用场景,如SQL*Plus作为数据库管理工具,SQL用于数据操作,而PL/SQL增强了SQL的过程控制能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SQL语句、PL/SQL块和SQL*Plus命令之间的区别

 

原文链接:https://blog.youkuaiyun.com/liuzhushiqiang/article/details/12320941  

SQL*Plus中可以处理三种类型的命令:SQL语句PL/SQL块SQL*Plus命令,但三者之间是有区别的。

1)SQL语句是以数据库为操作对象的语言,主要包括数据定义语言DDL、数据操纵语言DML和数据控制语言DCL以及数据存储语言DSL。当输入SQL语句后,SQL*Plus将其保存在内部缓冲区中。
  当SQL命令输入完毕时,有三种方法可以结束SQL命令:在命令行的末尾输入分号(;)并按回车;在单独一行上用斜杠(/);或用空行表示。 
2)PL/SQL块同样是以数据库中的数据为操作对象。但由于SQL不具备过程控制功能,所以,为了能够与其他语言一样具备面向过程的处理功能,在SQL中加入了诸如循环、选择等面向过程的处理功能,由此形成了PL/SQL。所有PL/SQL语句的解释均由PL/SQL引擎来完成。使用PL/SQL块可编写过程、触发器和包等数据库永久对象。
3)SQL*Plus命令主要用来格式化查询结果、设置选择、编辑及存储SQL命令、以设置查询结果的显示格式,并且可以设置环境选项。

  eg:accept 、 prompt 

pl/sql 是oracle的一门语言,它包括标准SQL,oracle扩展SQL,oracle自定义函数,存储过程,触发器,包... 
而sql*plus是运行解释pl/sql的程序,你可以在sql*plus里运行sql语句。 
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
打个比方 
pl/sql -> C++语言 
sql*plus -> Microsoft Visual C++ 6.0编译器

pl/sql 是oracle的扩展SQL后的语言,它包括标准SQL,oracle扩展SQL,oracle自定义函数,存储过程,触发器,包... 
而sql*plus是运行解释pl/sql的程序,你可以在sql*plus里运行sql语句,是实现用户对数据库系统进行管理的一种工具!

SQL是一种结构化查询语言,所有的数据库查询都是这种语言。 
而T-SQL即:Transact-SQL是对上述语言的一种再加工,使之更加完美,实用。 
例如:oracle和sqlserver的语言就有所不一样。

SQL是一种结构化查询语言,相当于一个标准,T-SQL是其中的一种,可移植性不高。

SQL是标准,但各个厂商可能对标准加工加入自己的函数、类型等等。
比如MS 的T-SQL ORACLE的PL/SQL

--sqlplus中accept变量和prompt文本:

SQL> set serveroutput on
SQL> accept num prompt '请输入一个数字';
请输入一个数字6
SQL> declare
  2  pnum number:=#
  3  begin
  4  if pnum = 0 then dbms_output.put_line('你输入的是0');
  5  elsif pnum = 1 then dbms_output.put_line('你输入的是1');
  6  else dbms_output.put_line('你输入的是其他数字');
  7  end if;
  8  end;
  9  /--必须以/、空行结束
old   2: pnum number:=#
new   2: pnum number:=6;
??????????????????

PL/SQL procedure successfully completed.

SQL>

在navicat下使用sqlplus:

1.在navicat for oracle客户端中安装sqlplus,先下载windowns all的sqlplus,basic+sqlplus;

2.navicat for oracle客户端->工具->命令列界面->选择sqlplus安装目录的sqlplus.exe打开,即可进行sqlplus语句了。

以指定格式显示:

--修改session中的编码格式:
SQL> ALTER SESSION SET NLS_LANGUAGE= 'SIMPLIFIED CHINESE';
--执行参数和值的显示格式
SQL> col PARAMETER format a30;
SQL>  col VALUE format a30;
SQL> select * from v$NLS_PARAMETERS;

PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_LANGUAGE                   AMERICAN
NLS_TERRITORY                  AMERICA
NLS_CURRENCY                   $
NLS_ISO_CURRENCY               AMERICA
NLS_NUMERIC_CHARACTERS         .,
NLS_CALENDAR                   GREGORIAN
NLS_DATE_FORMAT                DD-MON-RR
NLS_DATE_LANGUAGE              AMERICAN
NLS_CHARACTERSET               AL32UTF8
NLS_SORT                       BINARY
NLS_TIME_FORMAT                HH.MI.SSXFF AM

PARAMETER                      VALUE
------------------------------ ------------------------------
NLS_TIMESTAMP_FORMAT           DD-MON-RR HH.MI.SSXFF AM
NLS_TIME_TZ_FORMAT             HH.MI.SSXFF AM TZR
NLS_TIMESTAMP_TZ_FORMAT        DD-MON-RR HH.MI.SSXFF AM TZR
NLS_DUAL_CURRENCY              $
NLS_NCHAR_CHARACTERSET         AL16UTF16
NLS_COMP                       BINARY
NLS_LENGTH_SEMANTICS           BYTE
NLS_NCHAR_CONV_EXCP            FALSE

19 rows selected.

 

转载于:https://www.cnblogs.com/celine/p/9929276.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值