MySql数据库约束,主键和外键约束的添加删除,代码实现,sql语句实现

--概述 

对表中的数据进行限定,保证数据的正确性、有效性和完整性。

1. primary key:主键约束  要求表中有一个列 唯一 且 非空,通常我们使用id作为主键

2. unique:唯一约束

3. not null:非空约束

4. default:默认值

5. foreign key:外键约束

1.主键约束

-- 给student表添加主键约束
ALTER TABLE student ADD PRIMARY KEY(id);

-- 创建表,指定主键约束
CREATE TABLE stu1(
 id INT PRIMARY KEY AUTO_INCREMENT,
 `name` VARCHAR(32)
);

-- 创建表时,可以指定主键约束(多个字段) 联合主键
CREATE TABLE stu2(
 id INT,
 `name` VARCHAR(32),
 PRIMARY KEY(id,`name`)
);

-- 修改自增器起始值...
ALTER TABLE stu3 AUTO_INCREMENT=10000;

-- 先移除自增器
ALTER TABLE stu3 MODIFY id INT;

-- 再移除主键约束
ALTER TABLE stu3 DROP PRIMARY KEY;

2.唯一约束

限定某一列的值不能重复,不能限定NULL

-- 创建表时指定字段为唯一约束
create table 表名(
  列名 数据类型 unique
);

3.非空约束

create table 表名(
  列名 数据类型 not null, -- 非空约束
  列名 数据类型 unique not null -- (唯一+非空) 约束
);
-- 唯一 + 非空 
CREATE TABLE stu5(
    id INT PRIMARY KEY AUTO_INCREMENT,
   `name` VARCHAR(32) UNIQUE NOT NULL
);

4.默认值

限定某一列的默认值,再没有指定的情况下所有列的默认值为null

--创建表时指定字段默认值
create table 表名(
   列名 数据类型 default 默认值,
   ...
   ...
);
-- 默认值
CREATE TABLE stu6(
   id INT PRIMARY KEY AUTO_INCREMENT,
   `name` VARCHAR(32) DEFAULT NULL,
   sex VARCHAR(5) DEFAULT ''
);