一、定义与作用

主键:表中能够唯一地辨别事物的属性。通过主键能够查询出表中一条完整的记录,同时使用主键能防止表中出现重复的记录,避免了数据的冗余。

外键:通俗讲就是表中一个属性是来自另一张表的主键,该属性被称为该表的外键,外键可以有不止一个。外键存在的意义就是将事物与事物之间联系起来。

二、SSMS设置表的主键与外键

1、利用SQL语句建立查询设置

举了一个学生、课程以及学生成绩关系表的例子:

--代码
create table [表名] (属性名 类型 primary key,属性名 类型 foreign key references [外键来自的表](外键的属性名),属性名 类型 not null,属性名 类型 null,···  ···);--实例
create table Student(                        --创建Student表Stu_id varchar(10) primary key,          --学号Stu_id设置为主键Stu_name nvarchar(10) not null,          --学生姓名Stu_sex nvarchar(2) default '男');       --学生性别,设置默认值为'男'create table Course(                         --创建课程信息表CourseCourse_id varchar(4) primary key,        --课程编号Course_id设置为主键Course_name varchar(10) not null);       --课程姓名create table StudentGrade(                                            --创建成绩表stu_id varchar(10) foreign key references Student(Stu_id),        --学生学号设置为外键Course_id varchar(4) foreign key references Course(Course_id),    --课程号设置为外键Grade int null);                                                  --学生成绩

2、利用鼠标点击操作创建(SSMS环境下)

1) 设置主键

a.在已创建Student表的前提下,点击Student表,右击,选择<设计>

b.选择属性Stu_id,右击,选择设置主键

设置完成,Course表主键设置同上。

2)设置外键

a.选择StudentGrade表,如1)中a所示选择<设计>

b.选择属性Stu_id,右击,选择<关系>

c.在弹出的窗口选择<添加>

d.点击表和列规范最右边的三个小点(白色背景可能看不到,但点最右边也差不多了)

e.关系名可以重新编辑,最好是能让自己记得住或看得懂含义的名字。将主键表和外键表设置完后点击右下方确认即可。

三、主键表与外键表(个人的总结与反思...)

刚开始上课的时候我就有点搞不清主键表与外键表,特别是设置的这张图里,(假设正在设置的这张StudentGrade表称为本表,其他表相对地称为外表),我认为外键表应该是指外键本来所在的表,即外表,因此应该设置为Student才对,但是这个框框一直编辑不了;而主键表应该指我正在编辑的这张StudentGrade表才对,但是当选择StudentGrade之后,下面列选项的框框就变成空的,没有列可选。

但是将两个操作互换后又能得到想要的结果,所以当时就半懵半混过去了。

然后偶然听到郝斌老师的课之后才恍然大悟。

首先,主键表应该是指外键所来自的那个表,即例子中的Student表,在Student表中Stu_id是该表的主键,因此该表称为主键表;而外键表则指Stu_id扮演外键的时候所在的表,即例子中StudentGrade表。

SQL Server:主键与外键设置与相关理解相关推荐

  1. mysql 删除外键 sql语句_sql server ql语句删除外键和删除

    sql server ql语句删除外键和删除 alter table tablename add constraint ordersrelationship foreign key mployeeid ...

  2. 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量

    文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...

  3. SQL Server的主键与外键约束

    SQL Server的主键与外键约束SQL Server有许多的重要知识,开始也说过许多的SQL知识了.SQL Server中的约束也是一个重要性的知识,下面我来说说关于SQL Server约束的知识 ...

  4. SQL的主键和外键的设置语法

    SQL的主键和外键的作用 SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表 ...

  5. SQL SERVER 数据库主键和外键的思考

    SQL SERVER 数据库主键和外键的思考 什么是主键: 主键是指表中一个列或者列的组合,其值能够唯一的标识表中的每一个行.这样的一列或者多列成为表的主键,通过它可以强制表的实体完整性.当创建或者更 ...

  6. SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建

    文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...

  7. SQL Server主键约束

    A. SQL Server主键约束 PRIMARY KEY简介 主键是唯一标识表中每一行的列或一组列.可以使用 PRIMARY KEY 约束为表创建主键. 如果主键只包含一列,则可以将 PRIMARY ...

  8. SQL的主键和外键的作用

    SQL 的主键和外键的作用: 外键取值规则:空值或参照的主键值 (1)插入非空值时,如果主键值中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,可以在建外键 ...

  9. SQL数据库管理系统的优化方案(表的主键、外键、索引设计)

    在基本表设计中,表的主键.外键.索引设计占有非常重要的地位,但系统设计人员往往只注重于满足用户要求,而没有从系统优化的高度来认识和重视它们.实际上,它们与系统的运行性能密切相关.现在从系统数据库优化角 ...

最新文章

  1. 关于NB-IoT,没有比这篇更通俗易懂的啦!
  2. 聊一聊:下班后的消息,要不要回?
  3. 转:a标签中如果有button, 那么在IE下就不能跳转到herf的链接
  4. abap CA CO CS等操作符
  5. 设计数据层组件并在层间传递数据
  6. Spring 框架核心概念IoC 随笔
  7. 关于android中postDelayed方法的讲解
  8. Ubuntu系统下载缓慢,以及更新源卡住不动(终极解决方案)
  9. 三十而已,工程师如何做好职业成长?
  10. 下行物理信道rs_5G物理层服务模型
  11. opencv 直方图投影
  12. python 功能代码是什么_Python功能代码
  13. Windows10使用命令行打开3389_如何在Windows 10上安装Python 3和设置本地编程环境
  14. c语言中dot作用,编程小组功能介绍及使用说明
  15. 排序(二分插入排序)
  16. vim字符串全局替换
  17. 企业级静态代码分析工具清单
  18. 网站速度优化4个实用办法
  19. win10配置计算机时强制关机,老鸟讲解Win10设置远程系统强制关机的详尽处理要领...
  20. 简易的MySQL主从复制

热门文章

  1. 塞尔将向阿里巴巴集团总裁迈克尔埃文斯汇报工作
  2. ubuntu安装opencv无法下载IPPICV的问题 ippicv_2020_lnx_intel64_20191018_general.tgz
  3. 本科毕业论文评语-优秀,良好,中等,及格
  4. http网页状态码大全查询
  5. 基于Plaxis 2D的HSM模型在基坑开挖中的应用
  6. 本地搭建电影网站:使用cpolar发布局域网maccms10网站 3/3
  7. apicloud的ios和Android,APICloud开发者进阶之路|自己App加入系统分享
  8. ruby protect_from_forgery ???????
  9. vue2.6 + elementUI 汽车管理系统
  10. 微信小程序表格列冻结功能的实现