mysql约束

-- 在创建表时设置主键约束
CREATE TABLE tb_emp4
(
id INT(11),
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(id)
);

-- 在创建表时设置复合主键
CREATE TABLE tb_emp5
(
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
PRIMARY KEY(name,deptId)
);

-- 在修改数据表时添加主键约束
ALTER TABLE tb_emp2
ADD PRIMARY KEY(id);

-- 在创建表时创建外键约束
CREATE TABLE tb_emp6
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CONSTRAINT fk_emp_dept1
FOREIGN KEY(deptId) 
REFERENCES tb_dept1(id)
);

-- 在修改表时添加外键约束
ALTER TABLE tb_emp2
ADD CONSTRAINT fk_tb_dept1
FOREIGN KEY(deptId)
REFERENCES tb_dept1(id);

-- 删除外键约束
ALTER TABLE tb_emp2
DROP FOREIGN fk_tb_dept1;

-- 在创建表时设置唯一索引
CREATE TABLE tb_emp2
(
id INT PRIMARY KEY,
name VARCHAR(40) UNIQUE,
location VARCHAR(50)
);

-- 在修改表时添加唯一索引
ALTER TABLE tb_dept1
ADD CONSTRAINT unique_name UNIQUE(name);

-- 删除唯一索引
ALTER TABLE tb_dept1
DROP INDEX unique_name;

--在创建表时设置检查约束
CREATE TABLE tb_emp7
(
id INT(11) PRIMARY KEY,
name VARCHAR(25),
deptId INT(11),
salary FLOAT,
CHECK(salary>0 AND salary<10000)
);

-- 在修改表时添加检查约束
ALTER TABLE tb_emp7
ADD CONSTRAINT check_id
CHECK(id>0);

-- 在创建表时设置默认值约束
CREATE TABLE tb_dept3
(
id INT(11) PRIMARY KEY,
name VARCHAR(22),
location VARCHAR(50) DEFAULT 'Beijing'
);

-- 在修改表时添加默认值约束
ALTER TABLE tb_dept3
CHANGE COLUMN location
location VARCHAR(50) DEFAULT 'Shanghai';
CHECK(id>0);

-- 删除默认值约束
ALTER TABLE tb_dept3
CHANGE COLUMN location
location VARCHAR(50) DEFAULT NULL;

-- 在创建表时设置非空约束
CREATE TABLE tb_dept4
(
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL,
location VARCHAR(50)
);

-- 在修改表时添加非空约束
ALTER TABLE tb_dept4
CHANGE COLUMN location
location VARCHAR(50) NOT NULL;

-- 删除非空约束
ALTER TABLE tb_dept4
CHANGE COLUMN location
location VARCHAR(50) NULL;