Oracle- 数据库的实例,表空间,用户,表之间的关系
一、完整的Oracle数据库通常由两部分组成:Oracle数据库和数据库实例
1.数据库是一些列物理文件的集合(数据文件,控制文件,联机文件,参数文件)
2.Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区;
用Oracle官方描述:实例是访问Oracle数据库所需的一部分计算机内存和辅助处理后台进程,是由进程和这些进程所使用的内存(SGA)所构成一个集合。其实就是用来访问和使用数据库的一块进程,它只存在于内存中。就像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:appdbfwj_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:appdbfwj_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