描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302519560丛书名: 高等院校信息技术规划教材
为了便于读者学习,本书首先介绍了数据库的基本知识、Oracle数据库12c的安装、卸载过程以及数据的配置,然后详细介绍Oracle数据库的开发与管理,通过层层深入的方式引领读者进入Oracle 12c的世界。
2. 内容充实,层次清晰
本书层层深入,从安装Oracle数据库系统开始,详细讲解了Oracle数据库的SQL基础语句以及PL/SQL编程知识,通过理论与实例相结合的方式让读者尽快对Oracle的开发与管理有一个清楚的认识。
3. 实例丰富,案例完整
每个知识点都通过简单易懂的实例进行剖析,培养读者的操作思路。
4. 语言简练,结构合理
以简洁的语言叙述,从数据库基础知识、体系结构开始,到数据库开发,*后介绍数据库的安全与管理,结构清晰,层次分明。
本书内容丰富、结构合理、思路清晰、语言精练,以Oracle自带的人力资源管理(HR)模式为案例详细介绍了Oracle数据库的管理与开发技术。
本书既可以作为高等学校计算机科学与技术及相关专业的教学用书,也可以作为各种数据库培训班的培训教材,还可以供使用Oracle数据库进行应用程序开发的人员参考。
目录Contents第1章Oracle数据库概述1
1.1Oracle数据库的发展史1
1.2Oracle数据库产品3
1.2.1企业版3
1.2.2标准版3
1.2.3标准版14
1.3Oracle基本术语5
1.3.1数据块5
1.3.2数据扩展5
1.3.3数据段5
1.3.4表空间5
1.3.5数据文件6
1.3.6控制文件6
1.3.7数据字典6
1.4Oracle 12c新特性7
1.5小结8
第2章Windows平台上Oracle 12c的安装与配置9
2.1Oracle通用安装程序OUI9
2.2Oracle 12c的安装10
2.2.1Oracle 12c的系统需求11
2.2.2Oracle 12c数据库服务器的安装流程11
2.2.3Oracle 12c客户端工具的安装18
2.3Oracle Database 12c的卸载23
2.4Oracle 12c的配置24
2.4.1Oracle数据库配置助手24
2.4.2Oracle网络管理25◆Oracle Database 12c基础教程目录2.4.3Oracle网络配置助手31
2.5小结32
第3章Oracle 12c体系结构33
3.1概述33
3.2Oracle Database 12c的多租户架构34
3.2.1CDB中的容器34
3.2.2多租户体系结构的优势36
3.3Oracle数据库进程37
3.3.1用户进程37
3.3.2服务器进程38
3.3.3Oracle监听器39
3.3.4后台进程39
3.4内存结构42
3.4.1系统全局区42
3.4.2程序全局区43
3.4.3用户全局区43
3.4.4软件代码区43
3.5文件系统43
3.5.1控制文件43
3.5.2数据文件44
3.5.3重做日志文件44
3.5.4其他文件44
3.6小结44
第4章Oracle Database 12c应用开发工具45
4.1SQL Plus使用指南45
4.1.1启动和退出SQL Plus45
4.1.2SQL Plus的编辑功能48
4.1.3使用SQL Plus格式化查询结果53
4.1.4使用SET命令设置SQL Plus环境55
4.2Oracle SQL Developer使用指南57
4.2.1启动Oracle SQL Developer57
4.2.2通过SQL Developer进行数据库的管理与开发60
4.3小结64第5章Oracle SQL基础65
5.1SQL概述65
5.1.1SQL的发展与标准化65
5.1.2SQL语句结构66
5.1.3SQL的特点67
5.1.4演示模式67
5.2数据查询69
5.2.1使用SELECT语句检索数据69
5.2.2对检索结果进行限定和排序74
5.2.3在SELECT语句中使用函数90
5.2.4多表查询112
5.2.5子查询119
5.2.6集合运算124
5.3数据操作127
5.3.1插入数据127
5.3.2修改数据129
5.3.3删除数据130
5.3.4事务控制131
5.4数据定义136
5.4.1数据库对象136
5.4.2管理表140
5.4.3管理其他对象152
5.4.4使用数据字典管理对象161
5.5小结166
第6章Oracle PL/SQL程序设计基础167
6.1PL/SQL概述167
6.1.1PL/SQL简介167
6.1.2PL/SQL块结构与类型169
6.1.3创建PL/SQL匿名块171
6.2简单PL/SQL程序171
6.2.1PL/SQL变量171
6.2.2在PL/SQL中使用函数173
6.2.3嵌套PL/SQL块173
6.2.4在PL/SQL中使用SQL语句175
6.3PL/SQL控制结构178
6.3.1IF语句178
6.3.2CASE表达式179
6.3.3循环语句181
6.4游标186
6.4.1隐式游标186
6.4.2显式游标187
6.4.3使用复合数据类型190
6.4.4使用游标处理检索结果集197
6.5异常处理202
6.5.1初识异常202
6.5.2异常处理流程203
6.5.3异常捕获与处理205
6.6过程与函数208
6.6.1子程序208
6.6.2过程209
6.6.3函数212
6.6.4向过程或函数传递实参215
6.6.5使用数据字典视图216
6.7小结217
第7章Oracle安全管理218
7.1用户管理218
7.1.1用户的安全属性218
7.1.2创建用户220
7.1.3修改用户221
7.1.4删除用户221
7.1.5查询用户信息222
7.2权限管理223
7.2.1系统权限管理223
7.2.2对象权限管理228
7.2.3使用数据字典视图查询权限信息230
7.3角色管理230
7.3.1预定义角色231
7.3.2管理角色232
7.3.3使用数据字典视图查询角色234
7.4概要文件管理234
7.4.1创建概要文件234
7.4.2修改概要文件236
7.5数据库审计237
7.5.1传统审计238
7.5.2统一审计239
7.5.3标准审计240
7.5.4细粒度审计240
7.6小结243
第8章Oracle数据库管理244
8.1表空间管理244
8.1.1表空间概述244
8.1.2创建表空间245
8.1.3维护表空间247
8.1.4删除表空间248
8.1.5临时表空间248
8.1.6撤销表空间249
8.2文件管理250
8.2.1数据文件管理250
8.2.2控制文件管理251
8.2.3重做日志管理254
8.2.4归档日志管理256
8.3数据库的备份与恢复259
8.3.1数据库的备份260
8.3.2数据库的恢复261
8.3.3使用RMAN进行数据库备份261
8.3.4使用导入导出实现逻辑备份与恢复264
8.3.5使用数据泵进行数据库的备份与恢复265
8.4小结267
参考文献268
前言Foreword无论是计算机专业人员,还是非专业人员,都不可避免地要与数据库打交道。Oracle数据库是数据库领域使用广泛、占有市场份额的数据库管理系统。Oracle体系结构的灵活与复杂性,导致很多读者认为学习Oracle是一件非常困难的事情。为了让人们更容易地学习Oracle,本书以初学者为对象,以Oracle 数据库12c 发行版1(版本号为12.1.0.2.0)为基础,用简洁的语言与实例讲解Oracle数据库系统。
Oracle数据库系统是Oracle公司推出的跨平台的具有灵活体系结构的数据库管理软件。Oracle可以在Linux、Windows、Solaris等系统上运行,并且具有一致的操作方式。目前市面上很多优秀的Oracle书籍都是以某个特定的技术点为基点,或侧重于开发,或侧重于管理,造成Oracle学习人员不能全局领略Oracle的组成。本书以初学者为对象,使用简单、易懂的语言,力求让读者轻松学习Oracle。
本书先从Oracle的基础知识开始,全面细致地介绍了Oracle Database 12c的安装及配置、Oracle的体系结构,然后详细阐述使用数据库管理系统进行数据管理的各种SQL操作和使用PL/SQL进行数据库程序开发所需要的基本知识和技术,后讲解Oracle的安全与管理知识。
全书共8章,内容包括Oracle数据库概述、Windows平台上Oracle 12c的安装与配置、Oracle 12c体系结构、Oracle Database 12c应用开发工具、Oracle SQL基础、Oracle PL/SQL程序设计基础、Oracle安全管理、Oracle数据库管理。
在本书的编写过程中得到了清华大学出版社编辑的具体指导与大力帮助,另外,参考文献中涉及的专家学者为我们提供了学习的机会,在此一并致谢!
由于编者水平有限,书中难免有疏漏之处,敬请指正!
周法国2018年5月于北京◆Oracle Database 12c基础教程
第5章chapter5
第5章Oracle SQL基础1.1微型计算机简介结构化查询语言(Structured Query Language,SQL)是一种用于访问和处理数据库的标准的计算机语言,用来管理对存储在关系数据库中规范化数据的访问。它不是一种应用程序开发语言,但当开发语言需要访问数据时,会调用SQL。Oracle服务器技术提供了开发和部署应用程序的平台。Oracle SQL是Oracle服务器技术和SQL结合产生的一种符合关系数据库范例的环境,这是一种用于云计算的可行方法。Oracle SQL提供了一个简单、优秀、高性能的架构访问、定义和维护数据。
5.1SQL概述
SQL是专为数据库建立的操作命令集,是一种功能齐全的数据库语言。SQL是一种用于访问和处理数据库的标准的计算机语言,用来管理对存储在关系数据库中规范化数据的访问。
5.1.1SQL的发展与标准化
1970年年初,IBM公司San Jose,California研究实验室的埃德加·科德发表了将数据组成表格的应用原则(Codds Relational Algebra)。1974年,同一实验室的D.D.Chamberlin和R.F. Boyce对Codds Relational Algebra在研制关系数据库管理系统System R中,研制出一套规范语言SEQUEL(Structured English Query Language),并在1976年11月的IBM Journal of R&D上公布新版本的SQL(称SEQUEL/2)。1980年将其改名为SQL。
1979年,Oracle公司首先提供商用的SQL,IBM公司在DB2和SQL/DS数据库系统中也实现了SQL。
1986年10月,美国ANSI采用SQL作为关系数据库管理系统的标准语言(ANSI X3.1351986),后被国际标准化组织(ISO)采纳为国际标准。
1989年,美国ANSI采纳在ANSI X3.1351989报告中定义的关系数据库管理系统的SQL,称为ANSI SQL 89,该标准替代ANSI X3.1351986版本。该标准被ISO采纳为ISO/IEC 9075系列标准。此后,ISO每5年左右更新一次该标准,到目前为止,完整的标准公布年份分别为1992、1999、2003、2008、2011、2016。
各种不同的数据库产品对SQL的支持与标准存在细微的不同,这是因为,有的产品的开发先于标准的公布。另外,各产品开发商为了达到特殊的性能或新的特性,需要对标准进行扩展。Oracle SQL的发布一般都是先于标准的。Oracle Database 12c的SQL支持SQL 2011核心标准。
◆Oracle Database 12c基础教程第◆5章Oracle SQL基础SQL基本上独立于数据库本身、使用的机器、网络、操作系统,基于SQL的DBMS产品可以运行在从个人机、工作站到基于局域网、小型机和大型机的各种计算机系统上,具有良好的可移植性。数据库和各种产品都使用SQL作为共同的数据存取语言和标准的接口,使不同数据库系统之间的互操作有了共同的基础,进而实现异构机、各种操作环境的共享与移植。
5.1.2SQL语句结构
SQL共包含5部分内容。
1. 数据查询语言
数据查询语言(Data Query Language,DQL)的语句也称为数据检索语句,用以从表中获得数据,确定数据怎样在应用程序中给出。保留字SELECT是DQL(也是所有SQL)用得多的动词,其他DQL常用的保留字有WHERE、ORDER BY、GROUP BY和HAVING。这些DQL保留字常与其他类型的SQL语句一起使用。
2. 数据操作语言
数据操作语言(Data Manipulation Language,DML)的语句包括动词INSERT、UPDATE和DELETE。它们分别用于添加、修改和删除表中的行。DML也称为动作查询语言。
3. 数据定义语言
数据定义语言(Data Define Language,DDL)的语句包括动词CREATE和DROP。在数据库中创建新表或删除表(CREAT TABLE 或 DROP TABLE);为表加入索引等。DDL包括许多与从数据库目录中获得数据有关的保留字。DDL也是动作查询的一部分。
4. 数据控制语言
数据控制语言(Data Control Language,DCL)的语句通过GRANT或REVOKE获得许可,确定单个用户和用户组对数据库对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
5. 事务控制语言
事务控制语言(Transaction Control Language,TCL)的语句确保被DML语句影响的表中的行及时得以更新。TCL语句包括BEGIN TRANSACTION、COMMIT和ROLLBACK。
DQL、DML、DDL、DCL、TCL共同组成数据库的完整语言。
5.1.3SQL的特点
SQL是高度非过程化的结构化查询语言,主要有以下特点。
1. 一体化
SQL集数据查询DQL语句、数据操纵DML语句、数据定义DDL语句、数据控制DCL语句以及事务控制TCL语句于一体,可以完成数据库中的全部工作。
2. 使用方式灵活
SQL具有两种使用方式,既可以直接以命令方式交互使用,也可以嵌入使用,嵌入C、C 、Java等主语言中使用。
3. 非过程化
SQL只提操作要求,不必描述操作步骤,也不需要导航。使用时只需要告诉计算机“做什么”,而不需要告诉它“怎么做”。
4. 语言简洁,语法简单,好学好用
ANSI标准中只包含94个英文单词,核心功能只用6个动词,语法接近英语口语。
总之,SQL是专为数据库建立的操作命令集,是一门功能齐全、使用简单、操作方便的数据库语言。
5.1.4演示模式
本书中的演示示例均以Oracle Database 12c自带的插拔式数据库中的演示模式HR为例。HR演示模式由7张表组成,这些表由主键到外键的关系链接在一起。图5.1显示的就是这些表之间的关系,即实体关系图。
图5.1HR实体关系图
由图5.1可以看出,HR模式共有7张表,分别描述如下。
(1) EMPLOYEES——员工表,包含所有员工的信息,必须为每个员工分配一项工作,并且为他分别一个部门和一位经理(可选),经理本身必须是员工。
(2) DEPARTMENTS——部门表,包含所有部门的信息,为每个部门分配一个地址和一位经理(可选),经理必须是存在的员工。
(3) JOBS——工作表,包含所有可能的工作信息,多名员工可以有相同的工作。
(4) LOCATIONS——地址表,包括所有部门的地址信息。一个地址分配一个国家(可选)。
(5) COUNTRIES——国家表,包括所有地址的国家信息。一个国家分配给一个地区(可选)。
(6) REGIONS——地区表,包括主要地区的信息。
(7) JOB_HISTORY——工作历史表,包括员工曾经从事过的工作,由employee_id和start_date标识。
一名员工不可能同时从事两份工作,每个工作历史记录都表示一名员工,当时他只有一份工作,是一个部门中的成员。
该模式下有两个主要的关系,首先是表EMPLOYEES到EMPLOYEES存在多对一的关系,这就是所谓的自引用外键,这意味着多名员工可以连接到一名员工,因为多名员工可以有一名经理,但经理也是一名员工,这种关系由列manager_id实现(它是引用employee_id的外键),而employee_id是该表的主键。其次是表DEPARTMENTS和EMPLOYEES之间的双向关系,一个部门对多名员工的关系说明在一个部门中可能有许多员工,EMPLOYEES表的department_id列是引用了表DEPARTMENTS的主键列department_id的外键;一名员工对一个部门的关系,表示一个员工只能是一个部门的经理,由DEPARTMENTS表的manager_id列实现,它是引用了表EMPLOYEES的主键列employee_id的外键。
5.2数 据 查 询
Oracle SQL基本的操作是实现数据的查询与检索操作。数据的查询与检索操作包括3种基本运算,即投影(projection)、选择(selection)与连接(join),如图5.2所示。
图5.2数据库检索的基本运算
选择是从数据库的表中通过一定的条件,把满足条件的行筛选出来;投影简单说就是选择表中指定的列;连接是把两个表按照给定的条件汇成一张表。
5.2.1使用SELECT语句检索数据
SQL的SELECT语句是一种功能非常强大的数据库查询语句,用于从数据库表中检索信息。SELECT语句采用了类似于英语的简单格式,可以采用自然的方式与数据库交互,具有优雅、灵活和高度可扩展的优点。
1. 基本的SELECT语句
基本的SELECT语句支持列投影以及算术、字符和日期表达式的创建,也能够从结果集中删除重复值。基本SELECT语句的语法结构如下所示。SELECT |{[DISTINCT]column | expression [alias],… }
FROM table;SELECT语句语法的特殊关键字或者保留字一般使用大写字母(其实,在开发环境中使用该语句时,关键字及保留字的大小写并不重要),表名、列名及表达式一般使用小写字母。SELECT语句总是包含两个或者更多个子句,但两个强制子句是SELECT子句和FROM子句。书写时,一般一个子句单独占一行,也可以多个子句写在一行。管道符号(|)表示或者(OR)。因此,SELECT语句的简单形式是: SELECT FROM table;这里的星号()表示所有列。SELECT 是要求Oracle服务器返回某表所有可能列的简单方式。FROM子句指定查询哪个表获得SELECT子句所请求的列(投影)。如使用下面的SQL语句从HR模式的departments表中检索所有列和所有行: SELECT FROM departments;查询所有列和所有行的结果如图5.3所示。
图5.3查询所有列和所有行的结果
除了在SELECT子句中用星号()显示所有列外,还可以指定显示需要的列,其他不需要的列不显示,其语法格式如下。SELECT column1,column2, …FROM table;如查询工作历史表(JOB_HISTORY)中所有行的数据,仅显示曾经发生工作变动的员工编号(employee_id)和所在的部门编号(department_id),则可以使用如下的SELECT语句。SELECT employee_id, department_id FROM JOB_HISTORY;查询结果如图5.4所示。
在上述查询结果中,第2行和第3行、第8行和第9行以及第7行和第10行完全一样,可以使用DISTINCT关键字删除重复行。针对上例,可以使用如下的SELECT语句。SELECT DISTINCT employee_id, department_id FROM JOB_HISTORY;查询结果如图5.5所示。
图5.4查询指定列
图5.5使用DISTINCT关键字删除重复行
将该运行结果与图5.4进行比较,发现图54中的重复行在图5.5中已经删除,查询结果已经由图5.4的10行减少为图55的7行。
2. SQL语句的基本规则
SQL是一种在语法规则上要求非常严格的语言,但它也非常简单和灵活,足以支持大量的编程样式。本部分简单阐述SQL语句的一些基本规则。
1) 书写规则
书写SQL语句时,是使用大写字母,还是使用小写字母,这完全由个人喜好决定。由于大部分程序开发人员(包括本书作者)使用的基本上都是C、C 、Java、C#等常用程序设计语言,也都习惯于用小写字母书写SQL语句。但是,还是建议大家采用标准化格式书写,即大小写字母混合书写,关键字和保留字使用大写字母,语句的其他部分使用小写字母。
整个SQL语句可以写在一行上,也可以写在多行上。同时,关键字及保留字不能使用缩写,也不能跨行书写。
2) 语句终止符
通常用分号(;)作为SQL语句的终止符。SQL Plus开发环境总是需要语句终止符,通常使用分号。很多情况下,SQL语句,甚至是几组相关的SQL语句存储为脚本文件,以便将来使用。SQL脚本文件中的单个语句一般用换行(或回车)终止,并在下一行使用斜杠(/),而不是使用分号终止。
也可以创建SELECT语句时,用换行终止它,包含一条斜杠执行该语句,并将它保存在脚本文件中,然后可以从SQL Plus或SQL Developer开发环境中调用该脚本文件。
如果只是单个语句,SQL Developer可以不需要语句终止符。当然,使用了终止符也没错。良好的书写习惯是使用分号终止SQL语句。
3) 合理使用缩进
使用缩进可以提高SQL语句的可读性。
4) 默认显示
在SQL Developer开发环境中,列标题默认总是以大写字母、左对齐显示。在SQL Plus开发环境中,列标题也总是以大写字母显示,但字符型和日期型列的标题是左对齐显示,而数值型列的标题是右对齐显示。在这两种开发环境中,查询结果中字符型和日期型的列都是左对齐、数值型的列都是右对齐显示。
3. 表达式和运算符
在SQL语句中可以使用表达式和运算符。SELECT语句引入了对列和表达式可以选择的思想。表达式通常由在一个或多个列上执行的运算组成。可以使用的运算符取决于列的数据类型,如数值型和日期型的列可以进行算术运算(运算符: 加、减、乘和除),字符型的列有连接运算符等。当一个表达式中出现多个运算符时,由预先定义的运算符优先级决定计算顺序,使用圆括号可以改变运算符的优先级。
1) 算术运算符及表达式
考察员工表(EMPLOYEES),该表存储了员工的基本信息,包括编号、姓氏、工资、入职日期、提成比例等,要计算员工的年薪、奖金、入职时长,为员工加薪等都要涉及算术运算,使用算术表达式获得这些信息。算术运算符有4种: 加( )、减(-)、乘()、除(/)。
若为每个员工增加500元工资,预览工资增加500后的信息,可以使用如下语句。SELECT last_name, salary 500 FROM employees;计算每个员工的年薪(12个月的工资),可以使用如下的语句。SELECT last_name, salary12 FROM employees;若每个员工每月发放500元的奖金,计算每个员工的年收入,则可以使用如下语句。SELECT last_name, 12(salary 500) FROM employees;查询结果如图5.6所示。
图5.6带算术运算符及表达式的SELECT语句运行结果
2) 空值NULL
空值NULL表示没有数据。NULL是一个未分配的、不可用的、未知的、不能使用的值,包含空值的行没有该列的数据。空值不同于数字0和空格,不占用存储空间。
员工表(EMPLOYEES)中的提成比例(commission_pct)列就是一个可以包含空值NULL的列,如查询所有员工的编号(employee_id)、姓氏(last_name)、工资(salary)、提成比例(commission_pct),可以使用如下语句实现,查询结果如图5.7所示。SELECT employee_id, last_name, salary, commission_pct
FROM employees;图5.7带空值NULL的查询结果
空值NULL可以参与运算,包含空值的算术表达式总会得到一个空值,空值不同于数字0,0不能作为除数,但空值可以作为除数使用,运算的结果仍然得到空值。
要计算每个员工的年终提成(12salarycommission_pct)以及年收入(12salary(1 commission_pct)),可以使用如下语句。SELECT employee_id, last_name, salary,
12salarycommission_pct, 12salary(1 commission_pct)
FROM employees;检索结果如图5.8所示。
图5.8带空值的算术表达式的值仍为空值
根据上述运算结果,提成比例为空则该员工的年收入就为空,显然与实际情况不符,这就需要对空值进行适当的处理。对空值处理的函数详见5.2.3中的阐述。
3) 表达式和列别名
根据前面一些查询实例的检索结果,在SQL Plus和SQL Developer中,都是将检索的列以及参与运算的整个表达式作为列标题显示的,这样的标题很多时候并不能很好地描述检索结果的信息,同时也很难理解该列值的详细信息。例如,年薪12salary,年收入12salary(1 commission_pct),以Annual Salary和Annual Income作为列标题更有意义。为此,引入了列别名的概念。
列别名就是为列标题重新起一个名字,尤其对表达式更有意义。在SELECT子句中,列别名紧跟在列名或表达式的后面,以空格作为分隔符即可(也可以在列名和列别名中直接使用可选的关键字AS)。在SQL Plus和SQL Developer开发环境中,列别名默认都以大写字母显示。如果列别名中包含空格或者特殊字符(如#、$)或者要区分大写,这时需要在列别名上加双引号。上图58所示的查询,使用列别名更易于理解,检索结果如图5.9所示。SELECT employee_id id, last_name AS name, salary,
12salarycommission_pct annul_salary,
12salary(1 commission_pct) “Annual Income”
FROM employees;图5.9带列别名的检索结果
4) 连接运算符
两条竖线组成的符号(||)表示字符串连接运算符,该运算符用来将多个字符串连接起来组成一个,在SELECT语句图5.10带连接运算符的查询结果中用来将字符表达式或者列连接在一起,从而构成一个新的字符表达式。表的列以及常量字符串都可以进行连接。
如将所有员工的first_name和last_name连接起来显示,并赋予别名Name。此查询可以用如下语句实现,查询结果如图5.10所示。SELECT employee_id,first_name||last_name “Name”FROM employees;上例就是将员工的first_name和last_name连接起来,并赋予别名Name。
如果用空值连接一个字符串,结果仍然是这个字符串,如last_name||NULL的结果仍然是last_name。也可以用日期表达式。
包含在SELECT语句中的字符、数字或日期称为文字,表达的是字符、数字或日期的字面值,就是在程序设计里面说到的对应类型的常量。字符串常量和日期常量必须用单引号括起来,如’This is a string’,’256月05’等。
如果常量字符串本身就包含单引号,这时可以在常量字符串中出现的单引号前面再添加一个单引号,如it’s可以表示为’it”s’。使用两个单引号处理字符串常量中出现的单引号很多时候会变得混乱,并且容易出错。Oracle SQL用替换引用(q)运算符(Alternative Quote Operator)简化处理。Q运算符允许从一组可以用于包含字符的符号对中选择一种作为单引号的替换符号。这些符号对可以由任何字符或者4种括号(圆括号()、方括号[]、尖括号<>以及花括号{})组成。使用q运算符实际上可以将字符分隔符从单引号更改为其他字符。替换引用(q)运算符的语法格式如下。q’delimiter可能包含单引号的常量值delimiter’其中,delimiter可以是任何符号或括号,如常量字符串’it”s’用替换引用运算符可以表示为: q’@it’s@’或者q”等其他形式。
5.2.2对检索结果进行限定和排序
限制SELECT语句检索的列称为投影。限制返回的行称为选择。WHERE子句用来对检索结果进行限定,是对SELECT语句选择功能的增强。WHERE子句指定一种或多种条件。Oracle服务器通过计算这些条件限制语句返回的行。ORDER BY子句是对SELECT语句的进一步增强,它提供了数据排序功能。使用替换变量(&,&&)可以在运行时通过界面交互的方式重用相同的语句执行不同的查询。
1. 使用WHERE子句对检索结果进行限定
选择是关系数据库查询的基本操作之一,使用SELECT语句的WHERE子句可以实现选择。限制返回数据集的条件有多种形式,这些条件对返回的列和表达式都会产生
评论
还没有评论。