ORACLE之SQL*PLUS的格式化输出

Slides:



Advertisements
Similar presentations
高一七班 研究性学习小组 当我们正为寻找什么课 题而烦恼时,忽见一 精光从我面前闪过。 艾玛,原来是我同桌 眼镜反射,自此 “ 眼镜 ” 这课题被我付诸行动。 我们为此进行了研究 讨论学习 下图为组员在查阅资料.
Advertisements

1 認識創業之財務 ( 資金 ) 及稅務問題 講師 : 蘇炳章 日期 : 92 年 8 月 12 日.
第二章 简单的 SQL 语句. 本章要点  创建一个简单的表  SQL 语句介绍  最简单的查询语句 select  带有限制条件的查询  查询结果的排序显示.
Data type P64 ‘’ 转义字符 P67 P68 EXE,选出某个教师的学生中最新的一 个,要姓名, ID (,LIMIT ) EXISTS,NOT EXISTS P409 Q,EXISTS 和 in 的区别( 1000 ,查询结果)
上海市场首次公开发行股票 网下发行电子化方案 初步询价及累计投标询价 上海证券交易所 上市公司部.
高齡自主學習團體終身學習試辦計畫經費核銷
考点作文十大夺魁技法 第28课时 写作(二) 考点作文十大夺魁技法 6-10 ·新课标.
SQL的简单查询.
第5章 关系数据库标准语言SQL 主讲:张丽芳.
十一 ASP对数据库的访问.
舊石器時代 位置: 亞洲大陸東緣,西太平洋弧狀列島一部份 背景 形成: 兩千多萬年前逐漸隆起,形成島嶼 生物: 大角鹿、猛瑪象、亞洲大陸原始人 臺東 長濱文化 苗栗 網形文化 臺南 左鎮人目前臺灣發現最早人類化石 代表 文化 1.住在海邊洞穴-短期定居小型隊群 2.以採集、狩獵為生 3.使用礫石砍伐器、片器、尖器.
台北縣98年三鶯區語文研習 --建國國小 修辭與標點符號 福和國中廖惠貞
  中国技术交易信息服务平台 中国技术市场管理促进中心.
第5章 索引及视图操作 数据库原理应用与实践 SQL SERver2014(第2版) 主编 贾铁军 科学出版社 编著 陈国秦 万程 邢一鸣
数据库技术 实践.
有三件事我很確定: 第一、愛德華是吸血鬼 第二、出於天性,他渴望喝我的血 第三、我無可救藥地愛上他了……
逻 辑 学 主讲:李贤军.
第8章 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
管理資訊系統 David Kroenke 資料庫處理 第4章.
第4章 关系数据库标准语言SQL 4.1 SQL语言概述 4.2 SQL数据查询功能 4.3 SQL数据操作功能 4.4 SQL数据定义功能.
你,是扼殺 孩子競爭力的幫兇嗎?.
安徽地税金三电子税务局 系统培训 2015年12月.
第一讲 数据查询优化.
2006年台灣醫學中心大搜查 聰明病人 完全就醫指南.
第22章 汽车制动系 学习目标 1.掌握制动系的工作原理 2.掌握液压传动装置的结构 3.掌握气压传动装置的结构.
第3章 数据查询与SQL命令.
資料庫管理 資管二 賴柏融.
第15章 Java数据库连接(JDBC) 15.1 创建数据源 15.2 JDBC-ODBC桥接器 15.3 顺序查询
公務員廉政倫理規範.
組 員: 王 新 惠 吳 映 暄 李 盈 慧 廖 香 涵 盧 姵 華 訪談日期:
國賓飯店儲備幹部訓練 工業組織與管理-個案Report 組員: T 王佑靜 T 張秀蓮 T 邱佳微
關聯式資料庫.
第十五章 常見的資料庫管理系統 目的 Oracle 微軟SQL Server 微軟Access MySQL Oracle 應用伺服器
Access 2007 進銷存管理系統實作 文魁資訊股份有限公司.
第六章 學習SQL語言.
9 SELECT敘述的進階查詢 9-1 SQL的多資料表查詢 9-2 合併查詢 9-3 集合運算查詢 9-4 子查詢
数据库实验指导(一)
班級:博、碩子一甲 授課老師:鐘國家 助教:陳國政
第3章 MySQL教學範本 主從式資料庫系統 - CH3.
实验 2:MS Access QBE Query使用
数据库原理及应用 《数据库原理及应用》课程组 荆楚理工学院.
第三章:包   包(package)是一个可以将相关对象存储在一起的PL/SQL结构。包包含了两个分离的部件------包说明(specification)和包主体(body)。每个部件都单独被存储在数据字典中。包只能存储在数据库中,不能是本地的。除了可以将相关对象作为一组存在一起以外,包也是十分有用的,因为它们在依赖性方面的限制是比较小的。也有许多性能上的优点。
第九章 進階的查詢技巧.
MySQL 結構化查詢語言 MySQL.
第十七章 資料庫SQL 17-1 SELECT 17-2 INSERT 17-3 UPDATE 17-4 DELETE.
iRepor报表设计基础 IReport安装 普通实体报表 数据结果集报表 工作流主从报表 饼状图报表 柱状图,曲线图报表 条形码报表
指導教授:黃三益 教授 學生 洪瑞麟 m 蔡育洲 m 陳怡綾 m
第18章 SQL結構化查詢語言 18-1 SQL語言的基礎 18-2 SQL的查詢指令 18-3 SQL子查詢與合併查詢.
資料庫系統 李翊豪 2017/12/21 Reference
3.2 Mysql 命令行 1 查看数据库 SHOW DATABASES; 2 创建一个数据库test1 CREATE DATABASE test1; 3 选择你所创建的数据库 USE test1; (按回车键出现Database changed 时说明操作成功!) 4 查看现在的数据库中存在什么表.
3. SQL语言的应用 3.1 SQL历史和优点 3.2 数据查询 3.3 数据操纵.
学习目标 1、什么是表连接 2、表连接类型 3、表连接区别.
数据透视表与SQL典型应用 ——数据分析人士必杀技
查询与视图 蔡海洋.
第14章 SQL数据查询与操纵 内容提要 本章知识点
本讲内容 SQL 概述 SQL 的查询功能 SQL 的操作功能 SQL 的定义功能.
資料庫系統實作 實習課.
「與校長有約」 with普二速
資料庫管理 Database Managent Ex.1-2 課本範例練習
8 SELECT敘述的基本查詢 8-1 SELECT查詢指令 8-2 SELECT子句 8-3 FROM子句 8-4 WHERE子句
11 檢視表的建立 11-1 檢視表的基礎 11-2 建立檢視表 11-3 修改與刪除檢視表 11-4 編輯檢視表的內容.
組員:.
数据分析工具 第10节.
Principle and Technology of Database
 主講人:楊文明主任委員   106/06/30 中華電信職工福利委員會台北分會業務簡介.
資料庫應用與實作 一到六章重點、習題.
第4章 数据查询.
Web安全基础教程
第 9 章 查詢資料- 善用 SELECT 敘述.
教師檔案系統資料如何填寫? 如何對應教師評鑑共同基準?.
Presentation transcript:

ORACLE之SQL*PLUS的格式化输出 第二十三讲 ORACLE之SQL*PLUS的格式化输出

本讲内容 通过介绍SQL*PLUS命令来说明如何通过该工具输出具有一定格式的查询结果。 介绍执行批文件

格式化输出 在SQL*Plus中,有许多参数可控制SQL*Plus的输出显示格式。利用SQL*Plus命令show all。

页和行的大小 命令set linesize告诉Oracle页宽是多少,最常用的设置为80和132。为设置行宽为80,可输入命令set linesize 80。set pagesize命令告诉Oracle页的长度是多少,常用设置为55和60。为了更容易地看到分页,可以用命令set pagesize 30设置页长为30行。

页头标 可以用ttitle命令设置每页的标题。ttitle命令包括许多选项。通常使用的缺省设置为:标题文本在行中央,每页上都有日期和页号。如果需要两行头标,则需要使用竖字符(|)。命令 ttitle 'Database techologies|Customer Report‘ 使Oracle居中放置文本“Database Technologies”为第一个头标行,然后将文本“Customer Report”居中放置在第二行。

页脚标 可用btitle命令在每页的底部放置一些信息。建议将程序名放在此处。如果用户需要改一个报告时,只要指定页底部的程序名,就可知道要改那个报告,这有助于避免混淆。命令 btitle '---sample.sql---‘ 使SQL*Plus把文本“---sample.sql---”放于每一页底部中央。用户还可以使用left或right关键字将btitle命令中的文字放到相应的位置。如果btitle命令中没有用于定位的关键字,Oracle将文本放在底行的中央。

将SQL*Plus结果写到文件中 格式化输出样例

Spool命令 spool命令使Oracle将SQL*Plus的输出保存到一个数据文件中。spool命令中要指定输出文件名。如在Windows NT上,要将SQL*Plus的输出保存到数据文件out.lis中,可用命令 spool c:\report\out.lis。 在大多数操作系统中,如果用户未指定后缀,系统会自动在文件名后增加后缀“.lst”。例如,命令spool report会自动产生一个名为report.lst的文件。 提示:SQL*Plus自动把文件扩展名加到spool命令中指定的文件名后。在不同的操作系统中,扩展名可能不同。

续 如果已执行了命令 set linesize 70 set pagesize 23 并用命令 col sales format 99999999 格式化了sales表列,要保存SQL语句select * from customer的输出到一个文件。这个输出将放在用spool命令指定的文件中。请注意,因为sales表列是用99999999格式化的,因此显示结果中没有小数。为停止假脱机(spooling),可用命令spool off或spool out。后者关闭输出文件并打印输出。

格式化输出表列 大多数情况下,用户需要格式化实际的表列数据,Column命令可完成这项工作。下面先执行两条格式化命令,然后再查询customer表。命令 column last_name format a8 wrap heading 'Last|Name'告诉SQL*Plus在last_name表列只显示8个字符。8代表last_name的显示宽度,a表示每个位置只能是字符。其中wrap部分说明如果last_name多于8个字符,多余的字符显示在下一行的对应位置。Heading部分告诉SQL*Plus把“Last Name”分两行打印在报告的头上。

Column命令 命令 column state_cd format a8 heading 'State|Code‘ 让SQL*Plus以8个字符位置显示state_cd,并且在state_cd表列的顶部放一个两行的列标题“State Code”。现在同样的SQL语句 select * from customer;

Format命令 现在我们来格式化数值型域。format子句可规定用于显示每个数值的位数,并指明在何处插入逗号。语句 column sales format 999,999,999,999.00 heading 'Sales‘ 使SQL*Plus显示12位数字,两位小数,用逗号作分隔符。

断开逻辑(Break Logic) 现在增加断开逻辑。在SQL*Plus中,增加断开逻辑的方法很简单。只要执行break命令,SQL*Plus就会管理所有的断开逻辑。

未断开逻辑 col sales format 999999.00 和SQL查询语句select state_cd,last_name, sales from customer order by state_cd,last_name;

断开逻辑 执行断开命令break on state_cd,上述查询语句的输出如图所示。注意,在图中,state_cd为CA的在第1行显示后,第2行至第5行都不显示(因为从第一行后state_cd没有改变),然后第6行和第7行的值不同,又再显示。

排序 提示:为在SQL*Plus中实现断开逻辑,必须在断开命令指定的表列上进行查询排序。 为说明此点,执行查询 select state_cd,last_name, sales from customer order by last_name; 再执行命令 break on state_cd 输出如图所示。

断开和跳过(Break and Skip) 通常,实现断开逻辑后,我们希望在出现新的断开列值前空几行,这时就要用到skip命令。用命令 col sales format $999,999,999.99 heading 'YTD|Sales‘ 重新格式化sales表列,再执行断开命令 break on state_cd skip 1 现在,语句 select state_cd, last_name, sales from customer order by state_cd, last_name;

在断开点计算表列值 用compute sum命令,用户可以让SQL*Plus计算所需的和。现在讨论完成断开格式化和计算YTD合计值所需的命令。 命令 compute sum of sales on report 是在报表结尾处,计算报表的合计值。report在此处用于触发数值域求和,并显示在报表的结尾处。而命令“compute sum of sales on state_cd”使在打印新的state_cd时打印合计。

续 为同时打印报表合计和断开点合计,需要用命令 break on report skip 1 on state_cd skip 1 重置断开条件。修改SQL语句以便用state_cd排序数据。对于断开报表,必须用break语句中同样的表列排序数据。 注意:为使本节的输出能打印在一页中,必须增加页尺寸。为此输入命令 set pagesize 28

结尾处带总计的state_cd断开报表 SQL语句 select state_cd,last_name, sales from customer order by state_cd,last_name; 用语句 col sales format $999,999,999.00 heading 'YTD|Sales‘ 重新格式化sales表列后 执行上述select语句, 其断开输出如图所示

基于双表的断开逻辑与求和 在多个表中,通过匹配表列值选择数据。下面显示州名(state_name)而非州名代码(state_cd)。

最后的修饰 需要state表中的state_name表列的值,可以通过state_cd连接state和customer两个表。 选择语句 select state_name, last_name, sales from state a,customer b where a.state_cd=b.state_cd order by state_name, last_name; 因为计算时使用state_name表列,所以必须用 break on report skip 1 on state_name skip 1 重新向SQL*Plus描述断开条件。我们也需要用 compute sum of sales on state_name 和 compute sum of sales on report 语句重新定义断开点合计和报表合计。

最终结果

小结 介绍了SQL*Plus命令中关于格式化输出的部分内容,包括页头、页脚等。