SQL PLUS与Oracle数据库的交互

一、SQL Plus与数据库的交互

可以 使用2种基本类型的命令与数据库进行交互:

服务器执行的命令:SQLQ命令(以;结束)和PL/SQL程序块(以/结束)

本地命令:SQL Plus命令

二、设置SQL Plus的运行环境

1.使用SET命令,可以设置图中项

2.语法

SET system_variable value

3.常用设置项

①SET PAGSIZE value设置从顶部标题至页结束之间的行数

②SET LINESIZE value设置一行所显示的最多字符数

③SET NEWPAGE value设置页与页的间隔,默认为一行

④SET PAUSE value设置结果是否滚动显示,value可取范围有ON/OFF/TEXT

=>注意,在sql plus客户端输入set命令做的设置是临时生效的,也就是说,你关掉sqlplus再打开,就又恢复到初始值了,要永久生效的话怎么操作呢

可以编辑D:\oracle\sqlplus\admin\glogin.sql文件,将SET命令写在里面,重启生效

三、SQL Plus管理命令

1.HELP命令

帮助,提示。

语法为HELP|?[topic],如HELP SHOW 等效于?SHOW

2.DESCRIBE

描述表、视图、索引等结构(字段名、是否为空、类型)

两种语法①为 desc objectname,如desc emp,需要单独执行该命令

SQL> desc emp
 名称                                                                                   是否为空? 类型
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------------------------------------------------------
 EMPNO
      NOT NULL NUMBER(4)
 ENAME                                                                           VARCHAR2(10)
 JOB                                                                             VARCHAR2(9)
 MGR                                                                             NUMBER(4)
 HIREDATE                                                                        DATE
 SAL                                                                             NUMBER(7,2)
 COMM                                                                            NUMBER(7,2)
 DEPTNO                                                                          NUMBER(2)

②#desc objectname,适用于什么场景呢=>比如sql写一半,忘记字段名了,使用该命令可以查询 且不影响当前在编写的sql

SQL> select empno
  2  #desc emp
 名称                                                                                  是否为空? 类型
 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- -------- --------------------------------------------------------------------------------------------------------------------
 EMPNO
      NOT NULL NUMBER(4)
 ENAME                                                                          VARCHAR2(10)
 JOB                                                                            VARCHAR2(9)
 MGR                                                                            NUMBER(4)
 HIREDATE                                                                       DATE
 SAL                                                                            NUMBER(7,2)
 COMM                                                                           NUMBER(7,2)
 DEPTNO                                                                         NUMBER(2)

  2  ,ename from emp;

     EMPNO ENAME
---------- --------------------
      7369 SMITH
      7499 ALLEN
      7521 WARD
      7566 JONES
      7654 MARTIN
      7698 BLAKE
      7782 CLARK
      7788 SCOTT
      7839 KING
      7844 TURNER

已选择 10 行。

3.SPOOL命令

将输出的结果写入到某个文件种

语法为 SPOOL [filename[CREATE|REPLACE|APPEND|OFF|OUT]] 创建|替换|引用|关闭输出|打印

SPOOL OFF和SPOOL OUT的区别:

OFF是关闭输出

OUT=OFF+PRINT

SQL> SPOOL E:\我的01文档\emp.txt
SQL> select empno,ename,sal,job from emp where job='SALESMAN';

     EMPNO ENAME                       SAL JOB
---------- -------------------- ---------- ------------------
      7499 ALLEN                      1600 SALESMAN
      7521 WARD                       1250 SALESMAN
      7654 MARTIN                     1250 SALESMAN
      7844 TURNER                     1500 SALESMAN

SQL> spool off
--注意要关闭spool才能在txt里看到输出的内容

四、常用SQL Plus命令

1.编辑EDIT

ED filename[.ext]

SQL> ed E:\我的01文档\emp.txt

2.保存SAVE/EDIT

①SAVE用于将sql缓冲区最近一条sql保存到某个文件种

语法为SAVE file_name

SQL> select * from dept;

    DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------
        10 ACCOUNTING                   NEW YORK
        40 OPERATIONS                   BOSTON
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO

SQL> save E:\我的01文档\dept
已创建 file E:\我的01文档\dept.sql
SQL> clear buffer
buffer 已清除
SQL> save E:\我的01文档\dept
SP2-0107: 无须保存。
SQL>

3.运行命令

①命令行方式:sql命令后面加;
②SQL缓冲区方式

run或/

SQL> run
  1* select * from dept

    DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------
        10 ACCOUNTING                   NEW YORK
        40 OPERATIONS                   BOSTON
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO

SQL> /

    DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------
        10 ACCOUNTING                   NEW YORK
        40 OPERATIONS                   BOSTON
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO

SQL>
③命令文件方式

------start命令 只能在sqlplus中运行

start{url|file_name}

------@命令既能在sqlplus中运行又能在命令行中运行


SQL> start E:\我的01文档\dept.sql

    DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------
        10 ACCOUNTING                   NEW YORK
        40 OPERATIONS                   BOSTON
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO

SQL> @ E:\我的01文档\dept.sql

    DEPTNO DNAME                        LOC
---------- ---------------------------- --------------------------
        10 ACCOUNTING                   NEW YORK
        40 OPERATIONS                   BOSTON
        20 RESEARCH                     DALLAS
        30 SALES                        CHICAGO

@命令在命令行中运行示例如下

五、格式化SQL Plus输出

1.格式化列

语法 COL[UMN] [COLNAME][OPTION]

1.1修改列标题
SQL> col empno heading 员工编号
SQL>col ename heading 员工名称
SQL> select empno,ename from emp;

  员工编号 员工名称
---------- --------------------
      7369 SMITH
      7499 ALLEN
      7521 WARD
      7566 JONES
      7654 MARTIN
      7698 BLAKE
      7782 CLARK
      7788 SCOTT
      7839 KING
      7844 TURNER

已选择 10 行。
1.2 格式化数字列

语法 COL[UMN] colum_name Format model

SQL> col sal format $999,999.00
SQL> select sal from emp;

         SAL
------------
     $800.00
   $1,600.00
   $1,250.00
   $2,975.00
   $1,250.00
   $2,850.00
   $2,450.00
   $3,000.00
   $5,000.00
   $1,500.00

已选择 10 行。
1.3格式化字符长度

如例子中,将ename字段长度格式化为3,超出就换行显示了

SQL> col ename format a3
SQL> seelct * from emp;
SP2-0734: 未知的命令开头 "seelct * f..." - 忽略了剩余的行。
SQL> select * from emp;

  员工编号 员  JOB                       MGR HIREDATE                SAL       COMM     DEPTNO
---------- --- ------------------ ---------- -------------- ------------ ---------- ----------
      7369 SMI CLERK                    7902 17-12月-80          $800.00                    20
           TH

      7499 ALL SALESMAN                 7698 20-2月 -81        $1,600.00        300         30
           EN
1.4格式化NULL值

COL col_name null text

SQL> col comm null null
SQL> select * from emp;

  员工编号 员  JOB                       MGR HIREDATE                SAL       COMM     DEPTNO
---------- --- ------------------ ---------- -------------- ------------ ---------- ----------
      7369 SMI CLERK                    7902 17-12月-80          $800.00 null               20
           TH

      7499 ALL SALESMAN                 7698 20-2月 -81        $1,600.00        300         30
           EN

      7521 WAR SALESMAN                 7698 22-2月 -81        $1,250.00        500         30
           D
1.5 控制格式化开关

COL col_name on/off

1.6 列出和重新设置列显示属性

①列出

COL col_name

SQL> col comm
COLUMN   comm ON
NULL     'null'

②重设

COL col_name clear

SQL> col comm
COLUMN   comm ON
NULL     'null'
SQL> col comm clear
SQL> col comm
SP2-0046: COLUMN 'comm' 未定义

2.定义页与报告的标题

2.1 定义页标题

TTI [ printspec[text|variable]...] [OFF|ON]

>>输出工资表所有数据,并设置头/底标题

SQL> ttit left '             工资登记表'
SQL> btit left '打印时间:2025.03.10 by addie'
SQL> SET pagesize 10
SQL> select * from salgrade;

             工资登记表
     GRADE      LOSAL      HISAL
---------- ---------- ----------
         2       1201       1400
         3       1401       2000
         4       2001       3000


打印时间:2025.03.10 by addie
2.2 定义报告(底)的标题

BTI [ printspec[text|variable]...] [OFF|ON]

效果见2.1

在退出sqlplus前,该设置对所有查询生效,注意手动关闭

ttitle off

btitle off

SQL> select * from salgrade;

             工资登记表
     GRADE      LOSAL      HISAL
---------- ---------- ----------
         2       1201       1400
         3       1401       2000
         4       2001       3000


打印时间:2025.03.10 by addie

SQL> btitle off
SQL> select * from salgrade;

             工资登记表
     GRADE      LOSAL      HISAL
---------- ---------- ----------
         2       1201       1400
         3       1401       2000
         4       2001       3000

SQL> ttitle off
SQL> select * from salgrade;

     GRADE      LOSAL      HISAL
---------- ---------- ----------
         2       1201       1400
         3       1401       2000
         4       2001       3000

That's all~

Have a nice study~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/983907.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Git系列之git tag和ReleaseMilestone

以下是关于 Git Tag、Release 和 Milestone 的深度融合内容,并补充了关于 Git Tag 的所有命令、详细解释和指令实例,条理清晰,结合实际使用场景和案例。 1. Git Tag 1.1 定义 • Tag 是 Git 中用于标记特定提交(commit&#xf…

WinForm模态与非模态窗体

1、模态窗体 1)定义: 模态窗体是指当窗体显示时,用户必须先关闭该窗体,才能继续与应用程序的其他部分进行交互。 2)特点: 窗体以模态方式显示时,会阻塞主窗体的操作。用户必须处理完模态窗体上…

关闭Windows安全中心,解析与实操指南

在这个数字化时代,Windows操作系统作为我们日常工作和娱乐的基石,其内置的Windows安全中心(Windows Defender Security Center)在保护系统安全方面扮演着重要角色。然而,对于某些高级用户或特定需求场景,关…

【 <一> 炼丹初探:JavaWeb 的起源与基础】之 JSP 标签库:自定义标签的开发与应用

<前文回顾> 点击此处查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、JSP 标签…

IDEA与Maven使用-学习记录(持续补充...)

1. 下载与安装 以ideaIU-2021.3.1为例&#xff0c;安装步骤&#xff1a; 以管理员身份启动ideaIU-2021.3.1修改安装路径为&#xff1a;D:\Program Files\JetBrains\IntelliJ IDEA 2021.3.1勾选【创建桌面快捷方式】&#xff08;可选&#xff09;、【打开文件夹作为项目】&…

JS中的闭包(closures)一种强大但易混淆的概念

JavaScript 中的闭包&#xff08;closures&#xff09;被认为是一种既强大又易混淆的概念。闭包允许函数访问其外部作用域的变量&#xff0c;即使外部函数已执行完毕&#xff0c;这在状态维护和回调函数中非常有用。但其复杂性可能导致开发者的误解&#xff0c;尤其在变量捕获和…

根据指定 Excel 模板将 Excel 明细数据生成新的 Excel 文档

在日常工作中&#xff0c;我们常常需要生成 Excel 文档&#xff0c;例如将 Excel 数据 自动转换为独立的 Excel 文件。在这种需求下&#xff0c;如何高效地将 Excel 表格 中的每一条数据生成一个对应的 Excel 文档&#xff0c;并且让文档中的内容根据 Excel 数据动态变化&#…

前端杂的学习笔记

什么是nginx Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器 Nginx是一款轻量级的Web 服务器/反向代理服务器&#xff0c;处理高并发能力是十分强大的&#xff0c;并且支持热部署&#xff0c;启动简单&#xff0c;可以做到7*24不间断运行 正代和反代 学习nginx&a…

C#控制台应用程序学习——3.8

一、语言概述 1、平台相关性 C# 主要运行在.NET 平台上。.NET 提供了一个庞大的类库&#xff0c;C# 程序可以方便地调用这些类库来实现各种功能&#xff0c;如文件操作、数据库访问、网络通信等。 2、语法风格 C# 的语法与 C、C 和 Java 有一定的相似性。例如&#xff0c;它使用…

【数据结构与算法】Java描述:第三节:栈与队列

一、 栈(Stack) 1.1 概念 栈&#xff1a; 一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。 进行数据插入和删除操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守先进后出的原则。 压栈&#xff1a;栈的插入操作叫做进栈/压栈/…

MATLAB中movmax函数用法

目录 语法 说明 示例 向量的中心移动最大值 向量的尾部移动最大值 矩阵的移动最大值 包括缺失值的移动最大值 基于样本点计算移动最大值 仅返回满窗最大值 movmax函数的功能是求得移动最大值。 语法 M movmax(A,k) M movmax(A,[kb kf]) M movmax(___,dim) M mov…

linux学习(五)(服务器审查,正常运行时间负载,身份验证日志,正在运行的服务,评估可用内存)

服务器审查 在 Linux 中审查服务器的过程包括评估服务器的性能、安全性和配置&#xff0c;以确定需要改进的领域或任何潜在问题。审查的范围可以包括检查安全增强功能、检查日志文件、审查用户帐户、分析服务器的网络配置以及检查其软件版本。 Linux 以其稳定性和安全性而闻名…

Java中的栈的实现

Java中的栈的实现--双端队列&#xff08;Deque&#xff09; 1. 解释代码2.为什么不用 Stack<Character>&#xff1f;3.使用示例4.Deque 的常用方法5.LinkedList<> 和 ArrayDeque<> 的区别和联系6. 总结 1. 解释代码 Deque<Character> st new ArrayDe…

【Andrej Karpathy 神经网络从Zero到Hero】--2.语言模型的两种实现方式 (Bigram 和 神经网络)

目录 统计 Bigram 语言模型质量评价方法 神经网络语言模型 【系列笔记】 【Andrej Karpathy 神经网络从Zero到Hero】–1. 自动微分autograd实践要点 本文主要参考 大神Andrej Karpathy 大模型讲座 | 构建makemore 系列之一&#xff1a;讲解语言建模的明确入门&#xff0c;演示…

Go_zero学习笔记

<!-- go-zero --> 安装配置 go-zero_github go-zero文档 go install github.com/zeromicro/go-zero/tools/goctllatest goctl --version // goctl version 1.7.2 windows/amd64 gopath/bin/会生成goctl的执行进程(%GOPATH%\bin设置到path环境变量中) 安装protoc&pr…

nats jetstream server code 分析

对象和缩写 jetstream导入两个对象&#xff1a;stream and consumer&#xff0c;在stream 之上构造jetstreamapi。在nats代码中&#xff0c;以下是一些常见的缩写 1.mset is stream 2.jsX is something of jetstream 3.o is consumer 代码分析 对于producer &#xff0c;发送…

高效编程指南:PyCharm与DeepSeek的完美结合

DeepSeek接入Pycharm 前几天DeepSeek的充值窗口又悄悄的开放了&#xff0c;这也就意味着我们又可以丝滑的使用DeepSeek的API进行各种辅助性工作了。本文我们来聊聊如何在代码编辑器中使用DeepSeek自动生成代码。 注&#xff1a;本文适用于所有的JetBrains开发工具&#xff0c…

豆包大模型 MarsCode AI 刷题专栏 004

007.创意标题匹配问题 难度&#xff1a;易 问题描述 在广告平台中&#xff0c;为了给广告主一定的自由性和效率&#xff0c;允许广告主在创造标题的时候以通配符的方式进行创意提交。线上服务的时候&#xff0c;会根据用户的搜索词触发的 bidword 对创意中的通配符&#xff…

Blueprint —— Blueprint Editor(二)

目录 一&#xff0c;Blueprint Header View 二&#xff0c;Blueprint Bookmarks 三&#xff0c;Blueprint Editor Defaults Tab 获取类默认值 一&#xff0c;Blueprint Header View Blueprint Header View 可将虚幻引擎蓝图类和蓝图结构体转换为C代码&#xff1b;在转换过程…

JVM组成面试题及原理

Java Virtual Machine&#xff08;JVM&#xff09;是Java程序的运行环境&#xff08;java二进制字节码的运行环境&#xff09; 好处&#xff1a; 一次编写&#xff0c;到处运行自动内存管理&#xff0c;垃圾回收机制 JVM由哪些部分组成&#xff0c;运行流程是什么&#xff1f;…