今天,因为项目有3张表,而且3张表之间,都有关联,我又重温习了一个主键与外键的运用:
--删掉表
drop table dept
drop table emp
--创建dept表,
create table dept(deptno int primary key,dName nvarchar(30),loc nvarchar(30))
--这里是dept(deptno)主键指向外键emp(deptno),没有联级删除与更新
create table emp(empno int primary key
,eName nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
deptno int foreign key references dept(deptno));
--以后为创建表时,并创建联级关系
create table emp(empno int primary key
,eName nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
--联级删除
deptno int foreign key references dept(deptno) on delete cascade);
--联级更新
--deptno int foreign key references dept(deptno) on update cascade);
--如果是创建表时,没有创建联级关系,可以再增加
create table emp(empno int primary key
,eName nvarchar(30),
job nvarchar(30),
mgr int,
hiredate datetime,
sal numeric(10,2),
comm numeric(10,2),
deptno int);
--这段语句就是增加联级的删除与更新
alter table emp add constraint FK_deptno foreign key (deptno) references dept(deptno) ON UPDATE CASCADE ON DELETE CASCADE
以上的操作都是在sql server 2000中进行的,以下部分是插入与删掉的数据,本人已经操作过没有问题,图片就不上传了。
insert into dept values(10,'grtu','newke')
insert into dept values(20,'sl','shengchang')
insert into emp(empno,eName,job,mgr,hiredate,sal,deptno)values
(103,'dengping','cleck',9,'1985-9-12',1300.00,10)
insert into emp(empno,eName,job,mgr,hiredate,sal,deptno)values
(106,'milik','cleck',9,'1985-9-12',1300.00,30)--deptno这时为30时,就违反了主键定义,因为30不存在,这就是外键指向主键的运用
insert into emp(empno,eName,job,mgr,hiredate,sal,deptno)values
(105,'lichong','IPQC',93,'1990-2-22',1400.00,10)
insert into emp(empno,eName,job,mgr,hiredate,sal,deptno)values
(104,'lichong','IPQC',93,'1990-2-22',1400.00,20)
select * from emp
select * from dept
delete from emp where empno= '105';
--联级删除
delete from dept where deptno= '10';
--联级更新
update dept set deptno=11 where deptno =10;
分享到:
相关推荐
本文通过详细解释主键和外键的概念、选择原则和实践应用,希望能够帮助读者更好地理解和运用这些数据库设计的基本元素。在设计数据库时,始终牢记数据完整性和业务逻辑,以构建健壮、可维护的数据架构。
主键和外键本身自带唯一性约束,但它们的主要目的是确保数据完整性,而索引的目的是提升查询性能。 关系型数据表之间存在多种关联关系,包括一对一、一对多和多对多。一对一关系相对少见,一般出现在将大型表拆分为...
在实际的数据库设计和管理过程中,了解并熟练运用主键和外键是至关重要的。主键保证了数据的唯一性,而外键保证了数据的关联性和一致性。这两者的有效使用,不仅有助于维护数据的完整性和准确性,还能提高数据库查询...
本篇文章将深入探讨两种实现一对一关联的方式:主键关联(Primary Key Join)和唯一外键关联(ForeignKey Join),并结合源码和实际工具进行详细讲解。 一、主键关联(Primary Key Join) 1. 主键关联的概念: ...
在SQL Server 2005中,获取表结构包括字段、主键、外键和递增字段以及描述信息,可以通过执行特定的SQL语句来实现。以下是对这些知识点的详细说明: 1. **获取基本字段属性** 使用`syscolumns`和`systypes`系统...
外键是数据库设计中的关键概念,它定义了一个表中的字段与另一个表的主键之间的关系。外键字段可以是多列,而不仅仅是单个字段。通过外键,我们可以确保一个表(子表)中的数据与另一个表(父表)中的数据保持一致...
2. 主键与外键:主键用于唯一标识实体,外键则建立实体间的关联。叶子节点实体可以不设主键但必须有外键,它们共同构成数据间的桥梁。数据库设计专家强调键的重要性,因为主键与外键是数据模型的核心元素。 3. 基本...
主键与外键是数据库设计中的核心概念之一。一般而言,一个实体不应该既无主键又无外键。在实体关系图(E-R图)中,位于叶子位置的实体可以定义主键,也可以不定义主键(因为它没有子实体),但必须拥有外键(因为它有...
2. **主键与外键**:主键是标识实体唯一性的字段,而外键用于关联不同表之间的记录。通常,每个实体至少有一个主键或外键。主键是实体的抽象表示,主键和外键的组合是建立实体间联系的关键。 3. **基本表的性质**:...
在数据库技术中,外键约束是一项至关重要的概念,它确保了数据的一致性和完整性,是关系数据库模型中的关键组成部分。...通过这些实践,你可以更好地理解和运用外键约束,提升数据管理与维护的能力。
通过定义一个表中的列与另一个表中的主键之间的链接,可以实现数据的一致性和完整性。在Microsoft SQL Server这样的关系型数据库管理系统中,了解并管理这些外键对于保持数据的准确性和提高查询效率至关重要。 本篇...
2. **主键与外键**:主键用于唯一标识一个实体,而外键用于关联不同的表。在设计中,非叶子节点实体通常需要定义主键,而叶子节点实体至少需要定义外键。主键和外键的搭配是数据完整性的重要保障。 3. **基本表的...
在这种情况下,我们可以通过主键外键关联来实现一对一关系。 实现一对一主键关联的方法有两种:单向和双向。单向关联是指一个表知道另一个表的存在,而另一个表并不知道这个关系。双向关联则意味着两个表都包含了...
4. **多对多联系的处理**:多对多的联系需要创建一个新的关系表,这个表包含两个实体各自的主键,并将它们作为联合主键或外键。 5. **弱实体的处理**:对于弱实体,除了将其转换为独立的表之外,还需要在该表中加入...
2. **实体与主键、外键**:实体通常代表基本表,主键用于唯一标识实体,而外键用于连接不同表。在E-R图中,叶子实体可以没有主键但必须有外键,因为它们依赖于其他实体。 3. **基本表的特性**: - **原子性**:...