MySQL数据库教程数据表字段约束

北京皮炎医院哪最好 http://baidianfeng.39.net/a_yufang/210612/9057338.html
MySQL数据库教程-数据表字段约束

为保证数据库中存储数据的规范化,一般需要在定义字段时进行字段规范与约束的定义。保证在进行数据录入时,数据库能够通过这个规则、约束、规范检查所录入的数据,防止错误及不符合要求数据的录入。本文主要介绍数据表字段约束类型及其基本语法,为下一步创建数据表提供基础与依据。

01数据表基本结构

MySQL是主流关系型数据库管理系统之一,我们之所以指出关系型数据主要目的在于关系型数据管理系统存储的是结构化数据,即采用二维表格实现数据的存储。如我们要存储学生基本信息,主要包括学生学号、姓名、出生日期等相关信息,采用二维表格存储形式描述如下:

二维存储数据表结构

数据表基本结构描述如上图所示,使用二维表格实现数据存储。在上图中每一列称为一个属性或者字段。其中第一行的每一列为字段(属性)名称。第一行下面的每一行称为记录,即一条记录。记录是存储结构化数据的基本单元。在实际进行字段设置及值存储过程中,需要结合实际情况确定每一个字段存储数据的格式,规范与要求。这些规范格式等即为字段的约束。如学生的联系电话不允许出现重复,就需要定义与之对应的字段约束。

02MySQL数据表字段约束

MySQL数据库管理系统数据表字段约束主要包括主键约束、外键约束、默认值约束、唯一约束、空值约束、自动增长约束等。主要约束概念及语法说明如下:

1、主键约束PrimaryKey

主键的概念:记录的唯一标识,能够通过该标识确定唯一一条记录。如上表中唯一能够确定学生记录的只能是学号,因此学号是主键。主键是不允许为空,不允许出现重复。可以在定义数据表字段时给字段添加主键约束。语法结构为:

//字段名称数据类型主键约束

idvarchar(14)primarykey

如上表所示,定义学生学号字段名称为id,数据类型为可变长度字符串,长度为14,设置其为主键。

在定义主键时需要注意多字段组合形式主键的定义,在很多情况下我们的主键需要由多个字段所组成,如学生成绩信息表,主要字段包括学号、课程编号、成绩。针对该表主键为学号与课程编号组合。

primarykey(id,cid)

//id指学号

//cid指课程编号

2、外键约束ForeignKey

外键约束主要针对多个表之间的关系进行描述,外键的定义描述如下:

对于字段F在表A中不是主键,但在另外一个表B中表示主键,这个时候字段F对于表A可称为外键,在定义过程中需指明F在哪个表中是主键。另外需要注意,两个表中并不需要都是用F作为字段名,只要两者存储数据含义与类型一致即可。为说明外键约束,我们使用学生基本信息表与班级信息表进行说明,表结构存储数据描述如下图:

外键约束实例表示例

如上表所示,学生信息表与班级信息表中均存在一个班级编号字段,在学生信息表中,该字段不表示任何键,但在班级信息表中编辑编码为主键,因此相对于学生信息表,班级编号为外键。实现语法描述如下:

constraintstu_class_fkforeignkey(class_id)referencesclassinfor(class_id)

//由于存在外键关系需要首先定义班级信息表classinfor,再定义学生信息表

//在定义学生信息表stuinfor中定义外键约束

//stu_class_fk表示外键名称

//references表示外键依赖关系

3、默认值约束default

默认值约束主要用于实现为字段提供统一的默认值,如学生信息表中,所有的班级编号字段都取值1,为简化操作,我们可以直接为班级编号定义默认值约束,取值为1,在后期录入数据时,可直接去掉对该字段的数据录入。在定义字段时可直接指明默认值,基本语法:

字段名称数据类型默认值

class_idvarchar(4)default“1”;

//设置学生信息表中学号字段默认值为1

4、唯一约束unique

唯一约束主要用于约束字段取值的唯一性,有些情况下需要在录入数据时保存数据的唯一性,如在上表学生信息表中,需要学生的联系电话唯一,即该字段不允许输入重复的值。示例代码如下:

字段名称数据类型unique

stu_telvarchar(14)unique

//设置学生电话字段名称为stu_tel

//类型为长度14字符串

//唯一约束

5、空值约束NULL

字段允许取空值则可使用空值约束,默认情况下,字段是允许为空的。如我们创建一个学生成绩表,在录入成绩之前需要将学号,课程编号写入数据表,但是允许成绩为空时,对成绩字段设置允许为空。代码说明如下:

字段名称数据类型null

notnull

stu_scorefloat(4)null

//设置学生成绩字段名称为stu_score

//类型为浮点型

//设置允许为空

6、自动增长约束auto_increment

自动增长可以理解为一种约束,也可以理解为一种数据类型。是指某一个字段值依次增长,且不重复,(序号)在这种情况下可以将其设置为自动增长类型。如我们可以将班级信息表中的班级编号设置为自动增长字段:

class_idintauto_incrementprimarykey;

//班级编号class_id

//数据类型int整数

//自动增长,默认初始值1,增量1

//主键primarykey

本百家条号长期


转载请注明:http://www.aierlanlan.com/rzgz/4375.html