一、前言
在之前的学习、工作中,一直使用Mysql、SQL Server数据库,对Oracle数据库了解并不是很深。加入现在的公司这几个月来,虽然在开发中使用Oracle数据库,但是对其还是停留在简单的应用中。 工作之余,整理一些Oracle数据库的相关知识,增加对oracle数据库的了解。
二、Oracle简介
概念
ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。比如SilverStream就是基于数据库的一种中间件。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。
Oracle数据库主要有四个版本,如下所示 -
- 企业版: 它是最强大和最安全的版本。 它提供所有功能,包括卓越的性能和安全性。
- 标准版: 它为不需要企业版强大软件包,提供用户基本功能。
- 易捷版(XE): 它是轻量级,免费且有限的Windows和Linux版本。
- Oracle Lite: 专为移动设备而设计。
Oracle特点
1、性能优越,大型数据库的典范。
2、是对象关系型的数据库管理系统(ORDBMS)。
3、应用广泛,在数据安全性与数据完整性控制方面性能优越。
4、跨操作系统、跨硬件平台的数据互操作能力。
5、可移植性好。
6、支持多用户,大事务量的事务处理。
三、Oracle体系结构
平时所说的Oracle数据库是指Oracle数据库管理系统,它由两部分组成,即Oracle数据库和数据库实例。
Oracle数据库:相关的操作系统文件(即存储在计算机硬盘上的文件)集合,这些文件组织在一起,成为一个逻辑整体,即Oracle数据库。
数据库是用来存储数据的集合,Oracle用它来存储和管理相关的信息,Oracle数据库必须要与内存里的实例合作,才能对外提供数据管理服务。
①数据文件:数据文件(Data File)的扩展名通常是.dbf,是物理存储Oracle数据库数据的文件。
②重做日志文件:重做日志文件(Redo Log File)的扩展名是.log,它记录了对数据的所有更改信息,并提供了一种数据恢复机制,确保在系统崩溃或其他意外出现后重新恢复数据库。
③控制文件:控制文件(Control File)的扩展名是.ctl,是一个二进制文件。控制文件中存储的信息很多,其中包括数据文件和重做日志文件的名称和位置。控制文件是数据库启动及运行所必须的文件。当Oracle读写数据时,要根据控制文件 的信息查找数据文件。
Oracle实例:位于物理内存里的数据结构,它由操作系统的多个后台进程和一个共享的内存池所组成,共享的存储池可以被所有的进程所访问。Oracle实例=进程+进程所共享的内存。底下部分为后台进程。
实例与数据库之间的协作完成访问
Oracle的存储结构
Oracle的存储结构分为物理结构和逻辑结构,这两种存储结构既相互独立又相互联系。
Oracle逻辑结构
数据库的逻辑结构是从逻辑的角度分析数据库的组成的。Oracle数据库的逻辑结构包括表空间、段、区、块和模式等。如图:
(1)表空间
每个Oracle数据库都是由若干个表空间构成的,用户在数据库中建立的所有内容都被存储到表空间中。一个表空间可以由多个数据文件,但一个数据文件只能属于一个表空间。与数据文件这种物理结构不同,表空间属于数据库的逻辑结构。
在每个数据库中,都有一个名为“SYSTEM”的表空间,即系统表空间,还会有SYSAUX、UNDO、USERS等表空间,这些都是在创建数据库时自动创建的。管理员可以创建自定义的表空间并分配给指定用户,也可以为表空间增加和删除数据文件。
表空间基本有以下三类:
- ①永久性表空间:一般保持基表、试图、过程和索引等的数据。SYSTEM、SYSAUX、USERS表空间是默认安装的;
- ②临时性表空间:只用于保存系统中短期活动的数据,如排序数据等;
- ③撤销表空间:用来帮助回退未提交的事务数据,已提交的数据在这里是不可以恢复的;
四、Oracle数据库基础
安装完Oracle,会有以下这七个服务,其含义:
Oracle ORCL VSS Writer Service:Oracle卷映射拷贝写入服务,VSS(Volume Shadow Copy Service)能够让存储基础设备(比如磁盘,阵列等)创建高保真的时间点映像,即映射拷贝(shadow copy)。它可以在多卷或者单个卷上创建映射拷贝,同时不会影响到系统的系统能。(非必须启动)
OracleDBConsoleorcl:Oracle数据库控制台服务,orcl是Oracle的实例标识,默认的实例为orcl。在运行Enterprise Manager(企业管理器OEM)的时候,需要启动这个服务。(非必须启动)
OracleJobSchedulerORCL:Oracle作业调度(定时器)服务,ORCL是Oracle实例标识。(非必须启动)
OracleMTSRecoveryService:服务端控制。该服务允许数据库充当一个微软事务服务器MTS、COM/COM+对象和分布式环境下的事务的资源管理器。(非必须启动)
OracleOraDb11g_home1ClrAgent:Oracle数据库.NET扩展服务的一部分。 (非必须启动)
OracleOraDb11g_home1TNSListener:监听器服务,服务只有在数据库需要远程访问的时候才需要。(非必须启动,下面会有详细详解)。
OracleServiceORCL:数据库服务(数据库实例),是Oracle核心服务该服务,是数据库启动的基础, 只有该服务启动,Oracle数据库才能正常启动。(必须启动)
那么在开发的时候到底需要启动哪些服务呢?
对新手来说,要是只用Oracle自带的sql*plus的话,只要启动OracleServiceORCL即可,要是使用PL/SQL Developer等第三方工具的话,OracleOraDb11g_home1TNSListener服务也要开启。OracleDBConsoleorcl是进入基于web的EM必须开启的,其余服务很少用。
Oracle中的常用的SQL Plus命令
1、Connect:切换连接用户,简写形式conn 2、Show user:显示当前登录的用户 3、Spool:导出记录到文件
4、Clear Screen:清屏 5、Host<doc命令>:执行操作系统命令 6、Desc:显示表结构
7、Show error:显示错误信息 8 、Start d:\test.sql执行文件系统中sql语句。
Oracle默认的系统用户
权限大小依次为
1、sys(相当于SQL server的sa)/system
2、sysman
3、socct
五、plsql developer
PL/SQL Developer是一个集成开发环境,由Allround Automations公司开发,专门面向Oracle数据库存储的程序单元的开发。如今,有越来越多的商业逻辑和应用逻辑转向了Oracle Server,因此,PL/SQL编程也成了整个开发过程的一个重要组成部分。PL/SQL Developer侧重于易用性、代码品质和生产力,充分发挥Oracle应用程序开发过程中的主要优势的。
PL/SQL Developer的基本用法
最近在开发中,在查找数据库时,发现数字字段过长,Oracle会出现采用科学计数法来记录,可以设置如下,使得采用科学计数法计数的数字字段恢复成十进制记数。