本人已参与「新人创作礼」活动,一起开启掘金创作之路。
持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第3天,点击查看活动详情
目录
今天阿文介绍的内容:
- 什么是
唯一性约束 - 唯一约束的语法格式
- 什么是
默认约束 - 默认约束的语法格式
- 什么是
自增约束 - 自增约束的语法格式
1.唯一性约束
唯一性约束(Unique Constraint)要求该列唯一,允许为空,但只能出现一个空值。唯一约束可以确保一列或者几列不出现重复值。
1.1唯一性约束的语法规则如下:
在定义完列之后直接指定唯一约束,语法规则如下:
字段名 数据类型 UNIQUE
1.2代码演示
CREATE TABLE employee
{
id INT(11) PRIMARY KEY,
name VARCHAR(22) UNIQUE,
location VARCHAR(50)
};
在SQL语句执行后,生成一张名为employee的表,id为该表的主键,name具有唯一约束,即name列任何两条数据的值都不相等。
1.3在定义完所有列之后指定唯一约束,语法规则如下:
[CONSTRAINT<约束名>] UNIQUE(<字段名>)
1.4代码演示
CREATE TABLE employee
{
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50),
CONSTRAINT STH UNIQUE(name)
};
在SQL语句执行后,生成一张名为employee的表,id为该表的主键,name具有唯一约束且约束名为STH,即name列任何两条数据的值都不相等。
提示:
UNIQUE和PRIMARY KEY的区别:一个表中可以有
多个字段声明为UNIQUE,但只能有一个PRIMARY KEY声明;声明为PRIMAY KEY的列不允许有空值,但是声明为UNIQUE的字段允许空值(NULL)的存在。
2.默认约束
默认约束(Default Constraint)指定某列的默认值。如男性同学较多,性别就可以默认为‘男’。如果插入一条新的记录时没有为这个字段赋值,那么系统会自动为这个字段赋值为‘男’。
2.1默认约束的语法规则如下:
字段名 数据类型 DEFAULT 默认值
2.2代码演示
CREATE TABLE employee
{
id INT(11) PRIMARY KEY,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
};
在SQL语句执行后,生成一张名为employee的表,id为该表的主键,name具有非空约束,deptId具有默认约束且默认值为1111,即在插入数据时未给出deptId的值时,系统默认给deptId赋值1111。
3.设置表的属性值自动增加
在数据库应用中,经常希望在每次插入新记录时,系统自动生成字段的主键值。可以通过为表主键添加AUTO_INCREMENT关键字来实现。默认的,在MySQL中AUTO_INCREMENT的初始值是1,每新增一条记录,字段值自动加1。一个表只能有一个字段使用AUTO_INCREMENT约束,且该字段必须为主键的一部分。AUTO_INCREMENT约束的字段可以是任何整数类型(TINYINT、SMALLIN、INT、BIGINT等)。
3.1设置表的属性值自动增加的语法规则如下:
字段名 数据类型 AUTO_INCREMENT
3.2代码演示
CREATE TABLE employee
{
id INT(11) PRIMARY KEY AUTO_INCREMENT,
name VARCHAR(22) NOT NULL,
deptId INT(11) DEFAULT 1111,
salary FLOAT
};
在SQL语句执行后,生成一张名为employee的表,id为该表的主键且具有自增约束,即id的值每插入一行数据时会自动加1并赋值给插入的那一行的id列,name具有非空约束,deptId具有默认约束且默认值为1111。自增约束常常与主键一起进行修饰列。
总结
- 具有
唯一约束的列,其列的任何两行数据都不相等 - 具有
默认约束的列,其列在插入数据且未给出该列数据时,使用默认值进行赋值 - 具有
自增约束的列,其列每插入一条数据,会自动进行加1
好了,阿文今天就介绍到这里吧!