频道栏目
首页 > 数据库 > 其他综合 > 正文
查表的字段名,主键,字段类型的语句
2012-04-01 10:23:54           
收藏   我要投稿


查表的字段名,主键,字段类型的语句

 

一、oracle 

 

1、获取当前oracle数据库中的所有表 

 

select table_name from user_tables 

 

2、查询某个表中的字段名称、类型、精度、长度、是否为空   

 

select COLUMN_NAME,DATA_TYPE,DATA_PRECISION,DATA_SCALE,NULLABLE     

from user_tab_columns     

where table_name ='YourTableName'   

3、查询某个表中的主键字段名   

 

select col.column_name     

from user_constraints con,  user_cons_columns col     

where con.constraint_name = col.constraint_name     

and con.constraint_type='P'     

and col.table_name = 'YourTableName'   

4、查询某个表中的外键字段名称、所引用表名、所应用字段名   

 

select distinct(col.column_name),r.table_name,r.column_name     

from     

user_constraints con,    

user_cons_columns col,     

(select t2.table_name,t2.column_name,t1.r_constraint_name     

from user_constraints t1,user_cons_columns t2     

where t1.r_constraint_name=t2.constraint_name     

and t1.table_name='YourTableName'   

) r    www.2cto.com     

where con.constraint_name=col.constraint_name     

and con.r_constraint_name=r.r_constraint_name     

and con.table_name='YourTableName'  


5、如何从Oracle中取得表的注释 

 

       user_tab_comments;表注释 

 

        user_col_comments;表字段注释 

 

  以上两个只能获取自己用户的表的注释信息,如果要访问自己 

 

能够访问的其他用户的表,则需要使用: 

 

        all_tab_comments;表注释 

 

        all_col_comments;表字段注释 

 

  当然,如果有DBA权限,则可以使用 

 

        dba_tab_comments;表注释 

 

        dba_col_comments;表字段注释 

 

  dba*和all*最好指定owner条件。user*没有该字段 

 

        user_tab_comments;表注释 

 

        user_col_comments;表字段注释 

 

二、SQLServer 

 

1、读取库中的所有表名 

  select name from sysobjects where xtype='u'  

 

2、字段  

SELECT c.name,t.name,c.xprec,c.xscale,c.isnullable     

FROM systypes t,syscolumns c     

WHERE t.xtype=c.xtype     

AND c.id = (SELECT id FROM sysobjects WHERE name='YourTableName')     

ORDER BY c.colid    

3、主键(参考SqlServer系统存储过程sp_pkeys)   

 

select COLUMN_NAME = convert(sysname,c.name)                   

from                                                           

sysindexes i, syscolumns c, sysobjects o                       

where o.id = object_id('[YourTableName]')                      

and o.id = c.id                                                

and o.id = i.id                                                

and (i.status & 0x800) = 0x800                                 

and (c.name = index_col ('[YourTableName]', i.indid,  1) or         

     c.name = index_col ('[YourTableName]', i.indid,  2) or         

     c.name = index_col ('[YourTableName]', i.indid,  3) or         

     c.name = index_col ('[YourTableName]', i.indid,  4) or         

     c.name = index_col ('[YourTableName]', i.indid,  5) or         

     c.name = index_col ('[YourTableName]', i.indid,  6) or         

     c.name = index_col ('[YourTableName]', i.indid,  7) or         

     c.name = index_col ('[YourTableName]', i.indid,  or         

     c.name = index_col ('[YourTableName]', i.indid,  9) or         

     c.name = index_col ('[YourTableName]', i.indid, 10) or         

     c.name = index_col ('[YourTableName]', i.indid, 11) or         

     c.name = index_col ('[YourTableName]', i.indid, 12) or         

     c.name = index_col ('[YourTableName]', i.indid, 13) or         

     c.name = index_col ('[YourTableName]', i.indid, 14) or         

     c.name = index_col ('[YourTableName]', i.indid, 15) or         

     c.name = index_col ('[YourTableName]', i.indid, 16)           

     )    

4、外键   

 

select t1.name,t2.rtableName,t2.name     

from     

(select col.name, f.constid as temp     

from syscolumns col,sysforeignkeys f     

where f.fkeyid=col.id     

and f.fkey=col.colid     

and f.constid in     

( select distinct(id)      

   from sysobjects     

   where OBJECT_NAME(parent_obj)='YourTableName'     

   and xtype='F'     

  )     

) as t1 ,     

(select OBJECT_NAME(f.rkeyid) as rtableName,col.name, f.constid as temp     

from syscolumns col,sysforeignkeys f   www.2cto.com      

where f.rkeyid=col.id     

and f.rkey=col.colid     

and f.constid in     

( select distinct(id)     

   from sysobjects     

   where OBJECT_NAME(parent_obj)='YourTableName'     

   and xtype='F'     

)     

) as t2     

where t1.temp=t2.temp 


三、Access 

 

1、所有表清单 

 

conn.Open(); 

    dt= conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" }); 

2、表结构 

 

conn.Open(); 

 

   dtColumnsInfo = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Columns, new object[] { null, null, strTableName,null }); 

 


 

 

 

作者 nj_apple_tree

点击复制链接 与好友分享!回本站首页
上一篇:MongoDb不能同步之服务器时间不一致的问题
下一篇:SQLite恢复技术简介
相关文章
图文推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站