1. service name 服务名(其实就是:数据库名),装 ORACLE 时肯定要指定的一个名字
2. tablespace 表空间,数据库对象的磁盘存储位置
3. schema 方案,数据库对象的逻辑分类
4. user 用户,等同于 schema
5. service name > tablespace > schema(user)
SQL> insert into test values(‘scott‘);
1 row created.
SQL> insert into system.test values(‘system‘);
1 row created.
SQL> commit;
Commit complete.
SQL> conn system/manager
Connected.
SQL> select * from test;
NAME
----------
system
SQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名
Session altered.
SQL> select * from test;
NAME
----------
scott
SQL> select owner ,table_name from dba_tables where table_name=upper(‘test‘);
OWNER TABLE_NAME
------------------------------ ------------------------------
SCOTT TEST
SYSTEM TEST
--上面这个查询就是将 schema 作为 user 的别名的依据。实际上在使用上,shcema 与 user 完全一样,没有什么区别,在出现 schema 名的地方也可以出现 user 名。
schema 和 user 一般是一致的,建立一个 user 后即可得到一个 schema,如:HR 用户建立后便有 HR 方案,接下来建立表、索引等数据库对象时,要指定其属于哪个 schema,也要指定其存放在哪个 tablespace 里。
也可以这样理解,schema 是数据库对象的逻辑归属和分类,而 tablespace 是数据库对象的物理和实际存放位置。
Schema 就是用户所属对象的一个集合,对象包括表,索引,视图,JAVA,PL/SQL块等。
Schema 的名字与用户名一样,当创建一个用户时,这个用户所对应的shema也同时创建,用户名与schema交互使用。
Schema 与tablespace之间没有什么联系,同一个schema的对象可以存储在不同的表空间中,同一个表空间中可以存储不同schema的对象。
不要在SYS和SYSTEM SCHEMA下创建其它数据对象。
Schema is the collection of database objects owned by a database user.
Schema has the same name as the user owns it.
Schema objects include structures such as tables,views,indexes,Java,PL/SQL etc..
Schema is no relationship with tablespace.
Object in the same schema can be in different tablespaces.
When a database user is created,acorresponding schema with the same name is created for that user.
Username and Schema are offen used interchangeably.