sql语句创建数据库

一、 使用TSQL语句,创建“借书管理系统”数据库(10分)。
二、 使用TSQL语句,按照下面的表结构进行表的创建。
1、学生情况表(XS)结构 (5分)
列名 数据类型 长度 可否为空 默认值 说明
学号 Char 8 否 无 主键
姓名 Char 8 否 无
性别 Bit 否 1
出生日期 datetime 否 无
总学分 int 是 0
备注 Text 是 无
2、图书信息表(TS)结构(5分)
列名 数据类型 长度 可否为空 默认值 说明
图书编号 Char 8 否 无 设置主键
图书名称 Char 40 否 无
作者 Char 8 否 无
出版社 Char 50 否 无
出版日期 datetime 是 无
价格 money 是 无
3、学生借书表(XS_JS)结构(5分)
列名 数据类型 长度 可否为空 默认值 说明
编号 int 否 无 主键,并设置
标识列
学号 Char 8 否 无
借书证号 Char 20 否 无
图书编号 Char 8 否 无
借出日期 datetime 是 无
归还日期 datetime 是 无
备注 text
三、使用SQL Server管理平台向学生信息表(XS)、图书信息表(TS)、学生借书表(XS_JS) 中插入数据。其中一定要添加一个姓名字段为“张三”的记录。(5分)
四、为TS表的“出版社”添加默认值约束,设置默认值“机械工业出版社”(5分);
修改XS表,为“总学分”列添加CHECK约束,使得其范围在150——200之间(10分);
创建外键约束:XS表为主表,XS_JS表为从表,将XS_JS表的学号字段定义为外键列,该列参照XS表的“学号”列;TS表为主表,XS_JS表为从表,将XS_JS表的图书编号字段定义为外键列,该列参照TS表的“图书编号”列。(15分,没问7.5分)
五、 查询操作
1、 查询所有姓张的学生的学号和姓名(10分)。
2、 查询张三同学所借的书的名称(10分)。
六、 创建一个存储过程,使得在执行该存储过程时,查询指定学生所借的书的名称(20分)。

/*创建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)--外键

差不多,你改一下吧!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-06-26
不要在这问了.直接找书吧,很多教材都现成的这东西.当例题讲的