我是小玉,一个平平无奇的小天才!

主键和外键

概念:

SQL的主键表示唯一标识一条记录,不能有重复的,不允许为空。例如:一条记录包括身份正号,姓名,年龄。身份证号是唯一能确定你这个人的,其他都可能有重复,所以,身份证号是主键。
SQL的外键用于与另一张表的关联。是能确定另一张表记录的字段,用于保持数据的一致性。比如,A表中的一个字段,是B表的主键,那他就可以是A表的外键。外键与主键相对,作用就是通过主外键的之间关系使对张表中的数据更好的关联。

区别:

主键——一个表主键只能有一个

外键——一个表可以有多个外键

作用

主键——用来保证数据完整性
外键——用来和其他表建立联系用的

举例:

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键。

比如:

学生表(学号,姓名,性别,班级),其中每个学生的学号是唯一的,学号就是一个主键;
课程表(课程编号,课程名,学分),其中课程编号是唯一的,课程编号就是一个主键;
成绩表(学号,课程号,成绩),成绩表中单一一个属性无法唯一标识一条记录,学号和课程号的组合才可以唯一标识一条记录,所以,学号和课程号的属性组是一个主键。(必须是属性组,一个表只能有一个主键)

成绩表中的学号不是成绩表的主键,但它和学生表中的学号相对应,并且学生表中的学号是学生表的主键,则称成绩表中的学号是学生表的外键;同理,成绩表中的课程号是课程表的外键。

主键和外键的创建

主键:

主键一般在建表的时候会默认设置为 primary key,例如

create table students (
StudentNo int PRIMARY KEY IDENTITY(1,1), --加主键约束,还有标识列属性(两者构成实体完整性)
StudentName nvarchar(15) not null, --加非空约束,不加"not null" 默认为:可以为空
StudentSchool text(20) FOREIGN KEY REFERENCES SchoolTable(SchoolName), --加外键约束,格式:FOREIGN KEY REFERENCES 关联的表名(字段名)
)

在上述的表的创建过程中,我们直接将StudentNo设置为主键了。
但有时候我们在建表的时候忘记设置主键,之后也是可以在这个表的后边补上。例如:

alter table 表名
add constraint 字段名 primary key ;
外键:

我们也可以用类似的方法进行外键的添加:

alter table 表名
add constraint 字段名
foreign key (字段名) references 关联的表名(关联的字段名); --注意'关联的表名'和'关联的字段名'

关于常用的主键和外键的介绍就给大家提供这么多,有问题可以留言!

SQL的主键和外键详解!相关推荐

  1. SQL的主键和外键约束

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

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

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

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

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

  4. 数据库之SQL的主键和外键的作用

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

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

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

  6. (转载)MySQL数据库的主键和外键详解

    主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...

  7. SQL Server:主键与外键设置与相关理解

    一.定义与作用 主键:表中能够唯一地辨别事物的属性.通过主键能够查询出表中一条完整的记录,同时使用主键能防止表中出现重复的记录,避免了数据的冗余. 外键:通俗讲就是表中一个属性是来自另一张表的主键,该 ...

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

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

  9. mysql sql外键的作用_SQL的主键和外键的作用

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

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

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

最新文章

  1. PHP-7.1 源代码学习:虚拟机字节码
  2. 使用asp.net中的跟踪功能
  3. 文件包含和文件上传结合
  4. Hive 基础(2):库、表、字段、交互式查询的基本操作
  5. jQuery 向div中追加内容
  6. 最简单的基于时间片轮转任务调度模型
  7. 机器人模仿人类动作一学就会,还能举一反三了 | 论文
  8. Java快捷键标识符入门学习
  9. pytorch搭建LSTM神经网络预测电力负荷
  10. 乐高机器人编程自学入门
  11. 计算机软件是互联网行业吗,中国十大热门专业 互联网行业位居第一
  12. 数据立方体的基本计算
  13. 台湾最大IC封装厂近三成员工停工14天,安世半导体宣布今日起调涨价格!
  14. python 常用win32api 后台截图 后台鼠标 后台键盘 后台输入文字 剪切板
  15. getAttribute(),setAttribute()的方法使用以及区别。
  16. 虚拟机打开时报错Operation inconsistent with current state。
  17. 【数据分析】贝叶斯原理
  18. CIKM2020 | 最新9篇推荐系统相关论文
  19. 李峋 爱心代码 点燃我温暖我
  20. 压缩感知测量矩阵构造方法研究

热门文章

  1. sql server中 设置与查看锁的超时时间(ZT) @@LOCK_TIMEOUT
  2. 备忘录模式-Memento
  3. TypeError: Object of type ‘int64‘ is not JSON serializable
  4. mysql用户管理设置权限_mysql 用户管理和权限设置
  5. golang gin mysql_Golang 的Gin框架入门教学
  6. cvSlite 和cvMerge 实现图像的通道分离和混合的说明
  7. Qt_qDebug 原理详解
  8. WINDOWS下SQL2016安装
  9. MyBatis官方文档——Java API部分
  10. 删除数据库表的几种方法的比较