-- 使用数据库hr
 
 
use hr;
-- 在数据库中创建表
-- ------------------------------------JOBS表----------------------------------------------------------
-- 判断数据库中是否存在表JOBS
drop table if exists JOBS;
-- 创建表JOBS
create table JOBS
	(
		JOB_ID	VARCHAR(10) not null,-- 职位编号,主键
		JOB_TITLE	NVARCHAR(20) not null,-- 职位名称
		MIN_SALARY	float	not null, -- 职位最低薪资,不小于1000元     mysql中没有money类型的数据类型
		MAX_SALARY	float	not null  -- 职位最高薪资,不小于最低薪资
);
-- 给JOBS表创建约束
-- 添加主键约束
alter table JOBS
	add constraint primary key(JOB_ID);
-- 职位最低薪资,不小于1000元
alter table JOBS
	add constraint check(MIN_SALARY>=1000);
-- 职位最高薪资,不小于最低薪资
alter table JOBS
	add check(MAX_SALARY>=MIN_SALARY);
-- 插入测试数据
-- insert into JOBS values(‘100‘,‘经理‘,12000,19990),(‘101‘,‘主管‘,6200,8999);
-- select * from JOBS;
  
-- ------------------------------------------------DEPARTMENTS部门表的结构-------------------------------------------------------------
-- 判断数据库中是否存在表DEPARTMENTS
   drop table if exists DEPARTMENTS;
-- 创建表DEPARTMENTS
create table DEPARTMENTS
	(
			DEPARTMENT_ID	INT not null,		-- 部门编号,主键,自增。
			DEPARTMENT_NAME	NVARCHAR(30) not null,	-- 部门名称
			MANAGER_ID	INT  	-- 部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
);
-- 创建表DEPARTMENTS的约束
-- 创建主键的约束
alter table DEPARTMENTS
	add constraint primary key(DEPARTMENT_ID);
-- 为主键添加自动增长
alter table DEPARTMENTS
	modify DEPARTMENT_ID int auto_increment;
-- 部门主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
-- alter table DEPARTMENTS
	-- add constraint FK_MANAGER_ID foreign key(MANAGER_ID) references EMPLOYEES(EMPLOYEE_ID);
-- 插入测试数据
-- insert into DEPARTMENTS values(null,‘财务部‘,200),(null,‘采购部‘,300);
-- select * from DEPARTMENTS;
-- ----------------------------------------------EMPLOYEES职员表的结构-----------------------------------------------------------------------
-- 判断数据库中是否存在表EMPLOYEES
drop table if exists EMPLOYEES;
-- 创建表EMPLOYEES
create table EMPLOYEES
		(
			EMPLOYEE_ID	INT	not null, -- 	 	职员编号,主键,自增(起始值为100,每次增1)
			FIRST_NAME	NVARCHAR(4) not null, -- 	 职员名称
			LAST_NAME	NVARCHAR(4) not null,   -- 	 	职员姓氏
			EMAIL	VARCHAR(25) not null,   -- 	 	职员邮件
			PHONE_NUMBER	VARCHAR(20) not null,   -- 	 	职员电话
			HIRE_DATE	 TIMESTAMP   	not null,   -- 	 	getdate()	职员入职时间
			JOB_ID	VARCHAR(10) not null,   -- 	 	职员职位编号,外键,引用JOBS表的JOB_ID
			SALARY	float	,    -- 	 	职员薪资,大于0;
			MANAGER_ID	INT	,   -- 	 	职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
			DEPARTMENT_ID	INT	  --  	职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
		)auto_increment=100;
	-- 添加约束
-- 添加 主键约束
alter table EMPLOYEES
	add primary key(EMPLOYEE_ID);
-- 为主键添加自增
alter table EMPLOYEES
	modify EMPLOYEE_ID int auto_increment;
-- 	getdate()	职员入职时间
alter table EMPLOYEES
	 modify HIRE_DATE	TIMESTAMP default ‘2016-7-23‘;
-- 添加约束  职员职位编号,外键,引用JOBS表的JOB_ID----------------------------添加外键约束时要加上constraint
 -- alter table EMPLOYEES
 -- 	 add constraint FK_JOB_ID foreign key(JOB_ID) references JBOS(JOB_ID);
-- 职员薪资,大于0
alter table EMPLOYEES
	add check(SALARY>0);
-- 职员主管编号,外键,引用EMPLOYEES表的EMPLOYEE_ID
alter table EMPLOYEES
	add constraint FK_EMPLOYEE_ID foreign key(EMPLOYEE_ID) references EMPLOYEES(EMPLOYEE_ID);
-- 职员部门编号,外键,引用DEPARTMENTS表的DEPARTMENT_ID
alter table EMPLOYEES
	add constraint FK_DEPARTMENT_ID foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID);
原文:http://www.cnblogs.com/wanglu1991/p/4690796.html