zoukankan      html  css  js  c++  java
  • SQL语句、PL/SQL块和SQL*Plus命令之间的区别

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

     

    原文链接:https://blog.csdn.net/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.
  • 相关阅读:
    Mysql登录错误:ERROR 1045 (28000): Plugin caching_sha2_password could not be loaded
    Docker配置LNMP环境
    Docker安装mysqli扩展和gd扩展
    Docker常用命令
    Ubuntu常用命令
    单例模式的优缺点和使用场景
    ABP 多租户数据共享
    ABP Core 后台Angular+Ng-Zorro 图片上传
    ERROR Error: If ngModel is used within a form tag, either the name attribute must be set or the form control must be defined as 'standalone' in ngModelOptions.
    AbpCore 执行迁移文件生成数据库报错 Could not find root folder of the web project!
  • 原文地址:https://www.cnblogs.com/celine/p/9929276.html
Copyright © 2011-2022 走看看