DATABASE,对 oracle 而言,是指物理上的数据库,一般你安装了一个 oracle的 数据库软件后,就是一个 database。
instance,在同一个数据库上,可以建立多个实例,这些实例互相不干扰,每个实例中可以有独立的表空间、用户、表、过程等各种数据库对象。也就是说,每一个 instance 实际上就是我们大家理解的逻辑上的数据库。
schemas,你用“用户 user”来理解就很容易了,每个模式(user)下可以有一套互不干扰的对象。你如果想要访问其他模式的对象,需要指定 schema 的 name,实际就是指定 username。
如,你要访问模式 scott 的表 emp,而你所在的模式(用户)是 tiger,那你要这样写:select * from scott.emp;