CREATE DATABASE 数据库名
如果数据库名已经存在,则会提示不能创建,这里可以加上“if not exists"从句就可以避免类似错误,如下所示:
CREATE DATABASE IF NOT EXISTS 数据库名
/*创建bbsDB数据库*/use master
if exists(select * from sysdatabases where name='bbsDB')
drop database bbsDB
create database bbsDB
on
(
name='bbsDB_data',
filename='D:\project\bbsDB_data.mdf',
size=10,
filegrowth=20%
)
log on
(
name='bbsDB_log',
filename='D:\project\bbsDB_log.ldf',
size=3,
maxsize=20,
filegrowth=10%
)
/*创建bbsUsers表*/
use bbsdb
if exists(select * from sysobjects where name='bbsUsers')
drop table bbsUsers
create table bbsUsers
(
UID int identity(1,1) not null,--学号,标识列
Uname varchar(15) not null,--用户昵称
Upassword varchar(10) not null,--用户密码
Uemail varchar(20),--邮箱地址
Usex bit not null,--用户性别
Uclass int,--等级
Uremark varchar(20),--备注
UregDate datetime not null,--注册日期
Ustate int null, --状态
Upoint int null--用户积分
)
/*创建bbsUsers表中的约束*/
alter table bbsUsers
add constraint PK_uid primary key(uid),--主键
constraint DF_Upassword default(888888) for Upassword,--初始密码为888888
constraint DF_Usex default (1) for Usex,--性别默认为男
constraint DF_UregDate default (getdate()) for UregDate,--注册日期默认为系统日期
constraint DF_Ustate default(0) for Ustate,--状态默认为离线
constraint DF_Upoint default(20) for Upoint,--积分默认为20点
constraint CK_Uemail check(Uemail like '%@%'),--电子邮件必须含有@符号
constraint CK_Upassword check (len(Upassword)>=6)--密码至少为六位
/*创建bbsSection表*/
use bbsdb
if exists(select * from sysobjects where name='bbsSection')
drop table bbsSection
create table bbsSection
(
SID int identity(1,1) not null,--板块标号,自动增长
Sname varchar(32) not null,--版块名称
SmasterID int not null,--版主用户ID
Sprofile varchar(20) null,--版面简介
SclickCount int null, --点击率
StopicCount int null--发帖数
)
/*创建bbsSection表中的约束*/
alter table bbsSection
add constraint PK_sid primary key(sid),--主键
constraint DF_SclickCount default(0) for SclickCount,--点击率默认为0
constraint DF_StopicCount default(0) for StopicCount,--发帖数默认为0
constraint DF_SmasterID foreign key(SmasterID)references bbsUsers (UID)--外键
/*创建bbsTopic表*/
use bbsdb
if exists(select * from sysobjects where name='bbsTopic')
drop table bbsTopic
create table bbsTopic
(
TID int identity(1,1) not null,--帖子编号,自动增长
TsID int not null,--发帖人ID
TuID int not null,--版主用户ID
TreplyCount int null,--回复数量
Tface int null, --发帖表情
Ttopic varchar(20) not null,--标题
Tcontents varchar(30) not null,--正文
Ttime datetime null,--发帖时间
TclickCount int null,--点击数
Tstate int not null,--状态
TlastReply datetime null--回复时间
)
/*创建bbsTopic表的约束*/
alter table bbsTopic
add constraint DF_TreplyCount default(0) for TreplyCount,--回复数量默认为0
constraint PK_tid primary key(tid),--主键
constraint DF_TclickCount default (0) for TclickCount,--点击数默认为0
constraint DF_Tstate default (1) for Tstate,--状态默认为1
constraint DF_Ttime default (getdate()) for Ttime,--发帖时间默认为系统日期
constraint CK_Tcontents check (len(Tcontents)>=6),--正文必须大于六个字符
constraint CK_TlastReply check ((TlastReply)>(Ttime)),--最后回复时间必须晚于发帖时间
constraint DF_TsID foreign key(TsID)references bbsSection (SID),--外键
constraint DF_TuID foreign key(TuID)references bbsUsers (UID)--外键
/*创建bbsReply表*/
use bbsdb
if exists(select * from sysobjects where name='bbsReply')
drop table bbsReply
create table bbsReply
(
RID int identity(1,1) not null,--自动编号,帖子编号
RtID int not null,--主贴ID
RsID int not null,--板块ID
RuID int not null,--回帖人ID
Rface int null, --回帖表情
Rcontents varchar(30) not null,--正文
Rtime datetime null,--回帖时间
RclickCount int null--点击数
)
/*创建bbsReply表的约束*/
alter table bbsReply
add constraint DF_Rtime default (getdate()) for Rtime,--回帖时间默认为系统日期
constraint CK_Rcontents check (len(Rcontents)>=6),--正文必须大于六个字符
constraint DF_RtID foreign key(RtID)references bbsTopic (TID),--外键
constraint DF_RsID foreign key(RsID)references bbsSection (SID),--外键
constraint DF_RuID foreign key(RuID)references bbsUsers (UID)--外键
差不多,你改一下吧!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)