sql server 如何使用sql語句創建表


--使用master
use master
go

--判斷數據庫HR是否存在
if exists(select 1 from sysdatabases where name='HR')
begin
--如果存在則刪除數據庫HR
drop database HR
end
go

--創建數據庫HR
create database HR
go

--使用數據庫HR
use HR
go

-------------------------------------------
-------------------------------------------
--在數據庫HR中創建JOBS表 存儲公司中職位的信息
--判斷JOBS表是否存在
if exists(select 1 from sysobjects where name='JOBS')
begin
--如果表存在則刪除JOBS表
drop table JOBS
end
go

--創建JOBS表
create table JOBS
(
JOB_ID varchar(10) not null primary key,--職位編號
JOB_TITLE nvarchar(20) not null, --職位名稱
MIN_SALARY money not null, --職位最低薪資,不小於1000元
MAX_SALARY money not null --職位最高薪資,不小於最低薪資
)
go

---------添加JOBS表中的約束條件-----------
--檢查MIN_SALARY不小於1000元
alter table JOBS
add constraint CH_MIN_SALARY check(MIN_SALARY>=1000)
--檢查MAX_SALARY不小於不小於最低薪資
alter table JOBS
add constraint CH_MAX_SALARY check(MAX_SALARY>=MIN_SALARY)
go

--向表JOBS中添加測試數據
insert into JOBS values(1001,'經理',1200,1300)
--insert into JOBS values(1002,'經理1', 200,1300)錯誤,職位最低薪資小於1000元
go

--顯示JOBS中的所有的信息
select * from JOBS
go
-------------------------------------------
-------------------------------------------


-------------------------------------------
-------------------------------------------
--在數據庫HR中創建DEPARTMENTS表 存儲公司中部門的信息
--判斷表DEPARTMENTS是否存在
if exists(select 1 from sysobjects where name='DEPARTMENTS')
begin
--如果存在則刪除
drop table DEPARTMENTS
end
go

--創建表DEPARTMENTS
create table DEPARTMENTS
(
DEPARTMENT_ID int identity(1001,1) primary key not null,--部門編號,主鍵,自增
DEPARTMENT_NAME nvarchar(30) not null, --部門名稱
MANAGER_ID int --部門主管編號,外鍵,引用EMPLOYEES表的EMPLOYEE_ID
)
go

--向表中添加測試數據
insert into DEPARTMENTS values('管理部門',null)
go

--顯示表DEPARTMENTS中的所有的信息
select * from DEPARTMENTS
go
-------------------------------------------
-------------------------------------------

-------------------------------------------
-------------------------------------------
--在數據庫HR中創建EMPLOYEES表 存儲公司中職員的信息
--判斷表EMPLOYEES是否存在
if exists(select 1 from sysobjects where name='EMPLOYEES')
begin
--如果EMPLOYEES表中存在則刪除表
drop table EMPLOYEES
end
go

--創建表EMPLOYEES
create table EMPLOYEES
(
EMPLOYEE_ID int primary key identity(100,1) 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 datetime default(getdate()),--職員入職時間
JOB_ID varchar(10) not null,--職員職位編號,外鍵,引用JOBS表的JOB_ID
SALARY money ,--職員薪資,大於0
MANAGER_ID int ,--職員主管編號,外鍵,引用EMPLOYEES表的EMPLOYEE_ID
DEPARTMENT_ID int ,--職員部門編號,外鍵,引用DEPARTMENTS表的DEPARTMENT_ID
)
go

----------向表中添加約束條件---------------
-- 職員職位編號,外鍵,引用JOBS表的JOB_ID
alter table EMPLOYEES
add constraint FK_JOB_ID foreign key(JOB_ID) references JOBS(JOB_ID)
--職員薪資,大於0
alter table EMPLOYEES
add constraint CH_SALARY 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)
go


--向表EMPLOYEES中添加測試數據
insert into EMPLOYEES values('李四','李','821670983@qq.com','180123266',default,'1001',2000,100,1001)
go

--顯示表EMPLOYEES中的所有的信息
select * from EMPLOYEES
go
-------------------------------------------
-------------------------------------------

 

-------------擴展練習---------------------
-------------------------------------------
-------------------------------------------
--在數據庫HR中,創建任職歷史記錄表distory
--判斷HR中的表distory是否存在
if exists (select 1 from sysobjects where name='distory')
begin
--如果表存在則刪除該表
drop table distory
end
go


--創建表distory
create table distory
(
EMPLOYEE_ID int not null,--職員編號,主鍵
START_DATE datetime not null,--開始時間,主鍵
END_DATE datetime not null,--結束時間 默認為getdate()
JOB_ID varchar(10) not null,--職員職位編號,外鍵,引用JOBS表的JOB_ID
DEPARTMENT_ID int --職員部門編號,外鍵,引用DEPARTMENTS表的DEPARTMENT_ID

)
go

----------向表中添加約束條件---------------
--職員編號,主鍵
alter table distory
add constraint PK_EMPLOYEE_ID primary key(EMPLOYEE_ID)
--開始時間,主鍵
alter table distory
add constraint PK_START_DATE unique(START_DATE)
--結束時間 默認為getdate()
alter table distory
add constraint DF_END_DATE default(getdate()) for END_DATE
--職員職位編號,外鍵,引用JOBS表的JOB_ID
alter table distory
add constraint FK_JOB_ID1 foreign key(JOB_ID) references JOBS(JOB_ID)
--職員部門編號,外鍵,引用DEPARTMENTS表的DEPARTMENT_ID
alter table distory
add constraint FK_DEPARTMENT_ID1 foreign key(DEPARTMENT_ID) references DEPARTMENTS(DEPARTMENT_ID)
go

--向表distory中添加測試數據
insert into distory values(100001,'2012.12.12',default,'1001',1001)
insert into distory values(100002,'2015. 2. 2',default,'1001',1001)
go

--查詢表distory中的所有的信息
select * from distory
go
-------------------------------------------
-------------------------------------------


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM