优化Myschool数据库设计SQL 建库建表建约束
use master --设置当前操作的数据库位master数据库
go --一个批处理操作
--判断数据库是否已经存在,如果存在则先删除
if exists(
select * from sysdatabases where name = 'MySchool'
)
drop database MySchool --删除数据库
go
--执行sp_configure启用xp_cmdshell
EXEC sp_configure 'show advanced options',1 --显示高级配置信息
GO
RECONFIGURE --重新配置
GO
EXEC sp_configure 'xp_cmdshell',1 --打开xp_cmdshell选项
GO
RECONFIGURE --重新配置
GO
--创建数据库所在的文件夹
EXEC xp_cmdshell 'mkdir D:\projectDB'
go
--创建MySchool数据库
create database MySchool
on
(
name = 'MySchool_data', --逻辑名称
filename = 'D:\projectDB\MySchool_data.mdf',--物理路径
size = 5mb, --初始大小
maxsize = 100mb,--最大值
filegrowth = 15% --文件增长率
)
log on
(
name = 'MySchool_log', --逻辑名称
filename = 'D:\projectDB\MySchool_log.ldf',--物理路径
size = 2mb, --初始大小
maxsize = 20mb,--最大值
filegrowth = 1mb --文件增长率
)
go
use MySchool --设置当前操作的数据库为MySchool
go
--判断student表是否存在,如果存在则先删除
if exists(
select * from sysobjects where name='Student'
)
drop table student
go
--创建Student表
create table Student
(
StudentNo int not null , --学号,非空(必填)
LoginPwd nvarchar(20) , --密码,非空(必填)
StudentName nvarchar(20) , --姓名,非空(必填)
Sex bit , --性别,非空(必填)
GradeId int , --年级号(必填)
Phone nvarchar(50) NULL, --电话
BornDate datetime NULL, --出生日期(必填)
Address nvarchar(255) NULL, --地址
Email nvarchar(50) NULL, --邮件帐号
IDENTITYCard varchar(18) NULL --身份证号(必填)
)
go
--创建年级表
Create table Grade
(
GradeId int not null,
GradeName varchar(50) not null
)
go
--为Grade表添加主键
ALTER TABLE Grade
ADD CONSTRAINT PK_GradeID PRIMARY KEY(GradeID)
--为Student表添加约束
Alter table Student Add
constraint PK_stuNo Primary key(StudentNo), --主键约束
constraint DF_stuAddress DEFAULT('地址不详')FOR Address,--默认约束
constraint UQ_IdentityCard Unique(IDENTITYCard), --唯一约束
constraint CK_stuBornDate CHECK(BornDate > '1980-01-01'),--检查约束
constraint FK_Grade FOREIGN KEY(GradeID) REFERENCES Grade(GradeID) --外键约束
浙公网安备 33010602011771号