如何分析oracle数据库中的表结构

如何分析oracle数据库中的表结构,第1张

去这里看看

数据结构被称为物理(存储)的数据结构在计算机中的表示()。它包括一个数据元素表示的关系的表示。

物理结构,也就是由Oracle数据库所使用的 *** 作系统的文件结构。对于数据库的物理结构文件,不同版本的Oracle,不同的 *** 作系统平台上的数据库文件存放的目录结构不同的物理结构

其作用可分为三类:

数据日志文件的文件

控制文件

数据文件,数据文件,用于存储数据库中的数据,如表,索引等。当读取数据时,系统首先读取的数据从数据库文件,并存储到数据缓冲器,SGA。

重做日志文件,重做日志文件

所有的记录在数据库中的信息。这是三种类型的文件,文件中最复杂的,而且要保证数据库的安全性和数据库的备份和恢复文件直接。

控制文件

控制文件是一个二进制文件,用来描述数据库的物理结构,数据库只需要一个控制文件,控制文件的内容,包括:

>同步需要恢复的数据文件和日志文件的信息标识数据库和数据库的名称,唯一标识

数据库,检查点数量

/

a>

如果有,请记得采纳为满意的答复,谢谢你!我祝你幸福的生活!

vaela

sql数据库的话,建议你限看下本库的系统表(需要编辑Sql注册属性的查看系统表)

可以通过查询 syscolumns,sysobjects,sysindexkeys 获得你想要的东西

Accsee的话

查询MSysNavPaneGroups系统隐藏表字段(Flags|GroupCategoryID | Id | Name | Object Type Group | ObjectID |Position)

Name是用户表名称,[Object Type Group]的值为 "-1"

查询MSysNavPaneObjectIDs系统隐藏表字段(ID,Name,Type)

MSysQueries,视图相关信息

1,Expression,视图表达式(部分Sql语句)

2,Name1,Name2,分别为视图名和视图字段

在查询分析器中用SQL语句

可输入以下编码进行查看

sp_help tablename  (tablename是你要查看表结构的表名)

select from information_schemacolumns where table_name=你要查的表名

初级:使用管理工具SSMS    右侧对象树展开即可

中级:sp_HelpText 表名

高级:用SQL查询系统元数据

select table_name,column_name,comments from user_col_comments;

直接执行这句话

是看数据库当前用户中所有表的列的注释

或者在PL sql中新建一个命令窗口,输入 desc student 也可以

你看你怎么调用这个sql语句吧

select aowner 所属用户,

atable_name 表名,

acolumn_name 字段名,

adata_type 字段类型,

a字段长度,

a字段精度,

a是否为空,

a创建日期,

a最后修改日期, 

case when aowner=downer and atable_name=dtable_name and acolumn_name=dcolumn_name then '主键' else '' end 是否主键 

from

(select aowner,atable_name,bcolumn_name,bdata_type,case when bdata_precision is null then bdata_length else data_precision end 字段长度,data_scale 字段精度,

decode(nullable,'Y','√','N','×') 是否为空,ccreated 创建日期,clast_ddl_time 最后修改日期 

from all_tables a,all_tab_columns b,all_objects c 

where atable_name=btable_name and aowner=bowner

and aowner=cowner

and atable_name=cobject_name

and aowner='SCOTT' --这个是查某个用户,你到时候把用户名换一下就好,一定大写

and cobject_type='TABLE') a

left join 

(select aowner,atable_name,acolumn_name,aconstraint_name from user_cons_columns a, user_constraints b 

where aconstraint_name = bconstraint_name and bconstraint_type = 'P') d

on aowner=downer and atable_name=dtable_name and acolumn_name=dcolumn_name

order by aowner,atable_name;

1、首先,我们打开PLSQL工具连接到需要进行数据比对的ORACLE数据库。

2、登录成功后,点击工具(tool)选择匹配用户结构(compare user objects)我们先匹配数据表结构以防止匹配数据时造成数据无法修改的风险。

3、在d出的界面中选择我们需要匹配的数据表,点击目标会话(target session)输入需要匹配数据的对应数据库用户名密码,点击ok连接成功后单击匹配数据(compare)。

4、如果数据表结构有差异在d出的界面会显示数据库中表结构的差异,并形成相关的升级sql语句,数据表匹配只考虑源数据库中没有的表或列,查看sql语句是否为我们想要匹配的,如果是点击确认匹配,数据库表结构匹配完成。

5、登录成功后,点击工具(tool)选择匹配表数据(compare table data)。

6、如果是点击确认匹配,数据库表数据匹配完成。

public static void getConnAndTableStruct(){

Connection connection = null;

PreparedStatement pstmt = null;

ResultSetMetaData rsmd = null;

try {

//mysql连接

ClassforName("orggjtmmmysqlDriver");

connection = DriverManagergetConnection(

"jdbc:mysql://localhost:3306/test", "root", "root");

//oracle连接

// ClassforName("oraclejdbcdriverOracleDriver");

// String url="jdbc:oracle:thin:@17310211:1521:test";

// connection=DriverManagergetConnection(url,"root","root");

pstmt = (PreparedStatement) connectionprepareStatement("select from user");

pstmtexecute(); //这点特别要注意:如果是Oracle而对于mysql可以不用加

rsmd = (ResultSetMetaData) pstmtgetMetaData();

className="User";

tableName="user";

for (int i = 1; i < rsmdgetColumnCount() + 1; i++) {

Table table=new Table();

tablesetColumnName(rsmdgetColumnName(i));

tablesetColumnType(rsmdgetColumnClassName(i)substring(rsmdgetColumnClassName

(i)lastIndexOf("")+1));

tablesadd(table);

Systemoutprintln(rsmdgetColumnName(i)+ " " +rsmdgetColumnTypeName(i)

+" " +rsmdgetColumnClassName(i)+ " "+rsmdgetTableName(i));

}

}

catch (ClassNotFoundException cnfex) {

cnfexprintStackTrace();

}

catch (SQLException sqlex) {

sqlexprintStackTrace();

}

}

以上就是关于如何分析oracle数据库中的表结构全部的内容,包括:如何分析oracle数据库中的表结构、C#中如何获取表的结构、如何通过sql 查看表的结构等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/10070901.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存