Oracle- 数据库的实例,表空间,用户,表之间的关系

一、完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例

1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件,参数文件)

2.Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区;

其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像Java中new出来的实例对象一样。我们访问Oracle都是访问一个实例,但这个实例如果关联了数据库文件,就是可以访问的,如果没有,就会得到实例不可用的错误。实例名指的是用于响应某个数据库操作的数据库管理系统的名称。她同时也叫SID。实例名是由参数instance_name决定的。
查询当前数据库实例名:



select instance_name from v$instance;



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



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



 

二、数据库

  1.全局数据库名:就是数据库的一个标识,在安装的时候一般就要想好;

  2.启动数据库:也叫全局数据库,是数据库系统的入口,它会内置一些高级权限的用户,如:sys,system;

三、表空间

  1.Oracle数据库是通过表空间来存储物理表的,数据库实例=N*表空间=*张表

  创建表空间语法:



创建临时表空间

CREATE TEMPORARY TABLESPACE wj_temp /* 临时表空间名称:wj_temp */
tempfile 'D:\app\dbf\wj_temp.dbf' /* 表空间路径 */
size 50m /* 空间初始大小:50M*/
autoextend ON /* 开启自动扩展 */
NEXT 50m /* 空间满了一次扩展50M*/
maxsize 6G /* 空间最终大小6G,可设为 unlimited 大小不受限制*/
extent management local;

创建表空间

CREATE TABLESPACE wj_data /* 临时表空间名称:wj_data */
datafile 'D:\app\dbf\wj_data.dbf' /* 表空间路径 */
size 50m /* 表空间初始大小:50M */
autoextend ON /* 开启自动扩展*/
NEXT 50m /* 表空间满了后一次扩展50M */
maxsize 10G /* 空间最终大小10G,可设为 unlimited 大小不受限制*/
logging extent management local;



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



select default_tablespace, temporary_tablespace, d.username  
from dba_users d



四、用户

  1.Oracle 数据库建好之后,要想在数据库里建表,必须先为数据库建立用户,并未用户指定表空间(用户是在实例下创建的);

  Oracle是由用户和表空间对数据进行管理和存放的,但是表不是用表空间查询的,而是由用户去查询,因为不同用户可以在同一个表空间,建立同一个名字的表;



CREATE USER wj                    /* 用户名 */
IDENTIFIED BY 123456              /* 密码 */  
DEFAULT TABLESPACE wj_data        /* 表空间 */    
TEMPORARY TABLESPACE wj_temp      /* 临时表空间 */



五、角色



-- connect 角色使得用户可以登录;resource 角色使得用户可以进行程序开发,如建立表、触发器等。授权命令如下:
GRANT CONNECT,RESOURCE TO wj;



 -- 查询数据库中的用户 



SELECT * FROM dba_users ORDER BY userName