--切换数据库
use DBTEST
if exists(select * from sys.tables where name='Department' and type='U')----如果有这个名称(DBTES)的数据库,并且type的值为U(用户创建的)
drop table Department --删除表
--类型:
--char:定长,char(10),无论存储的数据是否到了10个字节,都要占用10个字节
--varchar:定长,varchar(10),存储几个字节占用几个字节
--text:长文本
--前面加n:存储unicode字符,对中文更友好
--varchar(10)可存储10个字母或5个汉字
--nvarchar(10)可存储10个字母或10个汉字
--创建表的基本语法
--建表(部门,职级,员工)
create table Department --部门表
(
DepartmentId int primary key identity(1,1), --部门Id 整数类型 设为主键 初始值和增长值
DepartmentName nvarchar(50) not null, --部门名称 字符串类型(50) 不能为空
DepartmentRemark text --部门描述 长文本类型
)
create table [Rank] --职级表
(
RankId int primary key identity(1,1), --职级Id 整数类型 设为主键 初始值和增长值
RankName nvarchar(50) not null, --职级名称 字符串类型(50) 不能为空
RankRemark text --职级描述 长文本类型
)
create table People --职级表
(
DepartmentId int references Department(DepartmentId) not null,--部门编号 引用外键:references Department(DepartmentId):必须在部门表中部门Id里面有的数据
RankId int references [Rank](RankId) not null, --职级编号
PeopleId int primary key identity(1,1), --员工Id 整数类型 设为主键 初始值和增长值
PeopleName nvarchar(50) not null, --员工姓名 字符串类型(50) 不能为空
PeopleSex nvarchar(1) default('男') check(PeopleSex='男' or PeopleSex='女') not null, --员工性别 default:默认值 check:约束
PeopleBirth smalldatetime not null, --员工时间 smalldatetime:近期时间
PeopleSalary decimal(12,2)check(PeopleSalary>=1000 or PeopleSalary<=1000000) not null, --员工薪资 decimal:总长度和小数点后两位
PeoplePhone varchar(20) unique not null, --员工电话 unique:唯一约束
PeopleAddress varchar(300) not null, --家庭地址
PeopleAddTime smalldatetime default(getdate()),--添加时间 default(getdate()):默认当前时间
RankRemark text --员工描述 长文本类型
)