相关资料键保留表给的定义很模糊,经过无数次验证,我对键保留表的理解是:一个复杂视图,指由多张基表组成的视图,若需要出现键保留表的话则必须保证基表中至少有一张表是有主键的!(可利用EMP表和DEPT表生成新的无约束表创建视图测试,无键保留表)
其次,这两张表在进行关联时(可以是表连接也可以是多表查询,但一定要有关联条件!其关联条件其实相当于两表的主外键关系),如果关联条件是使用了主键的话,则外键表为键保留表。
还是拿t2,t3这2张表来举例
t2表内容如下:
SID UNAME
-------- ---------
100 fw
2 sd
3 accplz
4 jr
5 bigjr
6 "Feng"
7 FengWen
t3表的内容如下:
SID T3_UNAME
----- -----------
1 fw
2 sb
3 accplz
4 jr
5 bigjr
6 asda
7 fhj
那么创建连接视图:create or replace view t2_t3_view as select m1.sid,uname,t3_uname from t2 m1,t3 m2
where m1.sid = m2.sid;
这时候,通过update t2_t3_view 修改表t2里的uname,或者是表t3里的t3_uname都是不行的,因为现在这2张表都是非键值保留表。那么,如果alter table t2 add constraint pk_sid primary key(sid)也就是将t2表里的sid设为主键的话,那么通过update t2_t3_view 可以修改t3_uname的值,而不能修改uname或sid的值。因为这时t3是外键表,也就是键保留表,而t2不是。那么,反过来,将t2的sid上的约束去掉,将t3的sid设为主键,那么可以通过update t2_t3_view 修改uname或sid的值,但不能修改t3_uname的值。也就是这时t2变成键保留表了,而t3不是。
最后,如果t2,t3里的sid列都既是外键又是主键的话,那么t2,t3都会变成键保留表。
分享到:
相关推荐
通过实践题目加深对各种完整性约束的理解和应用。 **4.5 给已有表添加、删除约束的方法** 可以在表创建之后使用 `ALTER TABLE ADD CONSTRAINT` 添加约束,使用 `ALTER TABLE DROP CONSTRAINT` 删除约束。 #### 第...
《剑破冰山:Oracle开发艺术—数据库编程规范》这一标题和描述,直指IT行业中一个常见的痛点:数据库编程的规范性与效率问题。在软件开发领域,尤其是涉及到Oracle数据库的应用场景下,开发者与数据库管理员(DBA)...
- **创建course_tmp表,结构与course表相同,但不插入数据**:在Oracle中,你可以通过以下方式创建一个空表,其结构与`course`表完全相同: ```sql CREATE TABLE course_tmp AS SELECT * FROM course WHERE 1 = 2...
### PL/SQL Developer 7.0 用户指南:深入解析与应用 ...通过对本操作手册的学习,开发者能够深入了解PL/SQL Developer的各项特性,并将其应用于实际工作中,从而实现更高水平的数据库应用程序开发。
- **队列表定义编辑器**:管理队列中的数据。 - **用户定义编辑器**:管理数据库用户账户。 - **角色定义编辑器**:分配和管理用户权限。 - **概要文件定义编辑器**:设置资源限制,控制用户行为。 - **数据库连接...
微型计算机,也称为个人计算机(PC),是我们日常生活中普遍使用的计算设备。这些小巧、高效的系统让我们能够进行各种复杂的任务,包括数据处理、网络通信、娱乐和教育等。 首先,我们从硬件的角度来探讨微型计算机...
- **Java中的`goto`**:Java不支持传统的`goto`语句,但保留了`goto`关键字供将来使用。 - **基本数据类型及其范围**: - `byte`:1个字节,范围为-128至127。 - `short`:2个字节,范围为-2^15至2^15-1。 - `int...
这个“精简绿色版”是为了方便开发者和学习者快速启动和运行而设计的,它通过压缩和优化,使得安装包的大小大大减小,解压后只有十几兆,非常适合那些对磁盘空间有限制或者追求便携性的用户。 Delphi 7的主要特点是...
在Linux系统中,目录结构是其核心组成部分,对于CentOS7这样的Linux发行版来说,理解并熟悉这些目录的用途至关重要。下面将详细解释标题和描述中提到的几个关键目录的作用和功能。 1. **bin** 目录:这是存放系统...