oracle最近的学习汇总

  • 查询oracle有多少模式
select username from sys.dba_users;  

可以查看数据库下所有的用户(模式),但有时会报错(ORA-00942: 表或视图不存在),原因:权限不够可以通过select * from session_privs; --查看权限

--或者查看oracle表空间
select * from v$tablespace;--查询表空间(需要一定权限) 
  • 查询oracle模式下有哪些表和视图
select object_name from dba_objects where owner = 'oracle_schema(模式名)' and (object_type=\'TABLE\' or object_type=\'VIEW\')
  • 查询oracle表有哪些字段,字段类型(试了几个网上查的都不可以,不知道是不是权限问题,最后使用的下面这个)
SELECT column_name,data_type FROM ALL_TAB_COLUMNS WHERE TABLE_NAME = '表名' and OWNER='oracle_schema(模式名)' order by column_id --可以按表中的顺序排列字段
  • 查询oracle表字段的中文注释
select * from all_col_comments WHERE TABLE_NAME = '表名' and OWNER='oracle_schema(模式名)'
  • 查询oracle表的中文注释
select comments from all_tab_comments WHERE TABLE_NAME = '表名' and OWNER='oracle_schema(模式名)'
  • 查询oracle前几行
select * from 表名 where rownum<10;

关于oracle中的模式(schema)

1.schema是否等于数据库?

涉及到数据库的模式有很多疑惑,问题经常出现在模式和数据库之间是否有区别,如果有,区别在哪里。取决于数据库供应商。
对schema(模式)产生疑惑的一部分原因是数据库系统倾向于以自己的方式处理模式

(1)MySQL的文档中指出,在物理上,模式与数据库是同义的,所以,模式和数据库是一回事。
(2)但是,Oracle的文档却指出,某些对象可以存储在数据库中,但不能存储在schema中。 因此,模式和数据库不是一回事。
(3)而根据这篇SQL Server技术文章SQLServer technical article,schema是数据库SQL Server内部的一个独立的实体。 所以,他们也不是一回事。
因此,取决于您使用的RDBMS( 关系数据库管理系统),模式和数据库可能不一样。

2.schema和用户的关系?

(一)什么Oracle叫用户(user):

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

Oracle用户是用连接数据库和访问数据库对象的。(用户是用来连接数据库访问数据库)。

(二)什么叫模式(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.

模式是数据库对象的集合。模式对象是数据库数据的逻辑结构。
(把数据库对象用模式分开成不同的逻辑结构)。

(三)用户(user)与模式(schema)的区别:

Schemas and users help database administrators manage database security.

用户是用来连接数据库对象。而模式是用来创建管理对象的。模式跟用户在oracle 是一对一的关系。

从定义中我们可以看出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的)。

3.oracle中的schema?

oracle中的一个数据库就是一个实例.
oracle的一个用户就是一个Schema(即方案).
oracle的结构是:
 实例->用户->表(用户属于数据库实例,表属于某个用户)

参考文献:
https://blog.csdn.net/jiassi/article/details/82971597

https://www.cnblogs.com/qiuhong10/p/7883156.html

https://blog.csdn.net/a475952074/article/details/77741741

https://blog.csdn.net/hughwang1216/article/details/14112381

https://blog.csdn.net/KimSoft/article/details/4627520?ops_request_misc=%7B%22request%5Fid%22%3A%22160274248219725211955158%22%2C%22scm%22%3A%2220140713.130102334…%22%7D&request_id=160274248219725211955158&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-2-4627520.first_rank_ecpm_v3_pc_rank_v2&utm_term=oracle+schema&spm=1018.2118.3001.4187

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值