完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例。 
1) 数据库是一系列物理文件的集合(数据文件,控制文件,联机日志,参数文件等); 
2) Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区。

在启动Oracle数据库服务器时,实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存),然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件。Oracle有一个很大的内存快,成为全局区(SGA)。

一、数据库、表空间、数据文件

1、数据库

数据库是数据集合。Oracle是一种数据库管理系统,是一种关系型的数据库管理系统。
通常情况了我们称的“数据库”,并不仅指物理的数据集合,他包含物理数据、数据库管理系统。也即物理数据、内存、操作系统进程的组合体。

我们在安装Oracle数据库时,会让我们选择安装启动数据库(即默认的全局数据库)如下图:

全局数据库名:就是一个数据库的标识,在安装时就要想好,以后一般不修改,修改起来也麻烦,因为数据库一旦安装,数据库名就写进了控制文件,数据库表,很多地方都会用到这个数据库名。

启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户如SYS,SYSTEM等。我们用这些高级权限账号登陆就可以在数据库实例中创建表空间,用户,表了。

查询当前数据库名:

select name from v$database;

2、数据库实例

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

其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象一样。

我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。

实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。

查询当前数据库实例名:

select instance_name from v$instance;

数据库实例名(instance_name)用于对外部连接。在操作系统中要取得与数据库的联系,必须使用数据库实例名。比如我们作开发,要连接数据库,就得连接数据库实例名:

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

一个数据库可以有多个实例,在作数据库服务集群的时候可以用到。

3、表空间

Oracle数据库是通过表空间来存储物理表的,一个数据库实例可以有N个表空间,一个表空间下可以有N张表。

有了数据库,就可以创建表空间。

表空间(tablespace)是数据库的逻辑划分,每个数据库至少有一个表空间(称作SYSTEM表空间)。为了便于管理和提高运行效率,可以使用一些附加表空间来划分用户和应用程序。例如:USER表空间供一般用户使用,RBS表空间供回滚段使用。一个表空间只能属于一个数据库。

创建表空间语法:

Create TableSpace 表空间名称
DataFile          表空间数据文件路径
Size              表空间初始大小
Autoextend on

如:

create tablespace db_test
datafile 'D:\oracle\product\10.2.0\userdata\db_test.dbf'
size 50m
autoextend on;

查看已经创建好的表空间:

select default_tablespace, temporary_tablespace, d.username
from dba_users d

4、用户

Oracle数据库建好后,要想在数据库里建表,必须先为数据库建立用户,并为用户指定表空间。

上面我们建好了数据库和表空间,接下来建用户:

创建新用户:

CREATE USER          用户名
IDENTIFIED BY        密码
DEFAULT TABLESPACE   表空间(默认USERS)
TEMPORARY TABLESPACE 临时表空间(默认TEMP) 

如:

CREATE USER utest
IDENTIFIED BY utestpwd
DEFAULT TABLESPACE db_test
TEMPORARY TABLESPACE temp;(这里临时表空间不能使用我们创建的db_test,不知为何?) 

有了用户,要想使用用户账号管理自己的表空间,还得给它分权限:

GRANT CONNECT TO utest;
GRANT RESOURCE TO utest;
GRANT dba TO utest;--dba为最高级权限,可以创建数据库,表等。

查看数据库用户:

select  * from dba_users;

5、表

有了数据库,表空间和用户,就可以用自定义的用户在自己的表空间创建表了。有了表,我们可以开发了。

简单的一段java代码访问oracle数据库

package oracleConn;import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;public class Test {public static void main(String[] args) {// TODO Auto-generated method stubConnection con = null;// 创建一个数据库连接PreparedStatement pre = null;// 创建预编译语句对象,一般都是用这个而不用StatementResultSet result = null;// 创建一个结果集对象try{Class.forName("oracle.jdbc.driver.OracleDriver");System.out.println("开始尝试连接数据库");String url = "jdbc:oracle:thin:@localhost:1521:orcl";String user = "system";String password="123456";//获取连接con = DriverManager.getConnection(url, user, password);// 获取连接System.out.println("连接成功!");String sql = "select * from t_user where name=?";// 预编译语句,“?”代表参数pre = con.prepareStatement(sql);// 实例化预编译语句pre.setString(1, "hubin");// 设置参数,前面的1表示参数的索引,而不是表中列名的索引result = pre.executeQuery();// 执行查询,注意括号中不需要再加参数while (result.next())// 当结果集不为空时System.out.println("学号:" + result.getInt("id") + "姓名:"+ result.getString("name"));}catch (Exception e){e.printStackTrace();}finally{try{// 逐一将上面的几个对象关闭,因为不关闭的话会影响性能、并且占用资源// 注意关闭的顺序,最后使用的最先关闭if (result != null)result.close();if (pre != null)pre.close();if (con != null)con.close();System.out.println("数据库连接已关闭!");}catch (Exception e){e.printStackTrace();}}}
}

转载于:https://www.cnblogs.com/hoobey/p/7711060.html

oracle下的数据库实例、表空间、用户及其表的区分相关推荐

  1. oracle查看所有用户6,oracle 查看 用户 用户权限 用户表空间 用户默认表空间

    Oracle查询用户表空间 ◆Oracle查询用户表空间:select * from user_all_tables ◆Oracle查询所有函数和储存过程:select * from user_sou ...

  2. oracle 表空间-用户-授权-表创建

    一.创建表空间 创建表空间为:MDMS_TS_File ,数据文件为:MDMS_TS_File.DBF ,指定存放路径为:'/oradata1/ ,大小为:2000M CREATE TABLESPAC ...

  3. Oracle 导入数据库 删除用户、删除表空间、删除表空间下所有表,查看当前表空间

    导入数据库 在cmd下用 imp导入  格式: imp userName/passWord file=bmp文件路径 ignore = y (忽略创建错误)full=y(导入文件中全部内容); 例: ...

  4. Oracle 数据库表空间不足拓展方法实例演示,表空间剩余大小查看,通过新增表空间文件拓展表空间,表空间文件路径查看

    Oracle 数据库表空间 第一章:表空间的拓展 ① 查看剩余表空间大小 ② 查看表空间文件路径 ③ 通过新增表空间文件拓展表空间 ④ 查看表空间已分配大小 第一章:表空间的拓展 ① 查看剩余表空间大 ...

  5. mysql导入创建表空间_oracle创建表空间 用户 数据库导入和导出(转)

    已经安装orcale 9i 和pl/sql(6.0) OracleJobSchedulerORCL.OracleOraDb10g_home1iSQL*Plus OracleOraDb10g_home1 ...

  6. oracle初始化化表空间用户权限

    oracle单实例安装完毕,需要初始化表空间.用户.等信息.不积跬步,何以至千里! 用sys账户登录oracle数据库,以此来完成所有操作! 01.创建临时表空间 create temporary t ...

  7. Oracle(一)创建表空间 用户以及用户授权

    Oracle(一)创建表空间 用户以及用户授权 一.表空间 1.创建表空间 --创建表空间 create tablespace myoracle datafile 'd:\myoracle.dbf'- ...

  8. Oracle创建表空间/用户及导入导出

    文章目录 一.SQL Plus登录 二.创建表空间,用户 1.创建文件夹 2.创建表空间 2.创建用户 3.用户绑定表空间 4.用户授权 三.Oracle导入导出 2.导出 3.导入 四.Navica ...

  9. oracle表空间,角色,权限,表,索引,序列号,视图,同义词,约束条件,存储函数和过程,常用数据字典,基本数据字典信息,查看VGA信息,维护表空间,创建表空间等信息

    查看当前用户的缺省表空间 SQL>select username,default_tablespace from user_users; 查看当前用户的角色 SQL>select * fr ...

最新文章

  1. numpy.where用法详解,对2维数组判断解释的比较清楚的
  2. down 网卡端口周期性的up_Linux 中如何启用和禁用网卡?
  3. NetworkX系列教程(10)-算法之三:关键路径问题
  4. qt creator无法删除文件怎么办?(需要在cmakelists文件里配置)
  5. java 字符串 面试_JAVA中String介绍及常见面试题小结
  6. LINUX SHELL删除文件中的回车(WINDOWS转LINUX)
  7. 智慧城市大数据应用案例
  8. 编程必备的最基本5种算法思想
  9. 解决pr导入的视频在监控器里面画面会放大的问题
  10. 雷锋读图:如何通过社交媒体提高投资回报率
  11. A woman without arms
  12. 使用Windows批处理+ImageMagick 实现批量处理图片
  13. 混凝土试块送检要求与时间
  14. 在命令行窗口中打开win10的显示设置
  15. 树莓派安装后中文设置及输入法安装
  16. laravel faker 数据填充
  17. Windows 任务计划程序
  18. pandas筛选数据_2_条件筛选
  19. 新媒体运营是什么??新媒体运营通过哪些方式进行?
  20. bzoj刷题(shui)记录

热门文章

  1. mybatis 原理_Mybatis的工作原理
  2. 可能存在无限递归_Python之递归函数
  3. u8 api开发报类型不匹配错误_小程序云开发入门学习,小程序支付功能常见错误汇总及解决方案...
  4. Provisional headers are shown问题
  5. sublime php错误提示,sublime中检查php语法错误
  6. 项目中公用的一些php函数,大多数curl相关的
  7. 前端面试之webpack面试常见问题
  8. Python的collections模块中namedtuple结构使用示例
  9. Shadow Map阴影贴图技术之探 【转】
  10. [轉].NET项目是否有必要升级到.NET 3.5 + VS 2008