`
longhua2003
  • 浏览: 13519 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

主键与外键的运用

阅读更多
今天,因为项目有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;
分享到:
评论

相关推荐

    数据库设计思路.doc

    主键与外键的设置 为了确保数据在数据库中的唯一性和关联性以及完整性,有必要对数据库进行 主键与外键的设置。 要善于识别与正确处理多对多的关系 中间表、报表和临时表 防止数据库设计打补丁的方法是"三少原则" 2...

    SQL数据库应聘人员面试时经常被问的问题.rar

    当你问到关于主键和外键的问题时,后面的问题都十分有难度,因为答案可能会更难解释和说明,尤其是在面试的情形下。 你能向我简要叙述一下SQL Server 2000中使用的一些数据库对象吗? 你希望听到的答案包括这样一些...

    .net ORM 代码生成器 v1.1

    系统实现了比较完整的O-R映射,数据库中的所有逻辑对象表,列,字段,主键,外键,Null,Default,唯一索引都在类里得到了体现,同时还支持代码表,代码列,自增长机制 系统支持完整的数据操作功能,支持带事务功能...

    MySQL 基础 - 约束概述与演示.md

    通过这份文档,您学习并了解了MySQL数据库中常用的约束类型:主键约束、外键约束、唯一约束和检查约束。每个约束类型都通过示例代码展示了其作用和使用方法,帮助您更好地理解和运用这些约束。 这些约束能够保证...

    百度地图毕业设计源码-MyStudyNote:我的学习历程笔记

    3.2后台设计:根据E-R图创建表字段,创建表间关联约束(主键,外键,非空,检查约束等等) 4.编码任务: 4.1前台页面编码: 4.2后台编码:     > 系统搭建:采用当前软件行业比较流行的JavaWeb技术,运用MVC分层...

    bbs论坛项目运用SSH框架Oracle数据库编写的一个简单示列项目

    userid(引用用户表外键),cid(引用帖子表主键) --用户表:(users) -- Create table create table USERS ( USERID INTEGER not null, USERNAME VARCHAR2(20) not null, PASSWORD VARCHAR2(20) not null, SEX ...

    dotnetcoding ORM 代码生成器

    数据库中的所有逻辑对象表,列,字段,主键,外键,Null, Default,唯一索引都在类里得到了体现,同时还支持代码表,代码列,自增长机制. 系统支持完整的数据操作功能,支持带事务功能的数据操作,提供数据自动装载功能,有很强...

    数据库系统概论(王珊第五版)数据库实验9.doc

    掌握主键约束、外键约束及check约束的用法; 2. 掌握默认值约束和默认值对象的应用; 3. 掌握用触发器实现参照完整性的方法。 二、实验学时 2学时 三、实验要求 1. 了解约束、默认值; 2. 了解触发器的定义方法; 3...

    名片管理系统-数据库课程设计.doc

    "课程名称: " 数据库原理与运用 " " " 名片管理系统 " "系 别: " " "年级专业: " " "学 号: " " "姓 名: " " "任课教师: " "成绩: " " " " " "2015 "年 " "用户序号(主键) "nchar(8) "用于用户表主键 " ...

    程序员的SQL金典.rar

     10.5 业务主键与逻辑主键  10.6 NULL的学问  10.6.1 NULL与比较运算符  10.6.2 NULL和计算字段  10.6.3 NULL和字符串  10.6.4 NULL和函数  10.6.5 NULL和聚合函数  10.7 开窗函数  10.7.1 开窗函数简介  ...

    数据库系统原理实验大纲.doc

    实验目的与要求 通过上机实践,了解DBMS的体系结构,熟练掌握SQL的数据定义、数据操纵和数据控 制语言的运用。 考核知识点与考核要求 1. SQL Server的体系结构. 1) SQL Server的逻辑组件 熟练掌握数据类型和表的...

    人力资源管理系统数据库.doc

    人力资源管理系统的数据库设计..."主键 " "工号 "char(10) "外键 " "日期 "datetime "Not null " "出勤情况 "char(4) "Not null " 表5工资表 "字段名 "类型 "特殊属性 " "工号 "char(10) "主键 " "工资发放日 "date

    保险-数据库课程设计---副本.doc

    " " "个人编号 "文本(50) "有(无重复) "外键,NOT NULL " 4、机构信息数据表 "字段名称 "数据类型 "索引 "其他 " "机构编号 "文本(50) "有(无重复) "主键,NOT NULL " "机构名称 "文本(50) " "NULL " 5、...

    数据库的设计和管理规范.doc

    4 1.1 外部设计 4 1.1.1 类型划分 4 1.1.2 使用它的程序 4 1.1.3 标识符和状态 4 1.2 结构设计 6 1.2.1 概念结构设计 6 1.2.2 逻辑结构设计 6 1.3 运用设计说明 7 1.3.1 数据库字典的设计 7 1.3.2 安全保密的设计 7 ...

    火车订票管理系统课程设计.doc

    退票 6 2.3数据库逻辑结构 6 2.4数据库中地约束 7 2.4.1主键约束 7 2.4.2外键约束 7 2.4.3 CHICK约束 7 2.4.4 DEFAULT约束 8 2.4.5长度约束 8 3 各功能模块和流程图 9 3.1系统软件结构设计 9 3.2系统流程图 9 4 系统...

    图书管理系统

    1) 给每个表实施主键及外键约束。 2) 设定缺省约束。如性别。 3) 设置非空约束如图书信息表中的书名。 4) 实施CHECK约束。如ISBN类别表中的可借数量小于馆藏数量。 5) 实施规则。如身份证号码必须为15为或...

    Java面试宝典2020修订版V1.0.1.doc

    12、主键和外键的区别? 44 13、在数据库中查询语句速度很慢,如何优化? 44 14、数据库三范式是什么? 44 15、union和union all有什么不同? 45 16、char、varchar2、varchar有什么区别? 45 17、Oracle和Mysql的区别...

    基于Java的教师档案管理系统的设计样本.doc

    E- R模型向关系数据库模型转换应遵循下列原则: *每一种实体要转换成一种关系 *所有主键必要定义非空(NOT NULL) *对于二元联系应按照一对多、弱对实、一对一、多对多等联系来定义外键。 依照E- R模型,教师档案...

    培训中心信息管理系统-数据库.doc

    " "表1-2 学员文件关系表 " "名称 " "类型 " "含义 " " " "SNO " "INT " "学员学号(主键) " " " "CM " "INT " "班级代号(外键) " " " "TOPTEACHER " "CHAR(8) " "班主任(外键) " " " "ATIME " "DATETIME " "报名...

    网吧管理系统数据库课程设计.doc

    解,能将SQL语言很好的运用,增强了自己在数据库中应用SQL语言的灵活性,其中包括 ,插入、删除、修改、查询,牵涉表和表之间的联系,主建与外键的定义,约束项的设 置,使逻辑更严密,在学习过程中,我也能过上网查...

Global site tag (gtag.js) - Google Analytics