oracle怎么判断外键,oracle 外键

在oracle中,主键,外键,主码,候选码等概念之间的区别,有点混,麻烦用比较通俗的语言解释一下,谢谢!

概念性的回答,百度有很多,这里就通俗一点说~

站在用户的角度思考问题,与客户深入沟通,找到太湖网站设计与太湖网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计、成都做网站、企业官网、英文网站、手机端网站、网站推广、域名注册、虚拟空间、企业邮箱。业务覆盖太湖地区。

简单点说:

1、主键,就是唯一能标示表中每一条记录的存在,记住,是唯一,就好比---人口信息表(姓名,性别,身份证号),这里面有几亿人,要确定到底是找哪位,只有通过身份证号,身份证号这个字段就可以设为主键。当然,它也可以由几个字段组成,

如---成绩表(学号,课程号,成绩),这里,学号和课程号是主键,因为这两个字段合在一起,才能确定某一条成绩记录,如A君的数学成绩...

2、外键,通俗点,就是引用别人的字段,不是自家产的。

如--员工表(员工号,姓名,部门号)

部门(部门号,部门名称,部门经理)

在这里,员工表的主键是员工号,而部门表的主键是部门号,由于员工表中的部门号必须要依赖于部门表,所以,员工表中的部门号就是外键

再通俗点,就是车牌别人定,我只是套牌的。

3、主码,其实跟主键是一样的,它也是可以唯一标示每一条记录的存在,叫法不同而已。。。如 工人(工人ID,身份证ID,工资,姓名)

在这里,工人ID和身份证ID都可唯一标示记录,我挑工人ID做主码,那么,身份证ID就充当候选码咯,反正它也能干这活,如果身份证ID做主码,那么工人ID就做候选码咯!

在oracle中查询表之间外键的执行语句怎么写?

查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select * from user_constraints c where c.constraint_type = 'R' and c.table_name = 要查询的表

查询外键约束的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键名称

查询引用表的键的列名:

select * from user_cons_columns cl where cl.constraint_name = 外键引用表的键名

查询表的所有列及其属性

select t.*,c.COMMENTS from user_tab_columns t,user_col_comments c where t.table_name = c.table_name and t.column_name = c.column_name and t.table_name = 要查询的表

oracle怎么查看外键在哪个表

查找表的外键(包括名称,引用表的表名和对应的键名,下面是分成多步查询):

select

*

from

user_constraints

c

where

c.constraint_type

=

'r'

and

c.table_name

=

要查询的表

查询外键约束的列名:

select

*

from

user_cons_columns

cl

where

cl.constraint_name

=

外键名称

查询引用表的键的列名:

select

*

from

user_cons_columns

cl

where

cl.constraint_name

=

外键引用表的键名

查询表的所有列及其属性

select

t.*,c.comments

from

user_tab_columns

t,user_col_comments

c

where

t.table_name

=

c.table_name

and

t.column_name

=

c.column_name

and

t.table_name

=

要查询的表

在ORACLE数据库中,什么是主键?什么是外键?

主键就是自己设定的字段,该字段不能为空,而且该字段的值必须唯一,外键就是在主表中可以重复出现,但是它是另一个表的主键,对过外键使两个表相关.

Oracle查看表索引、主键、外键、约束

查看表索引、主键、外键、约束

(包括索引名,类型,构成列)

SELECT T.*, I.INDEX_TYPE

FROM USER_IND_COLUMNS T,USER_INDEXES I

WHERE T.INDEX_NAME = I.INDEX_NAME

AND T.TABLE_NAME = I.TABLE_NAME

AND T.TABLE_NAME = 'ORG_DLF' ----指定表

AND T.TABLE_OWNER= 'ODSRPT_SIT2'; ----指定用户

(包括名称,构成列)

SELECT CU.*

FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU

WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME

AND AU.CONSTRAINT_TYPE = 'P'

AND AU.TABLE_NAME = 'LOAN_APPLICATION_FEE' -----指定表名

AND CU.OWNER='ODSRPT_SIT2'; -----指定用户名

(包括表名称,构成列)

SELECT CU.COLUMN_NAME,AU.TABLE_NAME

FROM DBA_CONS_COLUMNS CU, DBA_CONSTRAINTS AU

WHERE CU.CONSTRAINT_NAME = AU.CONSTRAINT_NAME

AND AU.CONSTRAINT_TYPE = 'U'

AND AU.OWNER='RPT_UAT2' -----指定用户名

AND AU.TABLE_NAME = 表名 ; -----指定表名

Select a.Owner 外键拥有者,

a.Table_Name 外键表,

c.Column_Name 外键列,

b.Owner 主键拥有者,

b.Table_Name 主键表,

d.Column_Name 主键列,

c.Constraint_Name 外键名,

d.Constraint_Name 主键名

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;


本文题目:oracle怎么判断外键,oracle 外键
本文URL:http://myzitong.com/article/heidjp.html