Oracle:主外键详解
一:简介
1、主键:唯一标识一条记录,不能有重复的,不允许为空;用来保证数据完整性;主键只能有一个。
2、外键:表的外键是另一表的主键, 外键可以有重复的, 可以是空值;用来和其他表建立联系用的;一个表可以有多个外键。
3、索引:该字段没有重复值,但可以有一个空值;是提高查询排序的速度;一个表可以有多个唯一索引。
二:创建主外键
1、表中创建主外键:
1 2 3 4 5 6 7 8 9 | create table T_SCORE ( EXAM_SCORE number( 5 , 2 ), EXAM_DATE date, AUTOID number( 10 ) not null , STU_ID char ( 5 ), SUB_ID char ( 3 ), constraint PK_T_SCORE primary key (AUTOID), constraint FK_T_SCORE_REFE foreign key (STU_ID) references T_STU (STU_ID) ) |
2、表外增添主外键:
1 2 3 4 5 | -增加主键 alter table 表名 add constraint 主键名 primary key (字段名 1 ); -增加外键: alter table 表名 add constraint 外键名 foreign key (字段名 1 ) references 关联表 (字段名 2 ); |
三:主外键关联查询
user_constraints 是表约束的视图。
user_cons_columns 是表约束字段的视图
(一般通过owner,constraint_name,table_name进行关联)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | select a.owner 主键拥有者, a.table_name 主键表, c.column_name 主键列, a.constraint_name 主键名称, b.owner 外键拥有者, b.table_name 外键表, d.column_name 外键列, b.constraint_name 外键名称 from user_constraints a, user_constraints b, user_cons_columns c, user_cons_columns d where a.constraint_type = 'P' and b.constraint_type = 'R' and a.constraint_name = c.constraint_name and b.constraint_name = d.constraint_name and a.owner = c.owner and b.owner = d.owner and a.table_name = c.table_name and b.table_name = d.table_name; |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 上周热点回顾(3.3-3.9)
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」