创建员工表emp,满足一些约束条件,如图所示:
drop table if exists emp; -- 如果员工表存在,删除员工表
create table emp(
id int PRIMARY KEY auto_increment, -- 员工id,主键且自增长
name varchar(50) NOT NULL UNIQUE, -- 员工姓名,不能为空,且唯一
joindate DATE NOT NULL, -- 员工入职日期,不能为空
salary double(7,2) NOT NULL, -- 员工工资,不能为空
bonus double(7,2) DEFAULT 0 -- 员工奖金,如果没有奖金,默认为0
);
SELECT * from emp;
INSERT INTO emp(id,name,joindate,salary,bonus) VALUES(1,'zhangsan','2017-2-2',6000.00,800.00);
外键约束
练习:
创建两个表,部门表和员工表,通过员工表的dep_id和部门表的id来建立两个表链接,对员工表添加外键fk_emp_dep
drop TABLE if EXISTS emp;
drop table if EXISTS dep;
-- 先创建部门表(主表)
CREATE TABLE dep(
id INT PRIMARY key auto_increment, -- 部门id
dep_name varchar(20), -- 部门名称
addr varchar(20) -- 部门地址
);
CREATE TABLE emp(
id INT PRIMARY key auto_increment, -- 员工id
name VARCHAR(20), -- 员工姓名
age INT, -- 员工年龄
dep_id INT, -- 员工部门id
-- 添加外键dep_id,关联dep表的主键id
CONSTRAINT fk_emp_dep FOREIGN key(dep_id) REFERENCES dep(id)
);
select * from dep;
select * from emp;
-- 添加部门
INSERT INTO dep(dep_name,addr) VALUES('研发部','广州'),('销售部','深圳');
-- 添加员工
INSERT INTO emp(name,age,dep_id) VALUES
('张三',23,1),
('李四',26,1),
('王五',24,1),
('赵六',27,2),
('孙七',20,2),
('周八',26,2);
-- 删除外键
ALTER table emp drop FOREIGN KEY fk_emp_dep;
-- 添加外键
ALTER table emp add CONSTRAINT fk_emp_dep FOREIGN key(dep_id) REFERENCES dep(id);