麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 數據庫 > Oracle > 正文

講解Oracle數據庫中的數據字典及相關SQL查詢用法

2024-08-29 13:58:57
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Oracle數據庫中的數據字典及相關SQL查詢用法,是Oracle入門學習中的基礎知識,需要的朋友可以參考下
 

Oracle數據字典概述 
 
數據庫是數據的集合,數據庫維護和管理這用戶的數據,那么這些用戶數據表都存在哪里,用戶的信息是怎樣的,存儲這些用戶的數據的路徑在哪里,這些信息不屬于用戶的信息,卻是數據庫維護和管理用戶數據的核心,這些信息就是數據庫的數據字典來維護的,數據庫的數據字典就匯集了這些數據庫運行所需要的基礎信息叻。每個數據庫都提供了各自的數據字典的方案,雖然形式不同,但是目的和作用是一樣的,比如在mysql里數據字典是在information_schema 里表現的,sqlserver則是在sys這個系統schema里來展示的。
Oracle的數據字典是Oracle數據庫安裝之后,自動創建的一系列數據庫對象。數據字典是Oracle數據庫對象結構的元數據信息。熟悉和深入研究數據字典對象,可以很大程度的幫助我們了解Oracle內部機制。
Oracle字典視圖包括四個層次,分別為X$內部表、基礎數據字典表、數據字典視圖和動態性能視圖。
數據字典表和用戶創建的表沒有什么區別,不過數據字典表里的數據是Oracle系統存放的系統數據,而普通表存放的是用戶的數據而已,為了方便的區別這些表,這些表的名字都是用"$"結尾,在我們看到的sql語句里看到"$"結尾的這些表,大家就可以想到這可能是一個數據字典表了,同樣,既然如此,我們創建自己的用戶表的時候就不要用“$”結尾,以免讓別人誤會,數據字典表是系統存放系統用戶的,所以他的owner是sys,在手工用create database的命令的時候,會調用$ORACLE_HOME/rdbms/admin/sql.bsq文件,這個就會執行生成我們這些數據字典表。打開sql.bsq會發現很多數據字典幾乎都以$結尾,比如col$,tab$等。
對于數據字典表,里面的數據是有數據庫系統自身來維護的,所以這里雖然和普通表一樣可以用DML語句來修改數據內容,但是大家最好還是不要自己來做了,因為這些表都是作用于數據庫內部的,我們有時看到的604的的recursive sql這里的sql實際上很有可能就是我們的相關的數據字典表的執行內容。所以這里我們切記記住不要去修改這些表里的內容。
剛才說道了。這里的數據字典表的用戶都是sys,存在在system這個表空間里,表名都用"$"結尾,為了便于用戶對數據字典表的查詢,這樣的名字是不利于我們記憶的,所以Oracle對這些數據字典都分別建立了用戶視圖視圖,不僅有更容易接受的名字,還隱藏了數據字典表表之間的關系,讓我們字節通過視圖來進行查詢,簡單而形象,Oracle針對這些對象的范圍,分別把視圖命名為DBA_XXXX, ALL_XXXX和USER_XXXX
user_對象視圖:描述了當前用戶schema下的對象;
all_對象視圖:描述了當前用戶有權限訪問到的所有對象的信息;
dba_對象視圖:包括了所有數據庫對象的信息;
注意:在創建數據庫是會運行兩個腳本。先運行catalog.sql,該腳本用來創建數據庫的內部字典表。然后再運行catrpoc.sql,該腳本用來創建數據庫內建的存儲過程、包等pl/sql對象。如果我們是使用dbca來創建數據庫,則dbca會自動調用這兩個腳本。否則在執行create database命令來創建時,則需要手工運行這兩個腳本。    
 
數據字典SQL查詢
下面按類別列出一些ORACLE用戶常用數據字典的查詢使用方法。
 
1、用戶
查看當前用戶的缺省表空間

SQL>select username,default_tablespace from user_users;

 
查看當前用戶的角色

SQL>select * from user_role_privs;

 
查看當前用戶的系統權限和表級權限

SQL>select * from user_sys_privs;SQL>select * from user_tab_privs;

 
2、表
查看用戶下所有的表

SQL>select * from user_tables;

 
查看名稱包含log字符的表

SQL>select object_name,object_id from user_objectswhere instr(object_name,'LOG')>0;

 
查看某表的創建時間

SQL>select object_name,created from user_objects where object_name=upper('&table_name');

 
查看某表的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segmentswhere segment_name=upper('&table_name');

 
查看放在ORACLE的內存區里的表

SQL>select table_name,cache from user_tables where instr(cache,'Y')>0;

 
3、索引
查看索引個數和類別

SQL>select index_name,index_type,table_name from user_indexes order by table_name;

 
查看索引被索引的字段

SQL>select * from user_ind_columns where index_name=upper('&index_name');

 
查看索引的大小

SQL>select sum(bytes)/(1024*1024) as "size(M)" from user_segmentswhere segment_name=upper('&index_name');

 
4、序列號
查看序列號,last_number是當前值

SQL>select * from user_sequences;

 
5、視圖
查看視圖的名稱

SQL>select view_name from user_views;

 
查看創建視圖的select語句

SQL>set view_name,text_length from user_views;SQL>set long 2000;        說明:可以根據視圖的text_length值設定set long 的大小SQL>select text from user_views where view_name=upper('&view_name');

 
6、同義詞
查看同義詞的名稱

SQL>select * from user_synonyms;

 
7、約束條件
查看某表的約束條件

SQL>select constraint_name, constraint_type,search_condition, r_constraint_namefrom user_constraints where table_name = upper('&table_name'); SQL>select c.constraint_name,c.constraint_type,cc.column_namefrom user_constraints c,user_cons_columns ccwhere c.owner = upper('&table_owner') and c.table_name = upper('&table_name')and c.owner = cc.owner and c.constraint_name = cc.constraint_nameorder by cc.position;

 
8、存儲函數和過程
查看函數和過程的狀態

SQL>select object_name,status from user_objects where object_type='FUNCTION';SQL>select object_name,status from user_objects where object_type='PROCEDURE';

 
查看函數和過程的源代碼

SQL>select text from all_source where owner=user and name=upper('&plsql_name');
 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 日本成人在线播放 | 最近日本电影hd免费观看 | av国产片| 免费观看一区二区三区 | 无码av女优 | 久久久久久久高清 | 欧美激情视频一区二区免费 | 欧美黄色小视频 | 国产欧美在线一区二区三区 | 中文字幕精品久久 | 久久久精品网 | 久色精品视频 | 久久久毛片视频 | 夜夜看 | 久久精品视频网址 | 亚洲国产在 | 午夜视频久久久 | 久久精品性视频 | 大片毛片| 久久日韩 | 久久亚洲国产精品 | hd欧美free性xxxx护土 | 欧美激情综合在线 | 久久国语对白 | 美女羞羞视频在线观看 | 免费午夜视频在线观看 | 欧美日韩免费一区 | 欧美精选一区二区 | 色女人在线 | 看免费黄色大片 | 国产一区二区免费在线观看 | 成人福利免费在线观看 | 国产乱淫av片免费 | 国产精品国产三级国产在线观看 | 中文成人在线 | 精品999www | 成人一级视频 | 欧美日本一 | 久久久久久久一区二区 | 国产剧情在线观看一区二区 | 中文字幕精品亚洲 |