1.数据库及数据表的创建
以下是一段在SQL Server中创建一个新的数据库(MyMISDB)的实现,包含一个简单的主数据文件和次要数据文件及日志文件
在MyMISDB数据库中创建相应的数据表,及数据表中相应的字段,并且添加了对应的数据约束及创建了对应的主外键的引用关系
use master
go
if exists(select *from sysdatabases where name='MyMISDB')--判断是否有该数据库,若有则删除
drop database MyMISDB
go
create database MyMISDB
on primary
(
--创建主数据文件
name = 'MyMISDB_data',--数据库的逻辑名
filename = 'D:\DB\MyMISDB_data.mdf',--数据库的存储路径
size = 20MB,--数据库文件的初始大小,通常根据实际的需求来确定
filegrowth = 1MB--数据库自动扩容
)
,
(
--次要数据文件,可有可无,其他必须有
name = 'MyMISDB_data2',--数据库的逻辑名
filename = 'D:\DB\MyMISDB_data2.ndf',--数据库的存储路径
size = 20MB,--数据库文件的初始大小,通常根据实际的需求来确定
filegrowth = 1MB--数据库自动扩容
)
log on
(
--日志文件
name = 'MyMISDB_log',--日志文件的名字
filename = 'D:\DB\MyMISDB_log.ldf',--日志文件的存储路径
size = 20MB,
filegrowth = 1MB
)
go
use MyMISDB
go
if exists(select *from sysobjects where name='Department')--判断是否有该数据表,若有则删除
drop table Department
go
--创建数据表(部门、职位、员工。。)
--创建部门表
create table Department
(
Departmentld int identity(10,1)primary key,--主键,标识列,10代表初始值为10个,1代表按一位来递增
DepartmentName varchar(50) not null--创建50个字节的姓名列
)
go
if exists(select *from sysobjects where name='Post')--判断是否有该数据表,若有则删除
drop table Post
go
--创建职位表(部门、职位、员工。。)
create table Post
(
Postld int identity(10,1)primary key,--主键,标识列
PostName varchar(50) not null--创建50个字节的姓名列
)
go
if exists(select *from sysobjects where name='Employee')--判断是否有该数据表,若有则删除
drop table Employee
go
--创建员工表(部门、职位、员工。。)
create table Employee
(
Employeeld int identity(1000,1)primary key,--主键,标识列
EmployeeName varchar(50) not null,--创建50个字节的姓名列
NowAddress nvarchar(100)default('地址不详'),
IdNo char(18) not null check(len(IdNo) = 18),--检查约束,IdNo只能是18位
--建立主外键的引用关系
Postld int references Post(Postld),--在Post表中Postld是主键,在该表中则为外键,在该表中操作外键表数据时,对主键表(Post表)没有影响
Departmentld int references Department(Departmentld)
)
go
2.数据表的查询删除修改
use MyMISDB
go
insert into Department(DepartmentName)value('开发部'),('测试部'),('系统控制部')
select*from Department----查询出需要插入的数据
insert into Post(PostName)value('主管'),('测试开发工程师'),('软件工程师')
select*from Post
--插入数据(Employeeld是标识列,不能显式的插入数据)
insert into Employee(EmployeeName,NowAddress,IdNo,Postld,Departmentld)
values
('dary','杭州','330424200101121231',10,10),
('dary2','杭州','330424200101121233',11,11)
select*from Employee
修改使用:update employees set EmployeeName='TEST', NowAddress='海盐',IdNo= '330424200506285467' where Employeeld = 1001
删除使用:delete from employees where Employeeld =1010