use master
go
if exists (select * from sys.sysdatabases where name = 'companyDB' )
drop database companyDB
go
create database companyDB
go
use companyDB
go
create table jobs
(
job_id nvarchar(10) not null,
job_title nvarchar(20) not null,
min_salary money not null,
max_salary money not null
)
go
create table departments
(
department_id int identity(1,1) not null ,
department_name nvarchar(30) not null,
manager_id int null
)
go
create table employees
(
employees_id int identity(100,1) not null ,
first_name nvarchar(16) not null,
last_name nvarchar(16) not null ,
email nvarchar(16) not null,
phone_number nvarchar(20) not null,
hire_date datetime not null,
job_id nvarchar(10) not null,
salay money null,
manager_id int null,
department_id int null
)
go
create table history
(
employees_id int not null ,
start_time datetime not null,
end_time datetime not null,
job_id nvarchar(10) not null,
department_id int null
)
go
alter table jobs
add constraint PF_jobs_job_id primary key(job_id),
constraint CK_jobs_min_salary check(min_salary > 1000 or min_salary = 1000),
constraint CK_jobs_max_salary check( max_salary > min_salary or max_salary = min_salary )
insert into jobs values('Yuan1','主管',1000,1000)
insert into jobs values('Yuan2','经理',1000,1000)
drop table jobs
select * from jobs
alter table jobs
drop constraint CK_jobs_max_salary
alter table departments
add constraint PK_departments_department_id primary key(department_id)
go
alter table departments
add constraint FK_departments_employees_manager_id foreign key(manager_id) references employees(employees_id)
alter table employees
add constraint PK_employees_employees_id primary key(employees_id)
alter table employees
add constraint DF_employees_hire_date default getdate() for hire_date
alter table employees
add constraint CK_employees_salay check(salay>0)
alter table employees
add constraint FK_employees_manager_id_employees_id foreign key(manager_id) references employees(employees_id)
alter table employees
add constraint FK_employees_departments_department_id foreign key(department_id) references departments(department_id)
alter table history
add constraint PK_history_employees_id_start_time primary key(employees_id,start_time)
alter table history
add constraint DF_history_end_time default getdate() for end_time
alter table history
add constraint FK_history_jobs_job_id foreign key(job_id) references jobs(job_id)
alter table history
add constraint FK_history_departments_department_id foreign key(department_id) references departments(department_id)
