当前位置:网站首页>SCHEMA solves the puzzle
SCHEMA solves the puzzle
2022-08-01 11:33:00 【HUAWEI CLOUD】
一、定义
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名.
边栏推荐
- Qt获取文件夹下所有文件
- Promise learning (4) The ultimate solution for asynchronous programming async + await: write asynchronous code in a synchronous way
- Aeraki Mesh became CNCF sandbox project
- Promise学习(一)Promise是什么?怎么用?回调地狱怎么解决?
- 千万级乘客排队系统重构&压测方案——总结篇
- DBPack SQL Tracing 功能及数据加密功能详解
- R语言诊断ARIMA模型:forecast包构建了一个ARIMA模型、使用checkresiduals函数诊断ARIMA模型、并进行结果解读(拟合较差的ARIMA模型具有的特点)
- NIO‘s Sword(思维,取模,推公式)
- Promise学习(二)一篇文章带你快速了解Promise中的常用API
- Aeraki Mesh 正式成为 CNCF 沙箱项目
猜你喜欢

石头科技打造硬核品牌力 持续出海拓展全球市场

冰冰学习笔记:gcc、gdb等工具的使用

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

Golang内存分析工具gctrace和pprof实战

【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿

Pytest e-commerce project combat (below)

.NET深入解析LINQ框架(三:LINQ优雅的前奏)

图解MySQL内连接、外连接、左连接、右连接、全连接......太多了
![[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand](/img/de/1e6069e84183d1400c90a6ec574f72.png)
[5 days countdown] to explore the secret behind the great quality promotion, gift waiting for you to take of $one thousand

Promise学习(二)一篇文章带你快速了解Promise中的常用API
随机推荐
用户体验 | 如何度量用户体验 ?
Mini Program Graduation Works WeChat Food Recipes Mini Program Graduation Design Finished Products (4) Opening Report
Mini Program Graduation Works WeChat Food Recipes Mini Program Graduation Design Finished Products (2) Mini Program Functions
稀疏表示--学习笔记
Online - GCeasy GC log analysis tools
【无标题】
Golang内存分析工具gctrace和pprof实战
Browser shortcut keys
activiti工作流的分页查询避坑
The difference between undefined and null in JS
深度学习 | MATLAB实现一维卷积神经网络convolution1dLayer参数设定
力扣解法汇总1374-生成每种字符都是奇数个的字符串
【CLion】CLion 总是提示 “This file does not belong to any project target xxx” 的解决方法
R语言两个时间序列数据的滞后相关性可视化:使用forecast包的ccf函数绘制交叉相关函数,根据可视化结果分析滞后相关性
STM32 CAN filter configuration details
【倒计时5天】探索音画质量提升背后的秘密,千元大礼等你来拿
R语言拟合ARIMA模型:使用forecast包中的auto.arima函数自动搜索最佳参数组合、模型阶数(p,d,q)、设置seasonal参数指定在模型中是否包含季节信息
Pytest e-commerce project combat (below)
How to find out hidden computer software (how to clean up the computer software hidden)
Promise learning (1) What is Promise?how to use?How to solve callback hell?