SQL的主键和外键详解!
我是小玉,一个平平无奇的小天才!
主键和外键
概念:
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的主键和外键详解!相关推荐
- SQL的主键和外键约束
SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外 ...
- 数据库原理与应用(SQL Server)教程 主键、外键以及联合主键、复合主键和设置种子数目和增量
文章目录 前言 一.主键.联合主键和复合主键 (一)主键 (二)联合主键 (三)复合主键 二.外键.设置种子数目和增量 (一)外键的概念 (二)添加外键 (三)设置种子数目和增量 结语 前言 这篇文章 ...
- SQL数据库语言基础之SqlServer数据表的六大约束(主键、外键、检查、非空、唯一性、默认值约束)的创建
文章目录 一.主键约束(primary key) 二.外键约束(foreign key) 三.检查约束(check) 四.非空约束(not null) 五.唯一性约束(unique) 六.默认值约束( ...
- 数据库之SQL的主键和外键的作用
SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主 ...
- SQL的主键和外键的设置语法
SQL的主键和外键的作用 SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表 ...
- (转载)MySQL数据库的主键和外键详解
主键 主键的定义 主键:表中经常有一个列或多列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY 约束来 ...
- SQL Server:主键与外键设置与相关理解
一.定义与作用 主键:表中能够唯一地辨别事物的属性.通过主键能够查询出表中一条完整的记录,同时使用主键能防止表中出现重复的记录,避免了数据的冗余. 外键:通俗讲就是表中一个属性是来自另一张表的主键,该 ...
- SQL Server的主键与外键约束
SQL Server的主键与外键约束SQL Server有许多的重要知识,开始也说过许多的SQL知识了.SQL Server中的约束也是一个重要性的知识,下面我来说说关于SQL Server约束的知识 ...
- mysql sql外键的作用_SQL的主键和外键的作用
QL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外键 ...
- SQL的主键和外键的作用
SQL 的主键和外键的作用: 外键取值规则:空值或参照的主键值 (1)插入非空值时,如果主键值中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,可以在建外键 ...
最新文章
- PHP-7.1 源代码学习:虚拟机字节码
- 使用asp.net中的跟踪功能
- 文件包含和文件上传结合
- Hive 基础(2):库、表、字段、交互式查询的基本操作
- jQuery 向div中追加内容
- 最简单的基于时间片轮转任务调度模型
- 机器人模仿人类动作一学就会,还能举一反三了 | 论文
- Java快捷键标识符入门学习
- pytorch搭建LSTM神经网络预测电力负荷
- 乐高机器人编程自学入门
- 计算机软件是互联网行业吗,中国十大热门专业 互联网行业位居第一
- 数据立方体的基本计算
- 台湾最大IC封装厂近三成员工停工14天,安世半导体宣布今日起调涨价格!
- python 常用win32api 后台截图 后台鼠标 后台键盘 后台输入文字 剪切板
- getAttribute(),setAttribute()的方法使用以及区别。
- 虚拟机打开时报错Operation inconsistent with current state。
- 【数据分析】贝叶斯原理
- CIKM2020 | 最新9篇推荐系统相关论文
- 李峋 爱心代码 点燃我温暖我
- 压缩感知测量矩阵构造方法研究
热门文章
- sql server中 设置与查看锁的超时时间(ZT) @@LOCK_TIMEOUT
- 备忘录模式-Memento
- TypeError: Object of type ‘int64‘ is not JSON serializable
- mysql用户管理设置权限_mysql 用户管理和权限设置
- golang gin mysql_Golang 的Gin框架入门教学
- cvSlite 和cvMerge 实现图像的通道分离和混合的说明
- Qt_qDebug 原理详解
- WINDOWS下SQL2016安装
- MyBatis官方文档——Java API部分
- 删除数据库表的几种方法的比较