一个PostgreSQL数据库服务下可以有多个数据库,多个数据库之间无法互相访问,需要访问需要使用dblink等手段。
ORACLE数据库一个实例只能有属于一个数据库,一个库可以有多个实例,比如RAC就是如此。Post的这种其实和sql server, MYSQL都类似。
Database,instance
Schema
在PostgreSQL中Schema可以理解为一个命名空间或目录,每个schema有各自的表,视图等对象,不同的schema下名称可以相同。ORACLE的Schema功能上和PostgreSQL相同,但是ORACLE一个用户即一个Schema。
默认下用户创建的表在public schema下,创建表时指定schema即可。
exampledb=> create table test.tt (t1 varchar);
CREATE TABLE
exampledb=> \d tt
Did not find any relation named "tt".
exampledb=> \d test.tt;
Table "test.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
exampledb=> create table tt (t1 varchar);
CREATE TABLE
exampledb=> \d tt
Table "public.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
exampledb=> \d test.tt
Table "test.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
ORACLE数据库一个实例只能有属于一个数据库,一个库可以有多个实例,比如RAC就是如此。Post的这种其实和sql server, MYSQL都类似。
Database,instance
Postgresql | ORACLE | SQL Server |
一个库不能属于多个实例 | 一个库可以有多个实例 | |
一个实例下有多个库 | 一个实例只能属于一个库 | |
Schema
在PostgreSQL中Schema可以理解为一个命名空间或目录,每个schema有各自的表,视图等对象,不同的schema下名称可以相同。ORACLE的Schema功能上和PostgreSQL相同,但是ORACLE一个用户即一个Schema。
默认下用户创建的表在public schema下,创建表时指定schema即可。
exampledb=> create table test.tt (t1 varchar);
CREATE TABLE
exampledb=> \d tt
Did not find any relation named "tt".
exampledb=> \d test.tt;
Table "test.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
exampledb=> create table tt (t1 varchar);
CREATE TABLE
exampledb=> \d tt
Table "public.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
exampledb=> \d test.tt
Table "test.tt"
Column | Type | Modifiers
--------+-------------------+-----------
t1 | character varying |
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/582521/viewspace-1867318/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/582521/viewspace-1867318/