约束
生活中的约束的意思:
一种束缚,一种规则,一种限定,是你感觉不够自由
数据库中的约束:
对我们的字段的值,进行一种规则方面的限定
例如,这个字段的值,必须唯一,不能为null 等等
MySQL中常见的几种约束
主键约束 primary key
自增长约束 AUTO_INCREMENT
非空约束 not null
唯一约束 unique
外键约束 foreign key
非负约束 unsigned
ENUM 枚举类型,能起到约束的作用
主键约束
方式一 建表时添加主键约束
CREATE TABLE student(
id INT PRIMARY KEY,
username VARCHAR(32),
age INT);
方式二 建表时添加主键约束
CREATE TABLE student(
id INT,
username VARCHAR(32),
age INT,
PRIMARY KEY(id));
方式三 建表后添加主键约束
CREATE TABLE student(
id INT,
username VARCHAR(32),
age INT);
ALTER TABLE student
ADD PRIMARY KEY(id);
方式四 联合主键
把多个字段当做一个整体设置为主键
CREATE TABLE student(
id INT,
username VARCHAR(32),
age INT);
ALTER TABLE student
ADD PRIMARY KEY(id,username)
删除主键约束:
情况1: 这个字段,只有主键约束,分两步来删除主键约束
第一步:这样只删除了唯一,他还有个非空约束,所以得再删除非空约束
alter table 表名 drop primary key;
第二步:修改字段名还为原来的字段 加上null即可
alter table 表名 modify 列名 varchar(20) null;
情况2: 这个字段,是一个int类型字段,既有主键约束,又有自增长约束,那么得先删除自增长约束,在删除主键约束
第一步:删除自增长约束,其实就是修改自增长字段名和数据类型还为原来的字段名和类型
alter table 表名 change 字段名 字段名 数据类型;
第二步:删除主键约束
alter table 表名 drop primary key;
第三步:删除非空约束
ALTER TABLE 表名 MODIFY 列名 INT NULL;
自增长约束
1.被修饰的字段类型支持自增 一般int
2.自增长也可以单独使用(配合unique)
3.被修饰的字段必须是一个key 一般是primary key
4.自增长默认从1开始
ALTER TABLE 表名 AUTO_INCREMENT = 起始值;
5.如果添加数据时 给自增长字段指定值
则以指定值为准 按照自增长的规则来添加数据
CREATE TABLE employee(
id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(32),
age INT
);
非空约束
create table nn(
id int not null,
username varchar(32) not null
);
唯一约束
CREATE TABLE teacher(
id INT PRIMARY KEY,
username VARCHAR(32) UNIQUE,
age INT
);