oracle 基本配置与数据字典入门.docx
《oracle 基本配置与数据字典入门.docx》由会员分享,可在线阅读,更多相关《oracle 基本配置与数据字典入门.docx(12页珍藏版)》请在冰豆网上搜索。
![oracle 基本配置与数据字典入门.docx](https://file1.bdocx.com/fileroot1/2023-8/19/91345cb7-43ac-4ca0-9014-d03fad5c0457/91345cb7-43ac-4ca0-9014-d03fad5c04571.gif)
oracle基本配置与数据字典入门
oracle:
三个配置文件listener.ora、sqlnet.ora、tnsnames.ora,都是放在$ORACLE_HOME\network\admin目录下
ref:
使用数据库连接时,Oracle检查本地主机中的tnsnames.ora文件以确定要连接到哪个数据库。
PLSQL、TOAD等客户端工具也是根据tnsnames.ora来解析数据库连接
login.sqlSQLPLUS启动环境配置文件,为用户设置自定义的参数
显示所有环境参数
showall
define定义自定义变量,以及编辑工具_editor
SQLPLUS学习总结
这个总结很好!
showparameterservice_name
开启、关闭数据库
sqlplus/nolog
conn/assysdba
!
!
在11g,必须connsys/passassysdba/sysoper才能执行以下命令!
!
startup
shutdown
常用命令大全:
oracle配置文件init.ora
dbhome_1\srvm\admin
dbhome_1\dbs
selectsysdatefromdual;
pseudocolumnswithnormaltable:
selecta.ename,sysdate,user,current_date,systimestampfromempa;
关于大小写:
创建表的时候,列名全部被转成大写;创建VIEW的时候,是把除用引号引起的ALIAS外都保存为大写列名。
引号引起的ALIAS列,在访问时也必须使用引号引起且大小写必须一致才能正确访问到,所以除非想制造麻烦,最好不要这样做。
Oracle删除当前用户下的所有表、视图、序列、函数、存储过程、包
CAT当前用户可以访问的所有的基表;
TAB当前用户创建的所有基表,视图,同义词等;
DICT构成数据字典的所有表的信息;
session_privs
user_ts_quotas
user_objects
select*fromuser_users;
select*fromuser_role_privs;
select*fromuser_sys_privs;
select*fromuser_tab_privs;
selectindex_name,index_type,table_namefromuser_indexesorderbytable_name;
select*fromuser_ind_columnswhereindex_name=('PK_EMP');
oracle查看用户表数目,表大小,视图数目等
查看用户下所有的表
SQL>select*fromuser_tables;
查看名称包含log字符的表
SQL>selectobject_name,object_idfromuser_objects
whereinstr(object_name,'LOG')>0;
查看某表的创建时间
SQL>selectobject_name,createdfromuser_objectswhereobject_name=upper('&table_name');
查看某表的大小
SQL>selectsum(bytes)/(1024*1024)as"size(M)"fromuser_segments
wheresegment_name=upper('&table_name');
查看放在ORACLE的内存区里的表
SQL>selecttable_name,cachefromuser_tableswhereinstr(cache,'Y')>0;
3、索引
查看索引个数和类别
SQL>selectindex_name,index_type,table_namefromuser_indexesorderbytable_name;
查看索引被索引的字段
SQL>select*fromuser_ind_columnswhereindex_name=upper('&index_name');
查看索引的大小
SQL>selectsum(bytes)/(1024*1024)as"size(M)"fromuser_segments
wheresegment_name=upper('&index_name');
4、序列号
查看序列号,last_number是当前值
SQL>select*fromuser_sequences;
5、视图
查看视图的名称
SQL>selectview_namefromuser_views;
查看创建视图的select语句
SQL>setview_name,text_lengthfromuser_views;
SQL>setlong2000;说明:
可以根据视图的text_length值设定setlong的大小
SQL>selecttextfromuser_viewswhereview_name=upper('&view_name');
6、同义词
查看同义词的名称
SQL>select*fromuser_synonyms;
7、约束条件
查看某表的约束条件
SQL>selectconstraint_name,constraint_type,search_condition,r_constraint_name
fromuser_constraintswheretable_name=upper('&table_name');
SQL>selectc.constraint_name,c.constraint_type,cc.column_name
fromuser_constraintsc,user_cons_columnscc
wherec.owner=upper('&table_owner')andc.table_name=upper('&table_name')
andc.owner=cc.ownerandc.constraint_name=cc.constraint_name
orderbycc.position;
8、存储函数和过程
查看函数和过程的状态
SQL>selectobject_name,statusfromuser_objectswhereobject_type='FUNCTION';
SQL>selectobject_name,statusfromuser_objectswhereobject_type='PROCEDURE';
查看函数和过程的源代码
SQL>selecttextfromall_sourcewhereowner=userandname=upper('&plsql_name');
ORACLE:
----常用数据字典
USER_
记录用户对象的信息,如user_tables包含用户创建的所有表;user_views,user_constraints等;
ALL_
记录用户对象的信息及被授权访问的对象信息;
DBA_
记录数据库实例的所有对象的信息,如DBA_USERS包含数据库实例中
所有用户的信息,DBA的信息包含user和all的信息;
V$当前实例的动态视图,包含系统管理和优化使用的视图;
GV_分布环境下所有实例的动态视图,包含系统管理和优化使用的视图,这里的GV表示Globalv$的意思;
如当前分布环境下启动多个实例:
setline160--(每行显示160个字符)
selectinst_id,sid,lmodefromgv$lockwhereinst_id=1orinst_id=2;
oracle常用数据字典,oracle10增加了不少数据字典10gr1有1713个,r2有1870个:
1基本的数据字典:
DBA_TABLES所有用户的所有表的信息;
DBA_TAB_COLUMNS所有用户的表的列(字段)信息;
DBA_VIEWS所有用户的所有视图信息;
DBA_SYNONYMS所有用户同义词信息;
DBA_SEQUENCES所有用户序列信息;
DBA_CONSTRAINTS所有用户的表约束信息;
DBA_INDEXES所有用户索引的简要信息;
DBA_IND_COLUMNS所有用户索引的列信息;
DBA_TRIGGERS所有用户触发器信息;
DBA_SOURCE所有用户存储过程源代码信息;
DBA_PROCEDUS所有用户存储过程;
DBA_SEGMENTS所有用户段(表,索引,Cluster)使用空间信息;
DBA_EXTENTS所有用户段的扩展段信息;
DBA_OBJECTS所有用户对象的基本信息(包括素引,表,视图,序列等);
CAT当前用户可以访问的所有的基表;
TAB当前用户创建的所有基表,视图,同义词等;
DICT构成数据字典的所有表的信息;
2与数据库组件相关的数据字典:
数据库:
V$DATABASE同义词V_$DATABASE,记录系统的运行情况;
表空间:
DBA_TABLESPACES记录系统表空间的基本信息;
DBA_DATA_FILES记录系统数据文件及表空间的基本信息;
DBA_FREE_SPACE记录系统表空间的剩余空间的信息;
控制文件:
V$CONTROLFILE记录系统控制文件的路径信息;
V$PARAMETER记录系统各参数的基本信息;
v$CONTROLFILE_RECORD_SECTION记录系统控制运行的基本信息;
数据文件:
DBA_DATA_FILES记录系统数据文件及表空间的基本信息;
v$DATAFILE记录来自控制文件的数据文件信息;
v$FILESTAT记录数据文件读写的基本信息;
v$logfile
一些常用视图的区分
dba_tablesdba_all_tablesuser_tablesuser_all_tablesall_tablesall_all_tables
--查看VGA信息:
showsga;
select*fromv$sgastat;
--可以通过以下几个动态性能视图查看信息:
V$sysstat系统统计信息
V$sesstat用户会话统计信息
V$pgastat显示内存使用统计信息
V$sql_workareaSQL游标所用工作区的信息
V$sql_workarea_active当前系统工作区的信息
--在V$process动态性能视图中可以查询到每个Oracle进程的PGA分配的内存和已使用的内存情况,
--其中PGA_used_mem表示已使用的,pag_alloc_mem表示已分配的,pga_max_men表示PGA的最大值。
SQL>selectpid,pga_used_mem,pga_alloc_mem,pga_max_memfromv$process;
--查看后台进程:
SELECT*FROMv$bgprocessWHEREpaddr<>'00';
--查看所有的表空间;
SQL>selecttablespace_namefromdba_data_filesorderbytablespace_name;
--查看表空间的名字及大小:
SQL>selectt.tablespace_name,round(sum(bytes/(1024*1024)),0)ts_size
fromdba_tablespacest,dba_data_filesdwheret.tablespace_name=d.tablespace_name
groupbyt.tablespace_name;
数据字典(全)
columnCommentsformata35word_wrapped
columnTable_Nameformata25
selectTable_Name,Comments
fromDICT
whereTable_Namelike'%MVIEWS%'
orderbyTable_Name;
selectTable_Name
fromDICT_COLUMNS
whereColumn_Name='BLOCKS'
andTable_Namelike'USER%'
orderbyTable_Name;
selectTable_Name,Table_Type
fromUSER_CATALOG
whereTable_Namelike'T%';
dictionarydict
user_catalogcat
user_tablestabs
user_objectsobj
user_tab_columnscols
user_views
user_synonyms(SYN)
user_sequences(SEQ)
user_recyblebinrecyclebin
user_constraints
user_cons_columns
user_tab_comments
user_col_comments
user_indexes(IND)
user_ind_columns
user_clusters(CLU)
user_clu_columns
user_types
user_lobs
user_db_links
user_mviews
user_mview_analysis
user_mview_detail_relations
user_mview_keys
user_mview_logs
user_triggers
user_trigger_ordering
user_source
user_errors
user_object_size
user_dimesions
user_dim_hierarchies
user_tablespaces
user_ts_quotas
user_segments
user_extents
user_part_tables
user_part_key_columns
user_free_space
user_users
user_resource_limit
user_tab_privs
user_col_privs
user_sys_privs列出非通过角色而是直接赋予给用户的系统权限,
不包括通过role赋予的权限
user_role_privs
role_sys_privs
role_role_privs
session_privs
session_roles
user_audit_object
user_audit_session
user_audit_statement
SQL*Loader
loader_col_info
loader_constraint_info
loader_file_ts
loader__param_info
loader_part_info
loader_ref_info
loader_tab_info
loader_trigger_info
NLS
nls_session_parameters
nls_instace_parameters
nls_database_parameters
Scheddulers
user_scheduler_programs
user_scheduler_program_args
user_scheduler_job_log
user_scheduler_job_run_details
user_scheduler_running_jobs
user_scheduler_schedules
dba_directories
*只有createanydirectory权限才可以创建、更新或删除directories
createorreplacedirectoryexp_diras'/tmp';
grantread,writeondirectoryexp_dirtoeygle;
select*fromdba_directories;
dropdirectoryexp_dir;
*SPOOL命令不能使用createdirectory创建的目录名,必须使用完整的操作系统路径
user_views
创建视图时,在createview命令头中给出别名(如下)则查询语句中就没有了列别名,这样就可以防止通过user_views来查看视图的列名。
这是视图的列名就只能通过user_tab_columns来查看了。
createviewNEWSPAPER_VIEW(SomeFeature,SomeSection)
asselectFeature,Section
fromNEWSPAPER;
Listingthecolumnnamesintheheaderofthecreateviewcommandremovesthecolumn
aliasesfromthequeryandthuspreventsyoufromseeingthemviaUSER_VIEWS.