环境:Windows 10操作系统,SQL Server 2019开发平台。
创建数据库:1、按要求创建数据库
数据库名为db_HX;
数据库中包含一个主数据文件,逻辑文件名为HX_DATA,物理文件名为HX_DATA.MDF,文件的初始容量为5MB,最大容量为15MB,文件容量递增值为2MB;
数据库中包含一个辅数据文件,逻辑文件名为HX_DATA1,物理文件名为HX_DATA1.NDF,文件的初始容量为1MB,文件大小不受限制,文件增长量为20%;
事务日志文件的逻辑文件名为HX_LOG,物理文件名为HX_LOG.LDF,初始容量为3MB,最大容量为10MB,文件容量递增值为1MB;
create database db_HX on (name=HX_DATA,filename=‘E:Fore termHX_DATA.MDF’,size=5MB,maxsize=15MB,filegrowth=2MB), (name=HX_DATA1,filename=‘E:Fore termHX_DATA1.NDF’,size=1MB,maxsize=unlimited,filegrowth=20%) log on (name=HX_LOG,filename=‘E:Fore termHX_LOG.LDF’,size3MB,maxsize=10MB,filegrowth=1MB)
2、按要求对数据库进行修改
在数据库db_HX中添加一个数据文件,逻辑文件名为HX_DATA2,文件的初始容量为3MB,最大容量为15MB,文件容量递增值为2MB;
将事务日志文件的最大容量改为20MB,文件容量递增值为2MB;
ALTER DATABASE db_HX ADD FILE (NAME='HX_DATA',FILENAME='D:Fore termHX_DATA2.ndf',SIZE=3MB,MAXSIZE=15MB,FILEGROWTH=1MB)
3、按要求对数据库文件进行删除
将数据库db_HX中刚添加的HX_DATA1数据库文件删除
DBCC SHRINKFILE(HX_DATA2,EMPTYFILE) ALTER DATABASE db_HX REMOVE FILE HX_DATA2
4.删除数据库db_HX
DROP DATABASE db_HX
8.将数据库db_HX进行分离和附加操作。
SP_DETACH_db[db_HX] --分离 SP_ATTACH_DB db_HX,'D:Fore termdb_HX.mdf' --附加
9.创建一个包含多个数据文件和日志文件的数据库db_MNS,该数据库包含两个初始大小为15MB的数据文件和两个5MB的日志文件。
创建数据表:数据表1:书籍信息表(tb_BookInfo)
| 存储内容 | 存储书籍信息情况 | |||
| 字段名称 | 中文意义 | 数据类型 | 数据长度 | 其它 |
| SJBH | 书籍编号 | char | 10 | NOT NULL |
| SJMC | 书籍名称 | varchar | 20 | NOT NULL |
| LBBH | 类别编号 | char | 2 | |
| CBS | 出版社 | varchar | 30 | |
| ZZ | 作者 | varchar | 20 | |
| DJRQ | 登记日期 | Datetime | ||
| SFJC | 是否借出 | bit | ||
(1)利用T-SQL完成书籍信息表(tb_BookInfo)的创建
CREATE TABLE tb_BookInfo ( SJBH char(10) NOT NULL, SJMC char(10) NOT NULL, LBBH char(2), CBS varchar(30), DJRQ Datetime, SFJC bit )
(2)利用T-SQL在书籍信息表(tb_BookInfo)中添加以下约束:
1)在书籍编号字段上添加主键约束
2)在类别编号字段上添加外键约束
3)在登记日期字段上添加当前日期
4)在是否借出字段上默认值为0
*写出“应还书日期>借书日期约束语句 constraint ck_tb_LentInfo_YHSRQ check(YHSRQ > JSRQ)
ALTER TABLE tb_BookInfo
ADD CONSTRAINT pk_tb_BookInfo_SJBH PRIMARY KEY(SJBH)
ALTER TABLE tb_BookInfo
ADD CONSTRAINT fk_tb_BookInfo_LBBH FOREIGN KEY(LBBH) REFERENCES tb_BooktYPE(LBBH)
ALTER TABLE tb_BookInfo
ADD CONSTRAINT def_tb_BookInfo_DJRQ DEFAULT('getdate()') FOR DJRQ
ALTER TABLE tb_BookInfo
ADD CONSTRAINT def_tb_BookInfo_SFJC DEFAULT('0') FOR SFJC
数据表2:读者信息表(tb_ReaderInfo)
| 存储内容 | 存储读者基本信息情况 | |||
| 字段名称 | 中文意义 | 数据类型 | 数据长度 | 其它 |
| DZBH | 编号 | char | 10 | 主键 |
| DZMC | 姓名 | varchar | 20 | NOT NULL |
| BZSJ | 办证日期 | Datetime | 默认getdate() | |
| LXDH | 联系电话 | varchar | 30 | NOT NULL |
数据表3:书籍类别表(tb_BookType)
| 存储内容 | 存储书籍类别信息 | |||
| 字段名称 | 中文意义 | 数据类型 | 数据长度 | 其它 |
| LBBH | 类别编号 | char | 2 | 主键 |
| LBMC | 类别名称 | char | 30 | NOT NULL |
数据表4:借书信息表(tb_LentInfo)
| 存储内容 | 存储书籍借阅信息情况 | |||
| 字段名称 | 中文意义 | 数据类型 | 数据长度 | 其它 |
| DZBH | 读者编号 | char | 10(外键) | 复合主键 |
| SJBH | 书籍编号 | char | 10(外键) | |
| JSRQ | 借书日期 | Datetime | NOT NULL | |
| YHSRQ | 应还书日期 | Datetime | 约束 应还>借书日 | NOT NULL |
| HSRQ | 实还书日期 | Datetime | ||
CREATE TABLE tb_ReaderInfo --表一 ( DZBH char(10) primary key, DBZC varchar(20) NOT NULL, BZSJ datetime default getdate(), LXDH varchar(30) NOT NULL ) CREATE TABLE tb_BookType --表二 ( LBBH char(10) primary key, LBMC char(30) NOT NULL ) CREATE TABLE tb_LentInfo ( DZBH char(10) foreign key references tb_ReaderInfo(DZBH), SJBH char(10) foreign key references tb_BookInfo(SJBH), JSRQ datetime not null, YHSRQ datetime, constraint pk_tb_LentInfo primary key(DZBH,SJBH), constraint ck_tb_LentInfo_YHSRQ check(YHSRQ>JSRQ) )
(4)在借书信息表(tb_LentInfo)表中加入一列colBZ(备注), 数据类型varchar,长度100
ALTER TABLE tb_LentInfo ADD colBZ varchar(10)
(5)删除colBZ(备注)列
ALTER TABLE tb_LentInfo DROP column colBZ
(6)删除借书信息表(tb_LentInfo)中应还书日期字段上的检查约束
ALTER TABLE tb_LentInfo DROP ck_tb_LentInfo_YHSRQ
任务拓展(课外)
根据以下提供的数据库、表结构、表中记录等信息完成相应的Transact-SQL语句。
产品销售数据库,数据库名为db_CPXS。数据库db_CPXS包含下列3个表:
- 产品表:表名为tb_CP,描述产品信息;
- 销售商表:表名为tb_XSS,描述销售商信息;
- 产品销售表:表名为tb_XSCP,描述产品的销售信息。
各表的结构分别如表1-表3所示,表中约束自行设计:
表1 产品表(tb_CP)表结构
| 列名 | 数 据 类 型 | 长度 | 是否允许为空值 | 说 明 |
| CPBH | 字符型(char) | 6 | 产品编号 | |
| CPMC | 字符型(char) | 30 | 产品名称 | |
| JG | 浮点型(float) | 8 | √ | 价格 |
| KCL | 整型(int) | 4 | √ | 库存量 |
表2 销售商(tb_XSS)表结构
| 列名 | 数据类型 | 长度 | 是否允许为空值 | 说 明 |
| XSBH | 字符型(char) | 6 | 销售商编号 | |
| XSMC | 字符型(char) | 30 | 销售商名称 | |
| DQ | 字符型(char) | 10 | √ | 地区 |
| FZR | 字符型(char) | 8 | √ | 负责人 |
| DH | 字符型(char) | 12 | √ | 电话 |
| BZ | 文本(text) | 16 | √ | 备注 |
表3 产品销售(tb_XSCP)表结构
| 列名 | 数据类型 | 长度 | 是否允许为空值 | 说 明 |
| CPBH | 字符型(char) | 6 | 产品编号 | |
| XSBH | 字符型(char) | 6 | 销售商编号 | |
| XSSJ | Datetime | 8 | 销售时间 | |
| SL | 整型(int) | 4 | 数量 | |
| JE | 浮点型(float) | 8 | 金额 |
请设计数据表1-表3的约束,并写出创建数据表的T-SQL语句。



