oracle 查看主键信息,Oracle中查询表字段基本信息、主键、外键(整理)

背景

因为项目某些模块的数据结构设计没有严格按照某规范设计,所以只能从数据库中查询数据结构,需要查询的信息如下:字段名称、数据类型、是否为空、默认值、主键、外键等等。

在网上搜索了查询上述信息的方法,总结如下:

1. 查询表基本信息

select

utc.column_name,utc.data_type,utc.data_length,utc.data_precision,

utc.data_Scale,utc.nullable,utc.data_default,ucc.comments

from

user_tab_columns utc,user_col_comments ucc

where

utc.table_name = ucc.table_name

and utc.column_name = ucc.column_name

and utc.table_name = 'BBSDETAIL'

order by

column_id;

order by column_id的意义是使得结果按照设计数据结构时的顺序显示。

输出:

DETAIL_ID NUMBER 22   N  明细编号

TITLE VARCHAR2 100   N  标题

CATEGORY_ID NUMBER 22   N  分类编号(外键)

DISTRICT_ID NUMBER 22   N  城市编号(外键)

ADDRESS VARCHAR2 500   Y  地址

......

2. 查询表主键

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='BBSDETAIL';

输出:

DETAIL_ID

3. 查询表外键

select

distinct(ucc.column_name) column_name,rela.table_name,rela.column_name column_name1

from

user_constraints uc,user_cons_columns ucc,

(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='BBSDETAIL') rela

where

uc.constraint_name=ucc.constraint_name

and uc.r_constraint_name=rela.r_constraint_name

and uc.table_name='BBSDETAIL';

输出:

CATEGORY_ID BBSCATEGORY CATEGORY_ID

DISTRICT_ID BBSDISTRICT DISTRICT_ID

有了上述几个SQL语句,再结合程序(如:java+jxl),就可以输出如下图所示的Excel报表了。

d8dd44c9c7f0d6edeaad76ad1183c5cf.png

oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息

来源于网上整理 总结了一下oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1.查询出所有的用户表select * fro ...

oracle查询表信息(索引,外键,列等)

oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助:1.查询出所有的用户表 select * from user_tables ...

类型:Oracle;问题:oracle 查询表详细信息;结果:oracle查询表信息(索引,外键,列等)

oracle查询表信息(索引,外键,列等) oracle中查询表的信息,包括表名,字段名,字段类型,主键,外键唯一性约束信息,索引信息查询SQL如下,希望对大家有所帮助: 1.查询出所有的用户表sel ...

EF中主表和附表一起提交的话,如果主附表的主键外键已经设定。

EF中主表和附表一起提交的话,如果主附表的主键外键已经设定,如果新增同时新增主表和附表的记录,那么在EF同时提交时,不需要人为的设定附表的主表的主键值,EF会自动为附表添加外键值.

通过 jdbc 分析数据库中的表结构和主键外键

文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hib ...

第15课-数据库开发及ado.net-数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库

第15课-数据库开发及ado.net 数据库介绍,主键,外键,启动数据库,数据库身份验证方式,建表,分离数据库 1.  学习方法 2.  多涨见识 3.  比自己强的人一起,学习更强:比自己更聪明的人 ...

关系型数据库——主键&外键的

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键  比如   学生表(学号,姓名,性别,班级)  其中每个学 ...

PowerDesigner中CDM和PDM如何定义外键关系

有A.B两张表(实体),各自有id作为主键,两表是一一对应关系.但略有不同: A表一条记录可以对应0或1条B表记录,B表一条记录必须对应唯一条A表记录. 这样的关系如何在CDM或PDM中定义? 在最后 ...

Sql Server 主键 外键约束

主键约束 表通常具有包含唯一标识表中每一行的值的一列或一组列. 这样的一列或多列称为表的主键 (PK),用于强制表的实体完整性. 由于主键约束可保证数据的唯一性,因此经常对标识列定义这种约束. 如果为 ...

随机推荐

angular2开发01

// */ // ]]> angular2开发01 1. angular2 开发准备 1.1. 安装node 1.2. 安装npm 1.3. 运行qickStart 1 angular2 开发准 ...

makefile 简单介绍

使用与来源: makefile文件(可由./configure创建)被make命令读取,make 命令执行时,需要一个 Makefile 文件,以告诉 make 命令需要怎么样的去编译和链接程序. 功 ...

kvo-观察者-iOS

#import @interface Child : NSObject @property (nonatomic,assign) int ...

《C#语言和数据库技术基础》单词必备

第一章1..NET Framework   框架2.sharp            尖锐,强烈的3.application      应用程序4.devel ...

linux-redhat-iso 下载

http://archive.download.redhat.com/pub/redhat/linux/9/en/iso/i386/ http://www.jb51.net/do/plus/downl ...

Fineui js getText

需要自己写js的时候.需要取值. var ddlgenderid='';function reader(value){f(ddlgenderi ...

8.app后端和web后端的区别

很多从web后端转到app后端的小伙伴经常很茫然,不知道这两者之间有啥区别.本文通过例子,分析web后端和app后端的区别,使各位更好地把握app后端的架构. (1) app后端要慎重考虑网络传输的流 ...

6-CSS

HTML Style Tags CSS stands for Cascading Style Sheets. CSS describes how HTML elements are to be dis ...

查找单链表中倒数第K个位置上的结点,若查找成功返回该节点的data域,若不成功只返回0

算法的基本设计思想:定义两个指针变量p和q  初始时均指向头结点的下一个结点(即链表的第一个结点)p沿链表移动,当p移动到第k个结点时,q指针开始与p指针同时移动,当p指针移动到最后一个结点时,q指针 ...

[No0000129]WPF(1/7)开始教程[译]

概要 在我使用了半年多 WPF 后,是时候写点关于 WPF 基础方面的东西了.我发表了一系列针对具体问题的文章.现在是到了让大家明白为什么说WPF是一款在界面开发上带来革命的产品了. 本文针对初级-中 ...

参与评论 您还未登录,请先 登录 后发表或查看评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:数字20 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值