版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、用主外键实现表关联1.为学生表、父母表创建一个主键a.通过图形化界面为学生表创建主键。 右键单击要设为主键的 单元格,选择“设置主键”命令。b.通过查询界面创建主键例如:为父母表创建主键。(代码7-1)2.什么是主键主键是表中的一列或者多列数据,用来惟一标识一行数据.在表中,不允许有主键相同的行存在.在受主键约束的列中,不能有空值(NULL)出现。为了有效实现数据的管理,每一张表有应该有一个主键,而且只能有一个。创建主键的方法:a.创建表时,定义主键.b.表创建好后,添加一个主键.a.创建表时创建主键(1)创建表时定义主键.(代码7-2)/*在School数据库中创建一个带主键的test表格,
2、主键列为id*/USE SCHOOLGOCREATE TABLE TEST(id INT PRIMARY KEY,name CHAR(20),city CHAR(10)GOa.创建表时创建主键(2)查看约束创建名称/*查看表格属性*/USE SCHOOLGOEXECUTE SP_HELP TESTGOa.创建表时创建主键(3)创建表时定义主键名称USE SCHOOLGO/*创建一个名字叫test1的表格*/CREATE TABLE test1(id INT CONSTRAINT pk_test1_id PRIMARY KEY,name CHAR(20),city CHAR(20)GOa.创建表
3、时创建主键(4)创建多列主键有时候需要有多个列的联合,才能惟一标识一条信息。USE SCHOOLGOCREATE TABLE book( isbn INT, -图书编号 copy_no INT, -图书副本号 book_name CHAR(20), -图书名称 CONSTRAINT pk_book_isbn_copy_no PRIMARY KEY(isbn,copy_no) -定义表级主键约束)GOb.创建表后添加主键语法:ALTER TABLE tableADD CONSTRAINT constraint_name PRIMARY KEY(column,n)USE SCHOOLGO/*创建t
4、est2表格*/CREATE TABLE test2( id INT, name CHAR(20), city CHAR(10)GOUSE SCHOOLGO/*在表格test2上添加一个名称为pk_test2_id主键约束*/ALTER TABLE test2ADD CONSTRAINT pk_test2_id PRIMARY KEY(id)GOUSE SCHOOLGO/*将表格test2的列id属性设置为not null*/ALTER TABLE test2ALTER COLUMN id INT NOT NULLGOALTER TABLE test2ADD CONSTRAINT pk_tes
5、t2_id PRIMARY KEY(id)GO无法在表test2 中可为空的列上定义PRIMARY KEY 约束错误正确3.什么是外键外键约束主要是为了维护两个表之间的一致性关系,是建立在主键的基础之上的,其值是参考主键的内容。主键的值是惟一的,不能为空,而外键的值可以是重复的、为空的,外键的数值必须在主键中出现。在同一张表中可以有多个外键,每一个外键的创建都必须有一个主键相对应,外键可以是一个列,也可以是多个列的组合。创建外键的方法a.在创建表时,定义外键b.表创建好后,添加一个外键a.在创建表时,定义外键语法:CREATE TABLE table_name(column_name data
6、typeCONSTRAINT constraint_nameFOREIGN KEYREFERENCES referenced_table_name(ref_column)a.在创建表时,定义外键(1)创建表时定义外键/*创建成年人阅读者信息表*/USE SCHOOLGO/*表格名称为adult_member*/CREATE TABLE adult_member( member_id INT, -成年读者编号 member_name CHAR(10), -成年读者姓名 memter_job CHAR10), -成年读者工作 member_gender CHAR(2), -成年读者性别 CONST
7、RAINT pk_adult_member_id PRIMARY KEY(member_id) -表格主键)GO/*创建非成年人读者信息表*/USE SCHOOLGO/*表格名称junior_member*/CREATE TABLE junior_member( member_id INT, adult_member_id INT, member_name CHAR(10), member_gender CHAR(2), CONSTRAINT pk_junior_member_id PRIMARY KEY(member_id), CONSTRAINT fk_junior_ adult_memb
8、er_id FOREIGN KEY (adult_member_id) REFERENCES adult_member(member_id)GO(2)创建数据库关系图为了能够体现表之间的关系,在SQL Server中有一种功能叫做关系图,体现着关系型数据库中,几个表之间的相互关系。即实体关系图。右键单击“数据库关系图”对象,选择“新建数据库关系图”命令。b.创建表后添加外键约束/*创建全体读者信息表*/USE SCHOOLGO/*创建名称为member表格*/CREATE TABLE member( member_id INT, -成员编号 member_name CHAR(10), -成员名
9、称 member_gendar CHAR(2), -成员性别 member_age INT, -成员年龄 CONSTRAINT pk_member_id PRIMARY KEY(member_id)GOUSE SCHOOLGO/*为表格adult_member创建一个外键约束*/ALTER TABLE adult_memberADD CONSTRAINT fk_adult_member_id_member_idFOREIGN KEY(member_id) REFERENCES member(member_id)GOUSE SCHOOLGO/*为表格junior_member创建一个外键约束*/
10、ALTER TABLE junior_memberADD CONSTRAINT fk_junior_member_id_member_idFOREIGN KEY(member_id) REFERENCES member(member_id)GO4.表关联种类表之间(也就是实体之间)有一定的关联种类,实体之间的不同种类,决定着实体或表格之间的对应关系。有的可以拆成1对1的关系,有的可以拆成1对n的关系,有的可以拆成n对n的关系,不同的关系拆成不同数量的表。在关系数据库中有3个要素:实体(Entity):客观存在的事物。例如:学生,老师,家长。属性(Attribute):实体所具有的特性。例如:学
11、生的姓名,年龄,性别。关系(Relation):实体与实体之间的关系。例如:学生和老师,学生与家长。a.一对一的关系两个实体中,如果有一个实体的数值确定了,则另一个实体的数值也就惟一确定了,反之也是如此,那么这种对应关系就是一对一(1:1).一对一的关系实体在数据库中能够拆分为两张表,为了描述表之间的关联关系,通过主外键的方式联系起来.b.一对多的关系实体A与B是一对多(1:n)的关系,是指当A中的一个值确定以后,可以对应到B中的多个值;反过来,当B中的一个值确定以后,惟一地能够对应A中的一个值.一对多的关系可以拆分成两张表,通过主外键的方式联系起来。c.多对多的关系实体A与B是多对多(m:n
12、)的关系,是指当选中A的一个数值确定后,可以对应到B中的多个值;反过来,当B中一个值确定以后也可以对应A中的多个值.多对多的关系可以拆分成为3张表,中间的关系表与其他两张表建立起主外键的关系,通过这张关系表来体现这两个实体之间的关系。5.实现学生、老师、家长3张表的关联/*为学生表格创建主键*/USE SCHOOLGOALTER TABLE studentALTER COLUMN id INT NOT NULL -将列id设置为不为空GOALTER TABLE stduentADD CONSTRAINT pk_student_id PRIMARY KEY(id)GO/*为老师表格创建主键*/U
13、SE SCHOOLGOALTER TABLE teachersALTER COLUMN id INT NOT NULL -将列id设置为不为空GOALTER TABLE teachersADD CONSTRAINT pk_teachers_id PRIMARY KEY(id)GO/*为家长表格创建主键*/USE SCHOOLGOALTER TABLE parentsALTER COLUMN id INT NOT NULL -将列id设置为不为空GOALTER TABLE parentsADD CONSTRAINT pk_parents_id PRIMARY KEY(id)GO/*建立学生、老师
14、、家长之间的外键关联性*/USE SCHOOLGOALTER TABLE student/*为学生与家长间建立外建关联关系*/ADD CONSTRAINT fk_student_parents_id_parents_idFOREIGN KEY(parents_id)REFERENCES parentsGO/*为学生与老师间建立外建关联关系*/ALTER TABLE studentADD CONSTRAINT fk_student_teacher_id_teachers_idFOREIGN KEY(teacher_id)REFERENCES teachersGO6.删除主外键删除是有一定的顺序的。要先删除外键的信息,然后再删除主键,否
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中考文言文复习资料大全课外文言文冲刺课件
- 不等式证明复习课课件
- 单位管理制度合并选集职员管理篇十篇
- 单位管理制度分享合集【职员管理篇】
- 《诗歌鉴赏表达技巧》课件
- 《企力管理咨询》课件
- 单位管理制度呈现大全【职员管理篇】
- 《转基因生物安全性》课件
- 4S店维修安全管理制度
- 七夕情人节课件
- 回转工作台设计毕业设计
- 2022年台州学院计算机科学与技术专业《计算机组成原理》科目期末试卷A(有答案)
- 人工开挖土方施工方案
- 佛山市顺德区2023-2024学年四上数学期末质量检测模拟试题含答案
- 昆明市公交集团车载视频监控平台升级方案20191025
- 一流课程申报
- 高中体育特长生名校报考路径分析课件
- 主要建筑材料碳排放因子查询表
- 建筑施工室内装饰设计施工图讲解
- 冠寓运营管理手册
- 玻璃幕墙施工方案幕墙
评论
0/150
提交评论