官方定义如下:
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 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名。
分享到:
相关推荐
python-oracledb的源码和使用示例代码, python-oracledb 1.0,适用于Python versions 3.6 through 3.10. Oracle Database; This directory contains samples for python-oracledb. 1. The schemas and SQL ...
3.在这边点击 Executables,在Export Dump:和Import Dump:中分别输入Oracle安装路径\product\10.1.0\db_3\BIN\expdp.exe,Oracle安装路径\oracle\product\10.1.0\db_3\BIN\impdp.exe,点 OK 4.进入 Database|Export|...
datanamic DB_Schema_Difftective 数据库结构升级脚本制作工具 自动比较 数据库结构差异, 生成DDL脚本 支持多种数据库,数据库结构升级脚本制作的理想工具。 支持oracle, sql server, db2, informix, my sql 。。。...
在网上找了很多关于怎样生成jbpm-oracle数据库脚本的文章,没有一个能真正解决实际过程中遇到的问题。后来才知道,那里有一个包的java文件方法同名了,删除之后,就生成成功了!下载我打个包上传给需要的人。
ORACLE 19C的示例安装包,包括HR,HR,OE,SH,IX,BI,PM,SCOTT
_SCHEMA收集统计数据 8.9.2 使用 DBMS_UTILITY.ANALYZE _DATABASE 收集统计数据 8.9.3 使用 DBMS_STATS 收集性能统计 数据 8.10 优化环境 8.10.1 怎样优化 Net8/SQL*Net 8.10.2 监控并优化系统资源 8.11 ...
生成基于Oracle的jBPM数据库脚本 1. 下载最新版本的 JBoss jBPM Starters kit。解压这个文件,假设解压目录为 "${jbpm.starters.kit}",它的下面应该有 jbpm, jbpm-bpel,jbpm-db,jbpm-designer,jbpm-server 五...
Understand Oracle NoSQL Database architecture and the underlying data storage engine, Oracle Berkeley DB Install and configure Oracle NoSQL Database for optimal performance Develop complex, ...
su - oracle -c "exp system/manager full=y inctype=complete file=/oracle/export/db_comp$rq.dmp" 累计备份的SH文件:exp_cumu.sh rq=` date +"%m%d" ` su - oracle -c "exp system/manager full=y inctype=...
DB Admin Module 24 Toad and Oracle Enterprise Manager 29 Quick Search Bar 30 Additional Resources 31 Working with other Quest Products 32 Knowledge Xpert 32 Using SQL Optimizer with Toad 32 Benchmark ...
7 XML:dtd中的细节 4分 8 XML:内部dtd编写 6分 1 Servlet:EL中间的隐式对象 4分 2 Servlet:session对象的创建 3分 3 Servlet:web程序目录结构 6分 4 Servlet:jsp隐式对象 4分 5 Servlet:指令和动作 6分 6 ...
An Expert Guide to Building Oracle Database Cloud Infrastructures This is the first complete, practical guide to ...Chapter 10 Virtualizing RAC 12c (DB Clouds) on Oracle VM VirtualBox— RAC Databases
asp.net_spring_nhibernate_oracle 网上关于在.net开发的例子不多,这个例子能跑,遗憾的是,nhibernate在存储过程不完美,在oracle 传回多结果集,只能接受到第一个,官网上也是这样说的。 提示:开发前,先将...
sample schemas创建与安装示例库脚本, Oracle 12CR2...创建sample schemas只需执行db-sample-schemas-12.2.0.1目录下的mksample.sql脚本,mksample EXAMPLE TEMP $ORACLE_HOME/demo/schema/log/ localhost:1521/pdb。
Oracle DB比较程序,此脚本将比较Oracle数据库版本7.3.4 +中的架构。 用Perl和平台独立编写,报告映射的SchemaName中的所有差异。 输出HTML或ASCII(不久后为XML)(带有TK接口的版本)
ORACLE用户是学习ORACLE数据库中的基础知识,下面就介绍下类系统常用的默认ORACLE用户: 1. sys用户:超级用户,完全是个SYSDBA(管理数据库的人)。拥有dba,sysdba,sysoper等角色或权限。是oracle权限最高的用户,...
1.6. DB2实现类型ORACLE的一些功能 29 1.7. 字符数据类型转换的时候需要注意的问题(原) 30 1.8. 本地谓词的使用注意(原) 31 1.9. windows/Linux或Unix下查看DB2端口号 31 1.10. 尽量让fetch first n row only或者...
在aix6100 oracle10g RAC数据库,新增schema 检查并发卷组 dbserver2:/home/oracle$ lspv hdisk0 00f763973755a79c rootvg active hdisk1 00f76397a3fde475 rootvg active hdisk2 00f76397ccfedc5a oraclevg ...
var oracledb = require('oracledb'), oracleConnection = require('express-oracleconnection'), dbOptions = { host: 'localhost/XE', user: 'schema', password: 'password' }; app.use(oracleConnection