MySQL数据库基础(九):SQL约束
SQL约束
一、主键约束
- PRIMARY KEY 约束唯一标识数据库表中的每条记录。
- 主键必须包含唯一的值。
- 主键列不能包含 NULL 值。
- 每个表都应该有一个主键,并且每个表只能有一个主键。
遵循原则:
- 主键应当是对用户没有意义的
- 永远也不要更新主键。
- 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
- 主键应当由计算机自动生成。
创建主键约束:创建表时,在字段描述处,声明指定字段为主键
删除主键约束:如需撤销 PRIMARY KEY 约束,请使用下面的 SQL
alter table persons2 drop primary key;
补充:自动增长
我们通常希望在每次插入新记录时,数据库自动生成字段的值。
我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整型,自动增长列必须为键(一般是主键)。
下列 SQL 语句把 "Persons" 表中的 "Id" 列定义为 auto_increment 主键
create table persons3(
id int auto_increment primary key,
first_name varchar(255),
last_name varchar(255),
address varchar(255),
city varchar(255)
) default charset=utf8;
向persons添加数据时,可以不为Id字段设置值,也可以设置成null,数据库将自动维护主键值:
insert into persons3(first_name,last_name) values('Bill','Gates');
insert into persons3(id,first_name,last_name) values(null,'Bill','Gates');
运行效果:
二、非空约束
NOT NULL 约束强制列不接受 NULL 值。
NOT NULL 约束强制字段始终包含值。这意味着,如果不向字段添加值,就无法插入新记录或者更新记录。
下面的 SQL 语句强制 "id" 列和 "last_name" 列不接受 NULL 值:
三、唯一约束
UNIQUE 约束唯一标识数据库表中的每条记录。
UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
请注意: 每个表可以有多个 UNIQUE 约束,但是每个表只能有一个 PRIMARY KEY 约束。
四、默认值约束
default 默认值
五、外键约束(了解)
外键约束(多表关联使用)
比如:有两张数据表,这两个数据表之间有联系,通过了某个字段可以建立连接,这个字段在其中一个表中是主键,在另外一张表中,我们就把其称之为外键。
六、总结
主键约束:唯一标示,不能重复,不能为空。
- 主键应当是对用户没有意义的
- 永远也不要更新主键。
- 主键不应包含动态变化的数据,如时间戳、创建时间列、修改时间列等。
- 主键应当由计算机自动生成。
自动增长:
我们可以在表中使用 auto_increment(自动增长列)关键字,自动增长列类型必须是整型,自动增长列必须为键(一般是主键)。
非空约束:
NOT NULL 约束强制列不接受 NULL 值。
唯一约束:
- UNIQUE 约束唯一标识数据库表中的每条记录。
- UNIQUE 和 PRIMARY KEY 约束均为列或列集合提供了唯一性的保证。
- PRIMARY KEY 拥有自动定义的 UNIQUE 约束。
- 点赞
- 收藏
- 关注作者
评论(0)