当前位置: 首页 > news >正文

Oracle 19c入门学习教程,从入门到精通,SQL*Plus命令详解:语法、使用方法与综合案例 -知识点详解(4)

SQL*Plus命令详解:语法、使用方法与综合案例

SQLPlus 是 Oracle 数据库自带的命令行工具,用于执行 SQL 语句、PL/SQL 块以及管理数据库会话。本章将系统讲解 SQLPlus 的核心命令及其使用方法,并提供详细的安装说明、语法解析、注释丰富的示例代码及综合性实战案例。


一、SQL*Plus 安装与配置(以 Windows 和 Linux 为例)

1. 安装前提

  • 已安装 Oracle Database(如 Oracle 19c/21c)或 Oracle Instant Client。
  • 若仅需连接远程数据库,可只安装Oracle Instant Client

2. 安装步骤(Windows)

方法一:通过 Oracle Database 安装包
  1. 下载 Oracle Database 安装包(如 Oracle 19c for Windows x64)。

  2. 运行安装程序,选择“桌面类”或“服务器类”。

  3. 安装完成后,SQL*Plus 自动包含在%ORACLE_HOME%\bin目录中。

  4. 配置环境变量:

    ORACLE_HOME=C:\app\oracle\product\19.0.0\dbhome_1PATH+=%ORACLE_HOME%\bin
  5. 打开命令提示符,输入:

    sqlplus /nolog
方法二:仅安装 Instant Client(轻量级)
  1. 下载 Oracle Instant Client Basic + SQL*Plus 包。

  2. 解压到目录(如C:\instantclient_19_20)。

  3. 设置环境变量:

    PATH=C:\instantclient_19_20 TNS_ADMIN=C:\instantclient_19_20\network\admin# 可选,用于 tnsnames.ora
  4. 创建

    tnsnames.ora

    文件(若使用 TNS 连接):

    ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orclpdb1) ) )
  5. 启动 SQL*Plus:

    sqlplus username/password@ORCL

3. Linux 安装(简要)

# 下载 instantclient-basic-linux.x64-19.x.x.zip# 和 instantclient-sqlplus-linux.x64-19.x.x.zipunzipinstantclient-basic-linux.x64-19.20.0.0.0dbru.zipunzipinstantclient-sqlplus-linux.x64-19.20.0.0.0dbru.zipexportLD_LIBRARY_PATH=./instantclient_19_20:$LD_LIBRARY_PATHexportPATH=./instantclient_19_20:$PATHsqlplus user/pass@//localhost:1521/orclpdb1

二、SQL*Plus 与数据库的交互

1. 启动与连接

-- 方式1:启动后连接sqlplus/nologSQL>CONNECTscott/tiger@orcl-- 方式2:直接连接sqlplus scott/tiger@orcl-- 方式3:操作系统认证(需配置)sqlplus/assysdba

2. 执行 SQL 与 PL/SQL

-- 执行单条 SQLSELECT*FROMemp;-- 执行 PL/SQL 块BEGINDBMS_OUTPUT.PUT_LINE('Hello from PL/SQL!');END;/

注意:PL/SQL 块必须以/结尾才能执行。


三、SET 命令简介与常用设置

SET命令用于控制 SQL*Plus 的运行环境。

常用 SET 选项

选项作用默认值
PAGESIZE n每页显示行数14
LINESIZE n每行字符数80
FEEDBACK ON/OFF显示返回行数ON
VERIFY ON/OFF显示替换变量前后值ON
ECHO ON/OFF显示脚本中的命令OFF
HEADING ON/OFF是否显示列标题ON
SERVEROUTPUT ON显示 DBMS_OUTPUT 输出OFF

示例:设置查询环境

-- 设置每页50行,每行200字符SETPAGESIZE50SETLINESIZE200-- 关闭反馈信息(如 "7 rows selected.")SETFEEDBACKOFF-- 开启 DBMS_OUTPUT(用于 PL/SQL 调试)SETSERVEROUTPUTON-- 关闭变量验证(避免重复显示)SETVERIFYOFF-- 示例查询SELECTempno,ename,jobFROMempWHEREdeptno=20;

四、常用 SQL*Plus 命令详解

1. HELP 命令

显示 SQL*Plus 命令帮助。

HELPINDEX-- 列出所有可用命令HELPSET-- 查看 SET 命令帮助HELPCOLUMN-- 查看 COLUMN 命令帮助

2. DESCRIBE 命令(DESC)

查看表、视图或存储过程的结构。

-- 查看 emp 表结构DESCemp;-- 输出示例:-- Name Null? Type-- -------- -------- --------------- 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)

3. SPOOL 命令

将屏幕输出保存到文件。

-- 开始记录到 report.txtSPOOL report.txt-- 执行查询SELECTCOUNT(*)FROMemp;SELECTSYSDATEFROMdual;-- 停止记录并关闭文件SPOOLOFF

文件默认保存在当前工作目录。

4. 其他常用命令

-- 清屏(仅 Windows/Linux 终端支持)CLEAR SCREEN-- 显示当前用户SHOWUSER-- 显示参数设置SHOWPAGESIZESHOWLINESIZE-- 退出 SQL*PlusEXIT或 QUIT

五、格式化查询结果

1. COLUMN 命令

用于格式化特定列的显示方式。

语法:
COLUMNcolumn_name[option]
常用选项:
  • FORMAT A<n>:字符型,宽度 n
  • FORMAT 99999:数字型,指定位数
  • HEADING '新标题'
  • JUSTIFY LEFT/RIGHT/CENTER
  • WRAP / WORD_WRAPPED:自动换行
示例:
-- 格式化 emp 表查询输出COLUMNename HEADING"Employee Name"FORMAT A15 JUSTIFY CENTERCOLUMNsal HEADING"Salary ($)"FORMAT $99,999.99COLUMNhiredate HEADING"Hire Date"FORMAT A12SELECTename,sal,hiredateFROMempWHEREdeptno=10;-- 禁用某列格式COLUMNename CLEAR

2. TTITLE 和 BTITLE 命令

设置报表的页眉(Top Title)和页脚(Bottom Title)。

示例:
-- 设置页眉TTITLE CENTER'Employee Salary Report'SKIP2-- 设置页脚BTITLE CENTER'Confidential - Page &PAGE'-- 执行查询SELECTename,job,salFROMempORDERBYsalDESC;-- 清除标题TTITLEOFFBTITLEOFF

&PAGE是 SQL*Plus 内置变量,表示当前页码。


六、综合性实战案例

案例:生成部门工资汇总报告

目标:为 HR 部门生成一份格式化的部门工资汇总报告,包含页眉页脚、列格式、分页控制,并输出到文件。

-- 1. 设置环境SETPAGESIZE30SETLINESIZE120SETFEEDBACKOFFSETVERIFYOFFSETECHOOFF-- 2. 设置标题TTITLE CENTER'Department-wise Salary Summary Report'SKIP1-CENTER'Generated on '_DATE SKIP2BTITLE CENTER'Page &PAGE of Total Results'-- 3. 格式化列COLUMNdeptno HEADING"Dept No"FORMAT999COLUMNdname HEADING"Department Name"FORMAT A20COLUMNtotal_sal HEADING"Total Salary ($)"FORMAT $999,999.99COLUMNemp_count HEADING"Employees"FORMAT999-- 4. 开始输出到文件SPOOL dept_salary_report.txt-- 5. 执行汇总查询SELECTd.deptno,d.dname,COUNT(e.empno)ASemp_count,SUM(e.sal)AStotal_salFROMdept dLEFTJOINemp eONd.deptno=e.deptnoGROUPBYd.deptno,d.dnameORDERBYtotal_salDESCNULLSLAST;-- 6. 结束输出SPOOLOFF-- 7. 清理设置CLEARCOLUMNSTTITLEOFFBTITLEOFFSETFEEDBACKON

输出效果(dept_salary_report.txt 片段):

Department-wise Salary Summary Report Generated on 14-JAN-2026 Dept No Department Name Employees Total Salary ($) ------- -------------------- --------- ----------------- 20 RESEARCH 5 $10,875.00 30 SALES 6 $9,400.00 10 ACCOUNTING 3 $8,750.00 40 OPERATIONS 0 $.00 Page 1 of Total Results

七、总结

功能命令用途
环境设置SET控制输出格式、反馈等
结构查看DESC查看表/对象结构
输出重定向SPOOL保存结果到文件
列格式化COLUMN美化查询结果
报表标题TTITLE/BTITLE添加页眉页脚
帮助HELP获取命令帮助

掌握这些命令,可大幅提升 SQL*Plus 的使用效率,尤其适用于自动化脚本、报表生成和数据库日常维护。

⚠️ 注意:SQLPlus 是传统工具,现代开发推荐使用SQL DeveloperVS Code + Oracle 插件,但 SQLPlus 在脚本自动化和服务器无 GUI 环境中仍不可替代。

http://www.jsqmd.com/news/256529/

相关文章:

  • Super Resolution适合新手吗?零基础部署全流程图文教程
  • Nanobrowser深度解析:构建下一代智能浏览器助手的完整指南
  • PETRV2-BEV模型实战:可视化工具使用与结果分析
  • FST ITN-ZH在供应链管理中的应用:单据信息标准化
  • Voice Sculptor情感控制详解:生成带情绪的语音内容
  • 开箱即用!DeepSeek-R1内置Web界面快速体验指南
  • Czkawka终极指南:快速释放Windows磁盘空间的完整方法
  • Windows系统调优新方案:NexusOptimizer深度配置完全指南
  • 看完就想试!Qwen镜像打造的萌宠插画作品展示
  • 鸣潮自动化工具终极指南:从零开始轻松掌握游戏辅助
  • vllm资源管理:HY-MT1.5-1.8B GPU利用率优化
  • bge-large-zh-v1.5保姆级教程:小白也能用云端GPU快速部署
  • Tunnelto革命:彻底改变本地服务公网访问的游戏规则
  • Pot-Desktop:重新定义你的跨平台翻译和OCR体验
  • PingFangSC字体包:全网最全免费苹果平方字体资源完整指南
  • HsMod:炉石传说游戏增强插件完全指南
  • 3个OCR神器推荐:预装镜像免安装,百元内完成全套测试
  • 13ft Ladder:突破付费墙的智能解决方案深度解析
  • Tunnelto完全指南:3分钟学会本地服务公网暴露技巧
  • AI智能文档扫描仪隐私安全优势:本地处理不上传云端实战验证
  • 小白也能懂:用Qwen3-Reranker-0.6B优化电商商品搜索效果
  • Qwen图像编辑快速版:从零到精通的AI创作完全指南
  • 终极指南:如何用HsMod插件3倍速提升炉石传说体验
  • 海尔智能家居接入秘籍:HomeAssistant一站式配置宝典
  • tunnelto革命性突破:3步实现本地服务全球共享
  • Supertonic极速TTS实践|设备端文本转语音新体验
  • Youtu-2B部署案例:某企业客服系统改造实践
  • 中小企业AI语音方案:Sambert低成本部署完整实践案例
  • Nanobrowser多智能体浏览器自动化技术实现指南
  • 开箱即用!bge-large-zh-v1.5中文嵌入模型快速上手指南