《Oracle PL/SQL必知必会》——第2章 初识Oracle和PL/SQL 2.1 什么是Oracle

本节书摘来自异步社区出版社《Oracle PL/SQL必知必会》一书中的第2章,第2.节,作者:【美】Ben Forta(本 福达),更多章节内容可以访问云栖社区“异步社区”公众号查看。

第2章 初识Oracle和PL/SQL

Oracle PL/SQL必知必会
在本章中,你将认识Oracle和PL/SQL是什么,以及你可以使用什么工具来操作它们。

2.1 什么是Oracle

在前一章中,你学习了数据库和SQL。如所解释的那样,做所有工作(存储、检索、管理和操作数据)的实际上是数据库软件(DBMS或数据库管理系统[Database Management System])。Oracle DBMS(或者简称为Oracle)就是一个DBMS;也就是说,它是数据库软件。

Oracle已经出现很长时间了。DBMS的第一个版本是在20世纪70年代发布的,从那时起就一直定期对其进行更新和改进。Oracle的当前(在本书即将付印时)版本是12c,它是在2013年发布的,12c中的c代表cloud(云)。Oracle是部署和使用得最多的DBMS,尤其是在企业系统和基础设施内。

2.1.1 客户端—服务器软件

DBMS分为两类:基于共享文件和客户端—服务器。前者(包括像Microsoft Access和FileMaker这样的产品)是为桌面使用设计的,一般不用在更高端或更关键的应用程序上(包括Web站点和基于Web的应用程序)。

像Oracle、MySQL(及其副产品MariaDB)和Microsoft SQL Server这样的数据库就是基于客端—服务器的数据库。客户端—服务器应用程序被分成两个截然不同的部分,服务器(Server)部分是一个负责所有数据访问和操作的软件,它运行在称为数据库服务器(Database Server)的计算机上。

只有服务器软件与数据文件交互。对数据的所有请求、数据添加和删除以及数据更新都是通过服务器软件传送的。这些请求或更改来自于运行客户端软件的计算机。客户端(Client)是用户与之交互的软件。例如,如果请求按字母顺序排列的产品列表,客户端软件将通过网络把该请求提交给服务器软件。服务器软件将处理请求;根据需要筛选、丢弃和排序数据;然后把结果发回给客户端软件。

注意:你需要多少台计算机?
 

客户端和服务器软件可能安装在两台或一台计算机上。无论如何,客户端软件都将为所有的数据库交互而与服务器软件通信,而不管它们是否位于同一台机器上。
所有这些动作的发生对于你(即用户)是完全透明的。你对数据存储在别处或者数据库服务器甚至正在执行所有这些处理的事实并不知情。你从不需要直接访问数据文件。事实上,大多数网络都被设置成使用户不能访问数据,或者甚至不能访问存储数据的驱动器。

这为什么很重要?这是因为要使用Oracle,将需要访问运行Oracle服务器软件的计算机以及给Oracle发出命令的客户端软件。

服务器软件是Oracle DBMS。可以运行一个在本地安装的副本,或者可以连接到一个运行远程服务器的副本,并且你能够访问该服务器。
客户端可以是Oracle提供的工具、脚本语言(比如Python和Perl)、Web应用程序开发语言(比如PHP、JSP和ASP)、编程语言(比如C、C++和Java)等。
注意:客户端?服务器?为什么我应该在意?
 

我要指出这一点的原因是:从设计上讲,刚开始学习客户端—服务器软件时要更复杂一点。当使用字处理器或电子数据表时,在计算机上打开应用程序,它将处理本地数据。客户端—服务器数据库软件不是像这样工作的。生产服务器通常运行在用户永远不能直接访问的数据中心里,因此运行服务器软件的计算机上面很少具有客户端工具。类似地,当与这些数据库打交道时,用户通常使用连接到远程生产服务器的本地工具,他们将在本地而不是在服务器上安装客户端工具。因此,在可以使用那些客户端工具之前必须配置它们,使得它们可以访问远程服务器。如你稍后将看到的,即使服务器和客户端工具的确位于相同的机器上,也需要这样做。

2.1.2 PL/SQL

第1章中提到,所有的SQL实现在创建时都是有差异的,这是不幸的;如果可以为一个版本的DBMS学习和编写SQL,并使之原封不动地在任何其他的DBMS上运行,那将非常理想。对于早期的SQL,这实际上更有可能发生,但是多年来DBMS供应商需要添加受标准SQL支持以外的特性和功能,因此它们就创建了自己的SQL语言变体。

PL/SQL代表过程语言/结构化查询语言(Procedural Language / Structured Query Language),它是Oracle的SQL实现(从Oracle版本7起就是这样)。你将在本书中学习的SQL就是PL/SQL,这意味着它只适用于Oracle。你将学习的大部分内容(尤其是在前面的章节中)也非常适用于其他的DBMS,但是在本书后面肯定不是这样。

2.1.3 客户端工具

前面讲到,Oracle是一个客户端—服务器数据库,要使用它,将需要客户端软件(用于实际运行SQL命令的程序)。客户端软件存在许多选项,但是你应该特别清楚下面两个Oracle选项。

所有的Oracle服务器安装都包括一个名为SQL*Plus的命令行工具。这个基本的客户端只是用于在文本窗口中简单地显示一个SQL>提示符,允许输入命令和指令给Oracle服务器。
Oracle还提供了一个免费的图形客户端,称为Oracle SQL Developer(在计算机上安装它时,它可能只显示名称“SQL Developer”)。Oracle SQL Developer允许交互式地连接并使用你的Oracle服务器,对于日常的Oracle使用,它是一个好得多的选项,对初学者来说尤其如此。
尽管可以免费地使用所想要的任何客户端工具(无论是什么客户端工具,使用的PL/SQL总是相同的),我强烈建议使用Oracle SQL Developer作为你的第一个工具,并且本书中的指令假定你正是这样做的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL必知必会(第3版) 基本信息 原书名: Sams Teach Yourself SQL in 10 Minutes, Third Edition 原出版社: Sams 作者: (美)Ben Forta 译者: 钟鸣 刘晓霞 丛书名: 图灵程序设计丛书 数据库 出版社:人民邮电出版社 ISBN:9787115162601 上架时间:2007-6-22 出版日期:2007 年7月 开本:32开 页码:204 版次:3-1 所属分类: 计算机 > 数据库 > SQL语言 编辑推荐   SQL经典畅销书    涵盖所有主流数据库    学习与参考皆宜... 内容简介   sql 是目前使用最为广泛的数据库语言之一。本书没有涉及理论,而是从实践出发,由浅入深地讲解了广大读者所必需的sql 知识,适用于各种主流数据库。实例丰富,便于查阅。本书涉及不同平台上数据的排序、过滤和分组,以及表、视图、联结、子查询、游标、存储过程和触发器等内容,通过本书读者可以系统地学习到sql 的知识和方法。    本书注重实用性,操作性很强,适合于sql 的初学者学习和广大软件开发及管理人员参考。 作译者    作者: (美)Ben Forta Ben Forta是世界知名的技术作家,也是Adobe技术界最为知名的专家之一,目前担任Adobe公司的高级技术推广专家。他具有计算机行业20多年工作经验,多年来撰写了十几本技术图书,其中不少是世界畅销书,已被翻译为十几种文字。除本书外,他撰写的《正则表达式必知必会》也即将由人民邮电出版社出版。读者可以通过他的个人网站http://www.forta.com了解更多信息。 目录 封面 -14 常用操作速查 -13 扉页 -11 版权 -10 版权声明 -9 前言 -8 致谢 -5 目录 -4 第1 了解SQL 1 1.1 数据库基础 1 1.1.1 什么是数据库 2 1.1.2 表 2 1.1.3 列和数据类型 3 1.1.4 行 4 1.1.5 主键 4 1.2 什么是SQL 5 1.3 动手实践 6 1.4 小结 7 第2 检索数据 8 2.1 SELECT语句 8 2.2 检索单个列 9 2.3 检索多个列 10 2.4 检索所有列 11 2.5 小结 12 第3 排序检索数据 13 3.1 排序数据 13 3.2 按多个列排序 15 3.3 按列位置排序 15 3.4 指定排序方向 16 3.5 小结 18 第4 过滤数据 19 4.1 使用WHERE子句 19 4.2 WHERE子句操作符 20 4.2.1 检查单个值 21 4.2.2 不匹配检查 22 4.2.3 范围值检查 22 4.2.4 空值检查 23 4.3 小结 24 第5 高级数据过滤 25 5.1 组合WHERE子句 25 5.1.1 AND操作符 25 5.1.2 OR操作符 26 5.1.3 计算次序 26 5.2 IN操作符 28 5.3 NOT操作符 29 5.4 小结 30 第6 用通配符进行过滤 31 6.1 LIKE操作符 31 6.1.1 百分号(%)通配符 32 6.1.2 下划线(_)通配符 33 6.1.3 方括号([ ])通配符 34 6.2 使用通配符的技巧 36 6.3 小结 36 第7 创建计算字段 37 7.1 计算字段 37 7.2 拼接字段 38 7.3 执行算术计算 42 7.4 小结 43 第8 使用数据处理函数 44 8.1 函数 44 8.2 使用函数 45 8.2.1 文本处理函数 46 8.2.2 日期和时间处理函数 47 8.2.3 数值处理函数 50 8.3 小结 50 第9 汇总数据 51 9.1 聚集函数 51 9.1.1 AVG()函数 52 9.1.2 COUNT()函数 53 9.1.3 MAX()函数 54 9.1.4 MIN()函数 54 9.1.5 SUM()函数 55 9.2 聚集不同值 56 9.3 组合聚集函数 57 9.4 小结 58 第10 分组数据 59 10.1 数据分组 59 10.2 创建分组 59 10.3 过滤分组 61 10.4 分组和排序 63 10.5 SELECT子句顺序 65 10.6 小结 65 第11 使用子查询 66 11.1 子查询 66 11.2 利用子查询进行过滤 66 11.3 作为计算字段使用子查询 69 11.4 小结 71 第12 联结表 72 12.1 联结 72 12.1.1 关系表 72 12.1.2 为什么要使用联结 74 12.2 创建联结 74 12.2.1 WHERE子句的重要性 75 12.2.2 内部联结 77 12.2.3 联结多个表 78 12.3 小结 80 第13 创建高级联结 81 13.1 使用表别名 81 13.2 使用不同类型的联结 82 13.2.1 自联结 82 13.2.2 自然联结 84 13.2.3 外部联结 84 13.3 使用带聚集函数的联结 87 13.4 使用联结和联结条件 88 13.5 小结 88 第14 组合查询 89 14.1 组合查询 89 14.2 创建组合查询 89 14.2.1 使用UNION 90 14.2.2 UNION规则 91 14.2.3 包含或取消重复的行 92 14.2.4 对组合查询结果排序 93 14.3 小结 94 第15 插入数据 95 15.1 数据插入 95 15.1.1 插入完整的行 95 15.1.2 插入部分行 98 15.1.3 插入检索出的数据 99 15.2 从一个表复制到另一个表 100 15.3 小结 101 第16 更新和删除数据 102 16.1 更新数据 102 16.2 删除数据 104 16.3 更新和删除的指导原则 105 16.4 小结 106 第17 创建和操纵表 107 17.1 创建表 107 17.1.1 表创建基础 108 17.1.2 使用NULL值 109 17.1.3 指定默认值 110 17.2 更新表 111 17.3 删除表 113 17.4 重命名表 113 17.5 小结 114 第18 使用视图 115 18.1 视图 115 18.1.1 为什么使用视图 116 18.1.2 视图的规则和限制 117 18.2 创建视图 118 18.2.1 利用视图简化复杂的联结 118 18.2.2 用视图重新格式化检索出的数据 119 18.2.3 用视图过滤不想要的数据 121 18.2.4 使用视图与计算字段 121 18.3 小结 122 第19 使用存储过程 123 19.1 存储过程 123 19.2 为什么要使用存储过程 124 19.3 执行存储过程 125 19.4 创建存储过程 126 19.5 小结 129 第20 管理事务处理 130 20.1 事务处理 130 20.2 控制事务处理 132 20.2.1 使用ROLLBACK 133 20.2.2 使用COMMIT 133 20.2.3 使用保留点 134 20.3 小结 135 第21 使用游标 136 21.1 游标 136 21.2 使用游标 137 21.2.1 创建游标 138 21.2.2 使用游标 138 21.2.3 关闭游标 140 21.3 小结 141 第22 了解高级SQL特性 142 22.1 约束 142 22.1.1 主键 143 22.1.2 外键 144 22.1.3 唯一约束 145 22.1.4 检查约束 146 22.2 索引 147 22.3 触发器 149 22.4 数据库安全 150 22.5 小结 151 附录A 样例表脚本 152 A.1 样例表 152 A.2 获得样例表 155 A.2.1 下载可供使用的Microsoft Access MDB文件 155 A.2.2 下载DBMS SQL脚本 155 附录B 流行的应用系统 157 B.1 使用Aqua Data Studio 157 B.2 使用DB2 158 B.3 使用Macromedia ColdFusion 159 B.4 使用Microsoft Access 159 B.5 使用Microsoft ASP 160 B.6 使用Microsoft ASP.NET 161 B.7 使用Microsoft Query 161 B.8 使用Microsoft SQL Server 162 B.9 使用MySQL 163 B.10 使用Oracle 163 B.11 使用PHP 164 B.12 使用PostgreSQL 164 B.13 使用Query Tool 164 B.14 使用Sybase 165 B.15 配置ODBC数据源 165 附录C SQL语句的语法 167 C.1 ALTER TABLE 167 C.2 COMMIT 167 C.3 CREATE INDEX 168 C.4 CREATE PROCEDURE 168 C.5 CREATE TABLE 168 C.6 CREATE VIEW 168 C.7 DELETE 169 C.8 DROP 169 C.9 INSERT 169 C.10 INSERT SELECT 169 C.11 ROLLBACK 169 C.12 SELECT 170 C.13 UPDATE 170 附录D SQL数据类型 171 D.1 串数据类型 172 D.2 数值数据类型 173 D.3 日期和时间数据类型 174 D.4 二进制数据类型 175 附录E SQL保留字 176 索引 182 前言   SQL是使用最为广泛的数据库语言之一。不管你是应用开发人员、数据库管理人员、Web应用设计人员,还是Microsoft Office用户,掌握良好的SQL知识对于与数据库打交道是很重要的。.   本书可以说是应需而生。我曾经讲授过多年的Web应用开发,学生们经常要求我推荐有关SQL的图书。SQL方面的图书有许多,有的其实很不错,但它们都有一个共同的特点,就是对于大多数读者来说,它们所讲授的内容太多了。大多数书籍讲授的不是SQL本身,而是从数据库设计、规范化到关系数据库理论以及相关管理等所有内容。当然,这些内容都很重要,但并不是大多数仅想学习SQL的读者所感兴趣的。   因此,在找不到合适的书籍推荐给学生的情况下,我把在课堂上给学生讲授的SQL知识汇编成了本书。本书将讲授读者需要了解的SQL知识,我们从简单的数据检索入手,然后再介绍一些较为复杂的内容,如联结、子查询、存储过程、游标、触发器以及表约束等。读者将从本书中循序渐进、系统、直接地学到SQL的知识和技巧。   这是本书的第3版,它已经教会了成千上万的读者使用SQL。现在轮到你了,让我们翻到第1,开始学习吧。你将很快编写出世界级的SQL。   读者对象   本书适合以下读者:   SQL新手;   希望快速学会使用SQL;   希望知道如何在应用程序开发中使用SQL;   希望在无人帮助的情况下有效快速地使用SQL。   本书涵盖的DBMS   一般来说,本书中所讲授的SQL可以应用到任何数据库管理系统(DBMS)。但是,因为所有SQL实现并不都是相同的,所以本书介绍的SQL主要适用于以下系统(需要时会给出特定的说明和注释):   IBM DB2;   Microsoft Access;..   Microsoft SQL Server;   MySQL;   Oracle;   PostgreSQL;   Sybase Adaptive Server。   本书中所有数据库SQL脚本例子对于这些DBMS都是适用的。 .  本书约定   本书采用等宽字体表示代码,读者输入的文本与应该出现在屏幕上的文本也以等宽字型给出。如:   It will look like this to mimic the way text looks on your screen.   代码行前的箭头( )表示行中代码太长,该行容纳不下。在 符号后输入的所有字符都应该是前一行的内容。   说明:给出上下文讨论中比较重要的信息。      提示:为某任务给出建议或一种更简单的方法。      注意:提醒可能出现的问题,避免出现事故。      新术语,提供新的基本词汇的清晰定义。   表示读者可以自己输入的代码。   强调某个程序执行时的输出。   告诉读者将对程序代码进行逐行分析。...   

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值