美文网首页
用SQL输出Oracle表结构(包括主键、外键)

用SQL输出Oracle表结构(包括主键、外键)

作者: Quick_5413 | 来源:发表于2021-01-21 20:59 被阅读0次

with M as

(SELECT t.table_name,

t.column_NAME,

t.DATA_TYPE || '(' ||t.DATA_LENGTH || ')' datatype,

t1.COMMENTS

FROM User_Tab_Columnst,

User_Col_Comments t1,

USER_TABLES T2

WHERE t.table_name =t1.table_name

AND t.column_name = t1.column_name

AND T.TABLE_NAME = T2.TABLE_NAME

ORDER BY T1.table_name),

P as (select P.table_name,

C.column_name

from user_constraints P,

user_cons_columns C ,

USER_TABLES T

whereP.constraint_type='P'

andP.table_name = T.TABLE_NAME

andP.constraint_name=C.constraint_name),

R as

(Select a.Owner fowner,

a.Table_Name ftable,

c.Column_Name fcolumn,

b.Owner mowner,

b.Table_Name mtable,

d.Column_Name mcolumn,

c.Constraint_Name fname,

d.Constraint_Name mname

From User_Constraints a,

user_Constraints b,

user_Cons_Columns c,

user_Cons_Columns d

Where a.r_Constraint_Name =b.Constraint_Name

And a.Constraint_Type = 'R'

And b.Constraint_Type = 'P'

And a.r_Owner = b.Owner

And a.Constraint_Name = c.Constraint_Name

And b.Constraint_Name = d.Constraint_Name

And a.Owner = c.Owner

And a.Table_Name = c.Table_Name

And b.Owner = d.Owner

And b.Table_Name = d.Table_Name)

select M.table_name,

M.colUMN_NAME,

M.datatype,

M.comments,

(select count(*)

from P

where P.table_name=M.table_name

and P.column_name=M.column_name

) as是否主键,--0表示是非主键,非0表示是主键

(select mtable

from R

where R.ftable=M.table_name

and R.fcolumn=M.column_name

and rownum=1

) as外键表

from M;

相关文章

  • 用SQL输出Oracle表结构(包括主键、外键)

    with M as (SELECT t.table_name, t.column_NAME, t.DATA_TYP...

  • 2018-11-26 oracle查询表信息(索引,外键,列等)

    oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大...

  • Oracle基础

    Oracle 回顾 键保留表 : 举例: A表:id是主键, name, pid外键 B表:id主键 name...

  • 09_MySQL多表 & JDBC

    MySQL多表 外键 主表主键和从表外键 ==(从表的外键引用主表的主键)== 从表的外键类型必须和主表的主键类型...

  • SQL的主键和外键约束详解及用途

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能...

  • SQL的主键和外键约束

    SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值。 (1)插入非空值时,如果主键表中没有这个值,则不能...

  • Sql知识

    主键外键 主键:PRIMARY KEY 外键:FOREIGN KEY 创建SQL FOREIGN KEY关于数据库...

  • sqlserver 2008 r2 主外键建立

    1。右键要建立的外检列字段,2.选择关系 外键表就是要建外键的表, 主键表是因为外键在另一个表上是主键。所以叫做主键表

  • 数据表间关系

    一对多关系 表一建立主键、并将表二的主键作为外键 表二建立主键 一对一关系 表一建立主键、并将表二的主键作为外键,...

  • oracle对象

    回顾 键保留表 : 举例: A表:id是主键, name, pid外键 B表:id主键 name select A...

网友评论

      本文标题:用SQL输出Oracle表结构(包括主键、外键)

      本文链接:https://www.haomeiwen.com/subject/qiadzktx.html