主键外键

主键 外键 唯一键 CHECK约束

主键:是唯一的,不可重复的,它能提高查询效率,但是会减慢新增数据效率

外键:主键是本张表的主键,是唯一且非空的,而外键是另一张表中与这张表的某个字段的类型,字段名相同的字段,一般是用作关联两张或两张以上的数据表时用的。

外间的取值规则:空值或参照的主键值。

(1)插入非空值时,如果主键表中没有这个值,则不能插入。

(2)更新时,不能改为主键表中没有的值。

(3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除。
(4)更新主键记录时,同样有级联更新和拒绝执行的选择。

主键和外键的关系:

外键表中的一列来自于主键表,受其限制

主键表中只出现一次,在外键表中出现多次

范式理论:

第一范式:数据库表里的每一列都要是单一数据内容,要统一

第二范式:数据库表里的每一列都尽量和主键直接相关

唯一键:一个字段或者多个字段组成的数据必须是唯一的,它和主键的区别,主键不允许为空,但是唯一键允许为空值。

CHECK约束:

CHECK 约束用于限制列中的值的范围。

如果对单个列定义 CHECK 约束,那么该列只允许特定的值。

如果对一个表定义 CHECK 约束,那么此约束会在特定的列中对值进行限制。

添加主键的方法:

(1)、用SQL语句

如:将学号(整数型)这一列添加为主键,并且初始值为1,并自增。

学号 int  primary  key  identity ( 1 , 1 )

(2)、用介面操作

在要添加主键的表上右键点击选择“设计”,在要添加主键的列名上右键点击“设置主键”,在下面“标识规范”里将是标识后的选项改为是,可以修改初始值和增加量。

如:将分数表里的编号一列设置为主键,并设置自增。

添加外键的方法:

(1)、用SQL语句

如:将学号(整数型)这一列添加为学生表学号这一列的外键。

学号 int  references  学生(学号)

(2)、用介面操作

在要添加外键的表上右键点击选择“设计”,在要添加外键的列名上右键点击“关系”,在打开的对话框里面点“表和列的规范”后的下拉列表,在出来的表和列的对话框里选择正确的主键和外键,确定后保存即可。

如:将分数表里的学号一列设置为学生表学号这一列的外键。

添加唯一键的方法:

(1)、用SQL语句

如:将学号(整数型)这一列添加为唯一键。

学号 int  unique

(2)、用介面操作

在要添加唯一键的表上右键点击选择“设计”,在要添加唯一键的列名上右键点击“索引/键”,在打开的对话框里面点“列”后的下拉列表,在出来的索引列的对话框里选择要添加的唯一键,后面可以选择排序,确定后保存即可。

如:将分数表里的编号一列设置为唯一键。

时间: 2024-08-27 15:36:34

主键外键的相关文章

数据库系统基础笔记(3)--主键/外键 索引

本文转载自:http://www.cnblogs.com/longyi1234/archive/2010/03/24/1693738.html 作者:蔚蓝色的天空 一.什么是主键.外键 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 比如 :  学生表 (学号,姓名,性别,班级)  其中每个学生的学号是唯一的,学号就是一个主键  课程表(课程编号,课程名,学分)  其中课程编号是唯一的,课程编号就是一个主键  成绩表(学号,课

SQL主键&外键

SQL的主键和外键约束 SQL的主键和外键的作用: 外键取值规则:空值或参照的主键值. (1)插入非空值时,如果主键表中没有这个值,则不能插入. (2)更新时,不能改为主键表中没有的值. (3)删除主键表记录时,你可以在建外键时选定外键记录一起级联删除还是拒绝删除. (4)更新主键记录时,同样有级联更新和拒绝执行的选择. 简而言之,SQL的主键和外键就是起约束作用. 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键. 比如: 学

数据库主从表、关系;主、外键关系和作用

从数据库是主数据库的备份,当主数据库变化时从数据库要更新,这些数据库软件可以设计更新周期.这是提高信息安全的手段.主从数据库服务器不在一个地理位置上,当发生意外时数据库可以保存.主外键的关系结构:1,一对一,不用引用主外键,把它们放一个表中即可例如:一个学生只能有一个卡号,那么学生跟卡号放在一个表中即可2,一对多,引用主外键,'一'相当于主键,'多'即是引用主键的外键.例如:一个班级可以有多个学生,并且一个学生只能属于一个班级,这就是一对多的关系:3,多对多关系,需要创建一个表,表中需要两个字段

通过 jdbc 分析数据库中的表结构和主键外键

文章转自:http://ivan4126.blog.163.com/blog/static/20949109220137753214811/ 在某项目中用到了 hibernate ,大家都知道 hibernate 是 ORM 框架,他是有能力根据实体生成数据库表的.我们在单元测试的时候用到了 dbUnit ,dbUnit 可以帮助我们在测试前把数据库的测试数据准备好,然后我们就利用现成的数据库环境测试,测试完成后需将数据库中的所有数据清除(为了不影响其他的单元测试),然后接着下一个测试.虽然已经

MySQL主键 外键 索引

一.什么是主键.外键: 关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键比如 : 学生表(学号,姓名,性别,班级) 其中每个学生的学号是唯一的,学号就是一个主键 用户表(用户名.密码.登录级别) 其中用户名是唯一的, 用户名就是一个主键 上机记录表(卡号,学号,姓名.序列号) 上机记录表中单一一个属性无法唯一标识一条记录,学号和姓名的组合才可以唯一标识一条记录,所以 学号和姓名的属性组是一个主键 上机记录表中的序列号不是成绩表的

MySQL 主键外键

笛卡儿积 多表查询 ,多个表变成一个表 完整性约束条件primary key    标识该属性为该表的主键,可以唯一的标识对应的元组foreign key    标识该属性为该表的外键,是与之联系的某表的主键not null       标识该属性不能为空unique         标识该属性的值是唯一的auto_increment 标识该属性的值自动增加default        为该属性设置默认值设置从表 外键constraint 外键别名 foreign key(属性1.1, 属性1.

数据库中创建表(包括创建主键,外键,非空列,唯一)

创建表(包括创建主键,外键,非空列,唯一) - PROS - 博客园 http://www.cnblogs.com/CodingArt/articles/1621921.html **************** 创建主键(三种方法) **************** 创建学生表: 第一种: create table student (sno char(5) primary key,/*学号*/ /*可以直接指定主键*/ sname char(20) not null,/*姓名*/ ssex c

聚集索引和取消外键,外键影响在大并发下的性能.删除外键

聚集索引是指数据库表行中数据的物理顺序与键值的逻辑(索引)顺序相同.一个表只能有一个聚集索引,因为一个表的物理顺序只有一种情况,所以,对应的聚集索引只能有一个.如果某索引不是聚集索引,则表中的行物理顺序与索引顺序不匹配,与非聚集索引相同,聚集索引有着更快的检索速度. 不相关的拆离.查询不一定关联的列单独分出一张表. 做对应关联. 外键. 外键约束去掉,锁很多,占用资源.多表关联较多. 列有空值,空值不走索引. 外键是否采用看业务应用场景,以及开发成本的,大致列下什么时候适合,什么时候不适合使用:

SQL主、外键,子查询

主键 数据库主键是指表中一个列或列的组合,其值能唯一地标识表中的每一行.这样的一列或多列称为表的主键,通过它可强制表的实体完整性.当创建或更改表时可通过定义 PRIMARY KEY约束来创建主键.一个表只能有一个 PRIMARY KEY 约束,而且 PRIMARY KEY 约束中的列不能接受空值.由于 PRIMARY KEY 约束确保唯一数据,所以经常用来定义标识列. 主键的作用 主键的主要作用如下: (1)保证实体的完整性: (2)加快数据库的操作速度: (3) 在表中添加新记录时,数据库会自