MS Server 数据库准备脚本

Steven · 2023-07-16 12:43 · 178 views · SQL Server · old id 172

use master  --表示下面的操作是针对master数据库完成的
go
--判断当前数据库是否在master数据库中已经存在
if exists(select * from sysdatabases where name=MISDB)
drop database MISDB   --删除数据库
go

--创建数据库
create database MISDB
on primary  
(
      name=MISDB_Mdata,  --数据库文件的逻辑名称(数据库服务内部使用的)
  filename=D:\C#study\DB\MISDB_Mdata.mdf,  --数据库物理文件名(绝对路径)
  size=30MB, --数据库文件初始大小
  filegrowth=1MB  --当数据超过文件大小的时候自动增长量
),
(   --次要数据文件(可以有多个,也可以没有)
      name=MISDB_ndata,  
  filename=D:\C#study\DB\MISDB_ndata.ndf, 
  size=20MB,
  filegrowth=1MB 
)
log on
(
      name=MISDB_log1,  
  filename=D:\C#study\DB\MISDB_log1.ldf, 
  size=2MB,
  filegrowth=1MB 
),
(
      name=MISDB_log2,  
  filename=D:\C#study\DB\MISDB_log2.ldf, 
  size=2MB,
  filegrowth=1MB 
)
go
--添加数据表
use MISDB
go
--部门信息表
if exists(select * from sysobjects where name=Department)
drop table Department
go
create table Department
(
    DepartmentId int identity(10,1) primary key,  --主键、标识列(从10开始,每次递增1)
DepartmentName varchar(50) not null,  --部门名称,非空
)
go
--职位信息表
if exists(select * from sysobjects where name=Post)
drop table Post
go
create table Post
(
     PostId int  identity(10,1) primary key,
PostName varchar(50) not null
)
go
--员工信息表
if exists(select * from sysobjects where name=Employee)
drop table Employee
go
create table Employee
(
      EmployeeID int identity(1000,1) primary key,   --主键约束
  EmployeeName varchar(50) not null,    --非空约束
  Gender char(2) not null,
  NowAddress nvarchar(100) default(地址不详),  --默认约束
  IdNo char(18) not null check(len(IdNo)=18),  --检查约束
  WeiXinNumber varchar(20) not null,
  PhoneNumber varchar(50) not null,
  OtherWork nvarchar(50) null,
  EntryDate datetime not null,
  PostId int references Post(PostId) ,--外键约束(职位编号)
  DepartmentId int references Department(DepartmentId)  --外键(部门编号)
)
go
--插入测试数据   (常见操作:insert update delete select )

--经验:首先要插入没有《外键约束》的主键表的数据。
use MISDB
go
insert into Department(DepartmentName) values(开发部),(测试部),(实施部),(财务部),(人事部)
--insert into Department(DepartmentName) values(测试部)
--insert into Department(DepartmentName) values(实施部)
--insert into Department(DepartmentName) values(财务部)
--insert into Department(DepartmentName) values(人事部)


--select DepartmentId,DepartmentName from Department
insert into Post(PostName) values(软件工程师),(测试工程师),(实施工程师),(财务经理),(人事经理)



insert into Employee(EmployeeName, Gender, NowAddress, IdNo, WeiXinNumber, PhoneNumber, OtherWork, EntryDate, PostId, DepartmentId)
values
(Kiter10,男,天津,123226199012111510,thinger01,13600001201,暂无,2025-01-01,10,10),
(Kiter11,男,北京,123226199012111511,thinger02,13600001202,暂无,2020-01-02,11,11),
(Kiter12,女,上海,123226199012111512,thinger03,13600001203,暂无,2020-01-03,12,13),
(Kiter13,男,广州,123226199012111513,thinger04,13600001204,暂无,2020-01-04,10,10),
(Kiter14,男,苏州,123226199012111514,thinger05,13600001205,暂无,2020-01-05,12,12),
(Kiter15,女,南宁,123226199012111515,thinger06,13600001206,暂无,2020-01-06,10,10),
(Kiter16,男,德州,123226199012111516,thinger07,13600001207,暂无,2020-01-07,11,11),
(Kiter17,男,衢州,123226199012111517,thinger08,13600001208,暂无,2020-01-08,12,12),
(Kiter18,女,西安,123226199012111518,thinger09,13600001209,暂无,2020-01-09,10,10),
(Kiter19,男,咸阳,123226199012111519,thinger10,13600001210,暂无,2020-01-10,11,11),
(Kiter20,女,沈阳,123226199012111520,thinger11,13600001211,暂无,2020-01-11,14,14)


select * from Employee
select * from Department
select * from Post

--select EmployeeName, Gender, NowAddress, IdNo, WeiXinNumber,PostId from Employee
-- where PostId=10 and DepartmentId=10

-- select EmployeeName, Gender, NowAddress, IdNo, WeiXinNumber,PostId from Employee
-- where PostId>10  

--  select EmployeeId,EmployeeName, Gender, NowAddress, IdNo, WeiXinNumber,PostId from Employee
-- where Gender=男

 --更新的话,一定要注意写where
 --update Employee set  EmployeeName=王老师 ,NowAddress=天津 where EmployeeId=1001

 --删除的话,一定要注意写where
 --delete from Employee where EmployeeId=1002

 -- delete from Employee where Gender=男

 -- delete from Employee

 -- 这个无法执行删除(因为主键值,已经被外键表使用)
 -- delete from Department where DepartmentId=11

 -- 如果要强制删除,可以在确保安全的情况下,先删除外键表数据
 -- delete from Employee where DepartmentId=11

  --连接查询和汇总查询
--  select EmployeeName, Gender, NowAddress, IdNo,PostName, DepartmentName,Post.PostId from Employee
--  inner join Post on Employee.PostId=Post.PostId
--  inner join Department on Employee.DepartmentId=Department.DepartmentId

--  --改变列的名称
--    select 员工姓名=EmployeeName, 性别=Gender, NowAddress as 住址, IdNo,PostName, DepartmentName,Post.PostId from Employee
--  inner join Post on Employee.PostId=Post.PostId
--  inner join Department on Employee.DepartmentId=Department.DepartmentId

--  --聚合查询
--select count(*) as 员工总数 from Employee
--select 最大编号=max(EmployeeId)  from Employee
--select 最小编号=min(EmployeeId)  from Employee

--select  员工总数=count(*) ,最大编号=max(EmployeeId),最小编号=min(EmployeeId)  from Employee

--select 平均编号=avg(EmployeeId)  from Employee

← Back to home