Oracle学习——扫盲篇


前言

 

最近这几天一直在与Oracle数据库打交道,由于之前对Oracle的学习并不深入,只是把Oracle当成一个数据源去使用,很多东西了解的不是很深,比如,数据库、数据库实例、表空间、用户、表,它们是如何创建的,它们之间又有什么关系,所以这次就一块来学习下。

 

 

 

1数据库

 

一个完整的Oracle数据库通常由两部分组成,分别是Oracle数据库和Oracle数据库实例,第一个Oralce数据库是指Oracle类型的关系型数据库管理系统,包含物理数据、数据库管理系统,也就是物理数据、内存、操作系统进程的组合体;而后面提到的Oracle数据库是指一系列物理文件的数据集合,这些集合包括数据文件、控制文件、联机日志、参数文件等。

 

下面这张图是创建数据库的一个步骤:



 

第一个要填写的是全局数据库名,第二个要填写的是数据库实例SID(下文会介绍)。


全局数据库名:就是一个数据库的标识,简单来说就是名字,这个一般在创建的时候一定要想好。以后一般是不修改的,不过也可以修改,只不过修改起来比较麻烦,因为数据库安装好以后,数据库的这个标识名字就会写入控制文件、数据库表等很多地方。

 

关于数据库的命令:

 

查看当前的数据库的名字:

 

select name from v$database;
 

2数据库实例


 

官方说Oracle实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。

 

我们在写代码过程中需求调用对象的方法时,需要new出来一个实例,这个new出来的实例也是放在内存中的;我们的oracle实例跟这个new出来的对象差不多,也是当需要访问oracle数据库时就在内存中创建出一块进程,它也是只存在与内存中的。

 

 

我们访问oracle其实就是访问oracle的实例,访问oracle实例的时候,有时候需要先开启实例,我的实例名为orcltest

 

startup open orcltest;


实例名与SID

 

实例名(instance_name)指的是用于响应某个数据库操作的数据库管理系统的名字;提到Oralce实例名就不能不提Oracle_SID,SID其实Oracle实例的一个标识。

 

但两者是有区别的,instance_name是oracle数据库参数。而Oracle_SID是操作系统的环境变量。Oracle_SID用于与操作系统交互,也就是说,从操作系统的角度访问实例名,必须通过Oracle_SID。并且Oracle_SID必须与instance_name的值一致,否则,你将会收到一个错误,在unix平台,是“ORACLEnot available”,在windows平台,是“TNS:协议适配器错误”。

 

数据库实例名除了与操作系统交互外,还用于网络连接的oracle服务器标识。当你配置oracle主机连接串的时候,就需要指定实例名如下

 

jdbc:oracle:thin:@localhost:1521:orcltest(orcltest就为数据库实例名)

查询当前数据库实例名:

 

select instance_name from v$instance;<span style="font-size: 16pt; font-family: SimSun; "> </span>


查看当前数据库实例的信息:

 

Show parameter instance_name;

注意:一个数据库可以有多个实例,在作数据库服务集群的时候可以用到,或者不同的项目用不同的数据库实例也可以,这块内容后续会继续说明。

 

3表空间

 

Oracle数据库是通过表空间来存储物理表的,表空间(tablespace)是数据库的逻辑划分,它是隶属与Oracle数据库实例下面的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。

 

所以有了数据库实例就可以创建表空间了。

 

 

创建表空间:

 

create tablespace OracleTest logging datafile 'C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf' size 32m autoextend on next 32m maxsize2048m extent management local;


其中的创建的表空间名字为OracleTest ,建立表空间的位置是:C:\oracle\product\10.2.0\oradata\ORCLTEST\OracleTest.dbf,大小是32M,空间可以自动扩充,每次扩充32M,最大表空间为2048M

 

查询表空间名字:

 

select tablespace_name from dba_data_files group by tablespace_name;


查询表空间的大小:

 

select tablespace_name,count(*),sum(blocks),sum(bytes)/1024/1024 from dba_data_filesgroup by tablespace_name;


查看表空间是否自动扩充:

 

select file_name,autoextensible,increment_by from dba_data_files;


如果表空间中有表的话,可以查看:


Select tablespace_name,table_name from dba_tables where tablespace_name='ORACLETEST';
 


4用户

 

关于Oracle的用户,一个Oracle数据库装好后,建立了Oracle实例,创建了表空间,为用户指定表空间,最后才是创建物理表。

 

上面我们已经创建好数据库实例和表空间了,现在就是创建用户为指定的表空间:

 

Create user testuser identified by test default tablespace OracleTest;

创建了一个 test user 的用户,密码是 test ,表空间是 OracleTest.

在这里要说一点的是,同一表空间是可以授予多个用户的,并且可以给不同的用户分配对表空间的不同等级的操作权限。

 

testuser用户授予权限,有三种:

 

grant connect to testuser; 
grant resource to testuser; 
grant dba to testuser;

我给 testuser 用户授予的是第三种 dba 管理员权限。

 

当我们通过我们创建好的用户登陆后可以查到当前用户:

 

show user;

查看当前数据库的所有用户 :

 

select  * from dba_users;
   

5

 

数据库实例、表空间、用户这些都有了以后,就可以在自己的用户所属的表空间下创建表了,关于表这块我们大家经常用,这里就不多说了。看下常用命令就可以了:

 

查看表所属表空间


Select table_name,tablespace_name from all_tables where table_name='t_student';

查看表结构


desc t_student;


总结

 

关于Oracle的使用,首先安装oracle数据库软件、然后创建数据库实例、接下来创建表空间、再往下给表空间创建用户并分配权限、然后创建表、最后测试,其中创建表空间和创建用户这两个顺序可以颠倒的。这几天这些东西来回捣鼓了好几遍,关于Oracle的这些操作,如果不去自己一步步实践,你永远都不知道自己到底有多生,你也不会知道它到底会出哪些让你抓狂的错误。

 

  • 26
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 15
    评论
目录如下: 1 Oracle 结构组件 目标 1-2 基本结构概述 1-3 Oracle 服务器 1-4 Oracle 实例 1-5 建立连接和创建会话 1-6 Oracle 数据库 1-7 物理结构 1-8 内存结构 1-9 系统全局区(SGA) 1-10 共享池 1-12 库缓存 1-13 数据字典缓冲区 1-14 数据库缓冲区 1-15 重做日志缓冲区 1-18 大储存池 1-19 JAVA 池 1-20 程序全局区(PGA) 1-21 进程结构 1-22 用户进程 1-23 服务进程 1-24 后台进程 1-25 数据库写进程(DBWn) 1-26 日志写进程(LGWR) 1-27 系统监控器(SMON) 1-28 进程监控器(PMON) 1-29 检查点进程(CKPT) 1-30 归档进程(ARCn) 1-31 逻辑结构 1-32 执行一个 SQL 语句 1-33 小结 1-34 2 Oracle 服务器入门 目标 2-2 数据库管理工具 2-3 Oracle 通用安装程序 2-4 交互式安装 2-5 使用反应文件的非交互式安装 2-6 Oracle 数据库配置助手 2-8 最优灵活体系结构(OFA) 2-9 Oracle 软件和文件位置 2-10 数据库管理员用户 2-11 ii 数据管理员的验证方式 2-12 使用密码文件验证 2-13 SQL*PLUS 2-14 Oracle 企业管理器 2-15 Oracle 企业管理器结构:基于 JAVA 的控制台和应用程序 2-16 Oracle 企业管理器结构:管理节点 2-17 Oracle 企业管理器控制台 2-18 DBA 工具 2-19 小结 2-20 3 管理 Oracle 实例 目标 3-2 初始化参数文件 3-3 PFILE initSID.ora 3-5 PFILE 例子 3-6 SPFILE spfileSID.ora 3-7 创建一个 SPFILE 3-8 SPFILE 例子 3-9 Oracle 管理文件 3-10 Oracle 管理文件例子 3-11 打开一个数据库 3-12 STARTUP 命令 3-15 ALTER DATABASE 命令 3-16 以受限模式打开数据库 3-17 以只读模式打开数据库 3-18 关闭数据库 3-19 关闭选项 3-20 用检测诊断文件管理一个实例 3-22 警报日志文件 3-23 后台跟踪文件 3-24 用户跟踪文件 3-25 允许和禁止用户跟踪 3-26 小结 3-26 4 创建数据库 目标 4-2 管理和组织一个数据库 4-3 创建的前提条件 4-4 规划数据文件的位置 4-5 创建数据库的方法 4-6 操作系统环境 4-7 使用数据库配置助手 4-8 创建数据库 4-9 数据库信息 4-10 iii 典型或用户自定义安装 4-11 其它参数 4-12 完成数据库创建 4-13 手动创建数据库 4-14 准备参数文件 4-15 创建 SPFILE 4-15 启动实例 4-16 创建数据库 4-17 使用 OMF 创建数据库 4-19 差错检测 4-20 数据库创建以后 4-21 小结 4-22 5 数据字典内容和使用 目标 5-2 数据字典 5-3 数据字典内容 5-5 如何使用数据字典 5-6 数据字典视图种类 5-7 动态性能表 5-8 查询数据字典和动态性能视图 5-9 数据字典例子 5-10 小结 5-10 6 维护控制文件 目标 6-2 控制文件 6-3 控制文件的内容 6-4 使用 SPFILE 多重控制文件 6-5 使用 init.ora 多重控制文件 6-6 用 OMF 管理控制文件 6-7 获得控制文件的信息 6-8 小结 6-9 7 维护重做日志文件 目标 7-2 使用重做日志文件 7-3 重做日志文件的结构 7-4 重做日志是如何工作的 7-5 强制日志切换和检查点 7-6 增加联机重做日志组 7-7 增加联机重做日志成员 7-8 删除联机重做日志组 7-9 删除联机重做日志成员 7-10 iv 清除、重定位或重命名联机重做日志文件 7-11 联机重做日志的配置 7-12 用 OMF 管理联机重做日志 7-13 获取组和成员的信息 7-14 归档重做日志文件 7-16 小结 7-18 8 管理表空间和数据文件 目标 8-2 概述 8-3 数据库的储存层次 8-5 SYSTEM 和非 SYSTEM 表空间 8-7 创建表空间 8-8 表空间的空间管理 8-9 本地管理表空间 8-10 字典管理表空间 8-11 改变存储设置 8-12 回滚表空间 8-13 临时表空间 8-14 缺省临时表空间 8-15 缺省临时表空间的限制 8-16 脱机状态 8-17 只读表空间 8-19 删除表空间 8-20 改变表空间的大小 8-21 允许数据文件的自动增长 8-22 手工改变数据文件的大小 8-23 给表空间添加数据文件 8-24 移动数据文件:ALTER TABLESPACE 8-25 为表空间的创建设置 ORACLE 管理文件(OMF) 8-27 使用 OMF 创建表空间 8-28 获得表空间的信息 8-29 小结 8-29 9 储存结构与关系 目标 9-2 概述 9-3 段的类型 9-4 储存子句的优先次序 9-7 片的分配和重新分配 9-8 使用和释放片 9-9 数据块 9-10 数据块的内容 9-11 块空间的利用的参数 9-12 v 自动段空间管理 9-14 设置自动段空间管理 9-16 手动数块管理 9-17 块空间的用法 9-18 数据字典视图 9-19 获取储存信息 9-20 小结 9-21 10 管理回滚段 目标 10-2 回滚段管理概述 10-3 回滚段 10-4 回滚段:用途 10-5 读一致性 10-6 回滚段的类型 10-7 自动回滚管理:概念 10-8 自动回滚管理:设置 10-9 自动回滚管理:初始化参数 10-10 自动回滚管理:UNDO 表空间 10-11 自动回滚管理:改变和 UNDO 表空间 10-12 自动回滚管理:转换 UNDO 表空间 10-13 自动回滚管理:删除一个 UNDO 表空间 10-14 自动回滚管理:其它参数 10-15 回滚数据的状态 10-16 自动回滚管理:调整 UNDO 表空间大小 10-17 自动回滚管理回滚配额 10-18 获取回滚段信息 10-19 小结 10-20 11 管理表 目标 11-2 储存用户数据 11-3 Oracle 数据类型 11-5 ROWID 格式 11-8 行的结构 11-10 创建一张表 11-11 创建临时表 11-13 创建表:指南 11-14 修改储存参数 11-15 手工分配片 11-16 重构非分区表 11-17 截断一张表 11-18 删除一张表 11-19 删除一列 11-20 vi 使用 UNUSED 选项 11-21 获取表的信息 11-23 小结 11-25 12 管理索引 目标 12-2 索引的分类 12-3 B 树索引 12-4 位图索引 12-6 B 树索引和位图索引的比较 12-7 创建普通 B 树索引 12-8 创建索引:指导 12-10 创建位图索引 12-11 修改索引的储存参数 12-12 分配和回收索引空间 12-13 重构索引 12-14 联机重构索引 12-16 合并索引 12-17 检查索引的有效性 12-18 删除索引 12-19 确认不使用的索引 12-20 获取索引信息 12-21 小结 12-21 13 维护数据的完整性 目标 13-2 数据的完整性 13-3 约束的类型 13-4 约束的状态 13-5 约束的检测 13-7 定义即时约束或延迟约束 13-8 强制主键和唯一键 13-9 外部关键字的考虑 13-10 在建表时定义完整性约束 13-11 定义约束的指导原则 13-13 允许约束 13-14 使用 EXCEPTIONS 表 13-16 获取约束信息 13-18 小结 13-20 14 管理密码安全和资源 目标 14-2 配置文件 14-3 密码管理 14-4 vii 允许密码管理 14-5 帐号密码锁定 14-6 密码寿命和过期 14-7 密码历史 14-8 密码验证 14-9 用户自定义密码函数 14-10 密码验证函数 VERIFY_FUNCTION 14-11 创建配置文件:密码设置 14-12 修改配置文件:密码设置 14-14 删除配置文件:密码设置 14-15 资源管理 14-16 允许资源限制 14-17 在会话级别设置资源限制 14-18 在调用级别设置资源限制 14-19 创建配置文件:资源限制 14-20 使用数据库资源管理器管理资源的使用 14-22 资源计划指示 14-24 获取密码和资源限制的信息 14-25 小结 14-26 15 管理用户 目标 15-2 用户和安全 15-3 数据库方案 15-4 检查创建用户 15-5 创建新用户:数据库验证 15-6 创建新用户:操作系统验证 15-8 改变用户的表空间限额 15-9 删除用户 15-10 获取用户的信息 15-11 小结 15-12 16 管理权限 目标 16-2 管理权限 16-3 系统权限 16-4 系统权限:例子 16-5 授予系统权限 16-6 SYSDBA 和 SYSOPER 权限 16-7 系统权限限制 16-8 回收系统权限 16-9 使用 WITH ADMIN OPTION 选项时回收系统权限 16-10 对象权限 16-11 授予对象权限 16-12 viii 回收对象权限 16-13 使用 WITH GRANT OPTION 选项时回收对象权限 16-14 获取权限信息 16-15 审计 16-16 审计指南 16-17 审计种类 16-19 数据库审计 16-20 审计选项 16-21 查看审计选项 16-23 获取审计记录 16-24 小结 16-25 17 管理角色 目标 17-2 角色 17-3 角色的优点 17-4 创建角色 17-5 预定义的角色 17-6 修改角色 17-7 分配角色 17-8 建立默认角色 17-9 应用程序角色 17-10 允许和禁止角色 17-11 撤销用户角色 17-13 删除角色 17-14 创建角色指南 17-15 使用密码和默认角色指导原则 17-16 显示角色信息 17-17 小结 17-18 18 使用全球支持 目标 18-2 全球支持特性 18-3 不同类型的方案编码 18-4 数据库的字符集和国家字符集 18-6 选择 Oracle 数据库字符集的指导原则 18-7 选择 Oracle 数据库国家字符集的指导原则 18-8 为双字节字符数据库选择一种统一代码方案 18-9 为双字节字符数据类型选择一种统一代码方案 18-10 指定语言相关行为 18-11 为服务器指定语言相关行为 18-12 语言和地区相关的缺省值 18-13 为会话指定语言相关的行为 18-14 客户端-服务器体系中的字符集 18-15 ix 为会话指定语言相关的行为 18-16 语言排序 18-17 NLS 排序 18-18 在 SQL 函数中使用 NLS 参数 18-20 语言索引支持 18-23 使用 NLS 导入和装载数据 18-24 获取字符集相关的信息 18-25 获取 NLS 相关的设置信息 18-26 全球支持实用工具 18-30 小结 18-31
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值