Oracle数据库Schema的简介

百度文库中 Schema 的解释:

数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema。

官方定义如下:

A schema is a collection of database objects (used by a user.).

schema objects are the logical structures that directly refer to the database’s data.

A user is a name defined in the database that can connect to and access objects.

schemas and users help database administrators manage database security.

从定义中我们可以看出schema为数据库对象的集合,为了区分各个集合,我们需要给这个集合起个名字,这些名字就是我们在企业管理器的方案下看到的许多类似用户名的节点,这些类似用户名的节点其实就是一个schema,schema里面包含了各种对象如tables views sequences stored procedures synonyms indexes clusters and database links。

一个用户一般对应一个schema 该用户的schema名等于用户名,并作为该用户缺省schema。这也就是我们在企业管理器的方案下看到schema名都为数据库用户名的原因。oracle数据库中不能新创建一个schema,要想创建一个schema,只能通过创建一个用户的方法解决(oracle中虽然有create schema语句,但是它并不是用来创建一个schema的),在创建一个用户的同时为这个用户创建一个与用户名同名的schema并作为该用户的缺省schema。即schema的个数同user的个数相同,而且schema名字同user名字一一 对应并且相同,所有我们可以称schema为user的别名,虽然这样说并不准确,但是更容易理解一些。

一个用户有一个缺省的schema,其schema名就等于用户名,当然一个用户还可以使用其他的schema。如果我们访问一个表时,没有指明该表属于哪一个schema中的,系统就会自动给我们在表上加上缺省的sheman名。比如我们在访问数据库时,访问scott用户下的emp表,通过select from emp 其实,这sql语句的完整写法为select from scott.emp。在数据库中一个对象的完整名称为schema.object,而不属user.object。类似如果我们在创建对象时不指定该对象的schema,在该对象的schema为用户的缺省schema。这就像一个用户有一个缺省的表空间,但是该用户还可以使用其他的表空间,如果我们在创建对象时不指定表空间,则对象存储在缺省表空间中,要想让对象存储在其他表空间中,我们需要在创建对象时指定该对象的表空间。

sql> grant dba to scott

sql> create table test(name char(10))

table created.

sql> create table system.test(name char(10))

table created.

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名。

原文地址:https://www.cnblogs.com/lgx5/p/11688534.html

时间: 2024-10-29 04:25:46

Oracle数据库Schema的简介的相关文章

数据库schema的简介

[参考]自百度百科 数据库中的Schema,为数据库对象的集合,一个用户一般对应一个schema. 官方定义如下: A schema is a collection of database objects (used by a user.). schema objects are the logical structures that directly refer to the database’s data. A user is a name defined in the database t

Oracle数据库代码指令简介

这是oracle的课后作业,弄懂这些也差不多了吧,不懂的可以去看我的SQL sever数据库的博客那个写的详细.视频以后有时间录~ 登录数据库 //方法一 sqlplus 用户名 //方法二 sqlplus [email protected] as 用户名 第一章 1.查看当前数据库控制文件的名称与路径 select name from v$controlfile; 2.查看表空间SYSTEM对应的数据文件信息 //dba_data_files是数据字典 select file_name,tab

ABP框架EF6链接Oracle数据库手动迁移

环境:VS2017 + ABP官方模板(不含Zero) +Oracle 11Gx64DB  + Oracle 11Gx32Client(PLSQL工具访问) 一.Abp项目的下载以及运行 1.创建abp项目.进入官网 https://aspnetboilerplate.com/下载项目模板.abp项目有两种架构,一种是单页面(angularjs),另一种是mvc的.点击创建按钮.入下图: 2.对下载的源码首先进行编译,让其自动下载Nuget项目依赖包,保证源码可以编译通过. 3.在WinRun2

Oracle数据库简介以及windows安装过程

Oracle数据库简介 也许很多人熟悉SQL server,并不是太了解Oracle数据库,这里进行一下简单的介绍 Oracle数据库的创始人是劳伦斯.埃里斯 Oracle数据库能被多个操作系统使用 eg:windows,linux,Solaris,AIX等 现在我们把Oracle和SQL server 进行一下简单的比较 1:Oracle数据库对系统的支持比SQL server多,而SQL server数据库是微软研发,只能在windows上使用. 2:架构不同,Oracle数据库中,一个实例

oracle学习入门系列之四 oracle数据库简介

oracle学习入门系列之四 oracle数据库简介 终于平滑过渡到oracle了,我们在第一篇中黑了拉里一次,这里就需要给拉里洗白了.话说当年钱钟书先生写完<围城>之后,无意中说,一个鸡蛋就算好吃,也没必要知道下蛋的母鸡是哪只.蛤蟆觉得有点不妥,钱钟书先生那是文人,自然要清高,而且他本是"下蛋"的母鸡当然不愿意被吃蛋的俗人打扰的,况且当时也没有统计粉丝一说.可是我们是吃蛋的啊,而且是大老粗,现在还统计粉丝数量,我们就需要知道谁下的蛋,是不是毒蛋,对不对?也得看看下了这么好

Oracle数据库安装与连接与简介

Oracle数据库的安装 1.登录Oracle官网--试用和下载 2.同意协议--->file1 3.完成配置 4.测试连接:打开Oracle developer--->新建连接,注意用户名为SYS,口令在第三步已经设置,角色:系统管理员,全局数据库名称:第三步已经设置 物理存储结构 1.物理文件:数据文件.控制文件.重做日志文件.归档文件.初始化参数文件.跟踪文件.口令文件.警告文件.备份文件 主要指的是:数据文件(*.dbf)控制文件(*.ctl)重做日志文件(*.log) 2.对数据文件

ORACLE数据库编程

第一章 Oracle数据库基本概念 一.介绍 Oracle数据库系统是美国Oracle(甲骨文)公司提供的以分布式数据库为 核心的一组软件产品,是目前最流行的客户/服务器(Client/Server,C/S)或 浏览器/服务器(Browser/Server,B/S)体系结构的数据库之一.二.特点1.完整的数据管理功能:数据的大量性数据的保存的持久性数据的共享性数据的可靠性Oracle优点:可用性强可扩展性强数据安全性强稳定性强三.Oracle数据库的辑逻结构1.表空间一个数据库被分割为数个被称作

Oracle数据库之开发PL/SQL子程序和包

Oracle数据库之开发PL/SQL子程序和包 PL/SQL块分为匿名块与命名块,命名块又包含子程序.包和触发器. 过程和函数统称为PL/SQL子程序,我们可以将商业逻辑.企业规则写成过程或函数保存到数据库中,以便共享. 过程和函数均存储在数据库中,并通过参数与其调用者交换信息.过程和函数的唯一区别是函数总向调用者返回数据,而过程不返回数据. 1. 存储过程概念 存储过程(Stored Procedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,存储在数据库中.经过第一次编译后

dos命令行连接操作ORACLE数据库

C:\Adminstrator> sqlplus "/as sysdba" 查看是否连接到数据库 SQL> select status from v$instance; v$动态表开头,查看动态实例,open为启动. SQL> shutdown immediate关闭数据库 SQL> startup 继续启动 SQL> show parameter db_name 查看数据库名称 查询数据库SCOTT用户默认的状态 SQL> select usern