当前位置:网站首页>SCHEMA解惑
SCHEMA解惑
2022-08-01 11:05:00 【华为云】
一、定义
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的),在创建一个用户的同时为这个用户创建一个与用户名同名的schem,并作为该用户的缺省shcema。即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> Gruant dba to scottSQL> 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/managerConnected.SQL> select * from test;NAME----------systemSQL> ALTER SESSION SET CURRENT_SCHEMA = scott; --改变用户缺省schema名Session altered.SQL> select * from test;NAME----------scottSQL> select owner ,table_name from dba_tables where table_name=upper('test');OWNER TABLE_NAME------------------------------ ------------------------------SCOTT TESTSYSTEM TEST上面这个查询就是我说将schema作为user的别名的依据。实际上在使用上,shcema与user完全一样,没有什么区别,在出现schema名的地方也可以出现user名。
边栏推荐
- 退役划水
- 什么是步进电机?40张图带你了解!
- 【cartographer ros】10: Delay and error analysis
- 冰冰学习笔记:gcc、gdb等工具的使用
- Mini Program Graduation Works WeChat Food Recipes Mini Program Graduation Design Finished Products (4) Opening Report
- 深度学习 | MATLAB实现GRU门控循环单元gruLayer参数设定
- 怎么找出电脑隐藏的软件(如何清理电脑隐藏软件)
- 基于ArkUI eTS开发的坚果食谱(NutRecipes)
- Why Metropolis–Hastings Works
- ACL 2022 | 文本生成的相关前沿进展
猜你喜欢
退役划水

【随心笔记】假期快过去了,都干了点什么

【钛晨报】国家统计局:7月制造业PMI为49%;玖富旗下理财产品涉嫌欺诈,涉及390亿元;国内航线机票燃油附加费8月5日0时起下调

语音聊天app源码——语音聊天派对

新书上市 |《谁在掷骰子?》在“不确定性时代”中确定前行

Endorsed in 2022 years inventory | product base, science and technology, guangzhou automobile group striding forward

Jenkins安装插件遇到的问题

C#/VB.NET convert PPT or PPTX to image

CTFshow,命令执行:web34、35、36

Google Earth Engine APP——15行代码搞定一个inspector高程监测APP
随机推荐
Guangyu Mingdao was selected into the list of pilot demonstration projects for the development of digital economy industry in Chongqing in 2022
我是如何保护 70000 ETH 并赢得 600 万漏洞赏金的
Introduction to data warehouse layering (real-time data warehouse architecture)
Promise学习(一)Promise是什么?怎么用?回调地狱怎么解决?
slice、splice、split傻傻分不清
OpenHarmony高校技术俱乐部计划发布
PDMan-domestic free general database modeling tool (minimalist, beautiful)
机器学习 | MATLAB实现支持向量机回归RegressionSVM参数设定
Generate certificates using KeyStore
稀疏表示--学习笔记
JS 中的 undefined 和 null 的区别
【云驻共创】分布式技术之华为云全域调度技术与实践
(ES6以上以及TS) Map对象转数组
JS数据类型转换完全攻略
Hot review last week (7.25 7.31)
PDMan-国产免费通用数据库建模工具(极简,漂亮)
Cross-domain network resource file download
浏览器快捷键大全
石头科技打造硬核品牌力 持续出海拓展全球市场
C#/VB.NET convert PPT or PPTX to image