USE DBTEST
--创建表的基本语法
--create table 表名
--(
-- 字段名1 数据类型,
-- 字段名2 数据类型
--)
--判断表是否存在
if exists(select * from sys.objects where name = 'Department' and type = 'U')
drop table Department
--建表(职位,职级,员工)
create table Department
(
--部门编号,primary key:主键,identity(1,1):自动增长,初始值1,增长步长1
DepartmengtId int primary key identity(1,1),
--部门名称
DeparmentName nvarchar(50) not null,
--部门描述
DepartmentRemark text
)
--char:定长,char(10),能且仅能占用10个字节
--varchar:变长,varchar(10),最多占10个字节
--text:长文本
--char,varchar,text前面加n:存储unicode字符,中文友好
--varchar(100)存储100个字母或者50个汉字。
--nvarchar(100) 存储100个字母或者100个汉字。
create table [Rank]
(
--职级编号,primary key:主键,identity(1,1):自动增长,初始值1,增长步长1
RankId int primary key identity(1,1),
--职级名称
RankName nvarchar(50) not null,
--职级描述
RankRemark text
)
--员工
create table People
(
PeopleId int primary key identity(1,1),--员工编号
DepartmentId int references Department(DepartmengtId) not null,--部门(引用外键)
RankId int references [Rank](RankId) not null,--职级(引用外键)
PeopleName nvarchar(50) not null,--姓名
PeopleSex nvarchar(1) default('男') check(PeopleSex='男'or PeopleSex='女'),--性别
PeopleBirth smalldatetime not null,--生日
PeopleSalary decimal(12,2) check(PeopleSalary >=1000 and PeopleSalary <=1000000)not null,--月薪
PeoplePhone varchar(20) unique not null,--电话
PeopleAdress varchar(300),--地址
PeopleAddTime smalldateTime default(getdate())--添加时间
)
------------------------------------------------------------------------------------------------------------
--修改表结构
--(1)添加列
--alter table 表名 add 新列明 数据类型
--给员工表添加一列邮箱
alter table People add PeopleMail varchar(200)
--(2)删除列
--alter table 表名 drop column 列名
alter table People drop column PeopleMail
--(3)修改列
--alter table 表名 alter column 列名 数据类型
alter table People alter column PeopleAdress varchar(200)
----------------------------------------------------------------------------------------------------------
--向部门表插入数据
insert into Department(DeparmentName,DepartmentRemark)
values('市场部','.....')
insert into Department(DeparmentName,DepartmentRemark)
values('软件部','.....')
insert into Department(DeparmentName,DepartmentRemark)
values('企划部','.....')
--简写
insert into Department
values('硬件部','.....')
--一次性插入多行数据
insert into Department(DeparmentName,DepartmentRemark)
select'测试部','.....'union
select'实施部','.....'union
select'产品部','.....'
--向职级表插入数据----------------------------------
insert into [Rank](RankName,RankRemark)
values ('初级','....')
insert into [Rank](RankName,RankRemark)
values ('中级','....')
insert into [Rank](RankName,RankRemark)
values ('高级','....')
--向员工表插入数据-------------------------------
insert into People(DepartmentId,RankId,PeopleName,PeopleSex,PeopleBirth,PeopleSalary,
PeoplePhone,PeopleAdress,PeopleAddTime)
values (5,1,'刘备','男','1988-8-8',5000,'13888888888','中国',GETDATE())