1、实验一 数据库与数据表定义1 实验目的与要求(1) 掌握数据库的建立、删除和修改操作。(2) 理解基本表之间的关系,掌握表结构的建立、修改和删除操作,创建模式导航图。2 实验内容与结果实验内容:(1) 创建一个BookDB数据库,要求至少一个数据文件和一个日志文件。(2) 创建图书管理相关4张关系表,表结构如图3-1至图3-4所示。属性名类型空值约束属性含义classNochar(3)not null图书分类号classNamevarchar(20)not null图书分类名称图3-1 图书分类表BookClass属性名类型空值约束属性含义bookNochar(10)not null图书编号c
2、lassNochar(3)not null分 类 号bookNamevarchar(40)not null图书名称authorNamevarchar(8)not null作者姓名publishingNamevarchar(20)null出版社名称publishingNochar(17)null出版社编号pricenumeric(7, 2)null单 价publishingDatedatetimenull出版日期shopDatedatetimenull入库时间shopNumnumeric(3)null入库数量图3-2 图书表Book属性名类型空值约束属性含义readerNochar(8)Not
3、null读者编号readerNamevarchar(8)Not null姓 名Sexchar(2)null性 别identifycardchar(18)null身份证号workUnitvarchar(50)null工作单位borrowCounttinyintnull借书数量图3-3 读者表Reader属性名类型空值约束属性含义readerNochar(8)not null读者编号bookNochar(10)not null图书编号borrowDatedatetimenot null借阅日期shouldDatedatetimenot null应归还日期returnDatedatetimenull
4、归还日期图3-4 借阅表Borrow(3) 表结构的修改,要求: 修改图书表结构,要求出版社名称和入库时间不允许为空。 修改读者表结构,要求读者身份证号不允许为空。实验结果如下:创建数据库:CREATE DATABASE BookDB48ON PRIMARY(NAME=BookDB, FILENAME=C:数据库文件BookDB48.mdf, SIZE=3,MAXSIZE=20,FILEGROWTH=1)LOG ON(NAME=BookDB_LOG, FILENAME=C:数据库文件BookDB48_log.ldf, SIZE=3,MAXSIZE=20,FILEGROWTH=1)脚本如下:(创
5、建的四个表)CREATE TABLE BookClass48(classNo char(3) NOT NULL, -图书分类号className varchar(20) NOT NULL,-图书分类名称CONSTRAINT BookClass48PK PRIMARY KEY(classNo)CREATE TABLE Book48(bookNo char(10) NOT NULL,-图书编号classNo char(3) NOT NULL, -图书分类号bookName varchar(40) NOT NULL,-图书名称authorName varchar(8) NOT NULL ,-作者名字
6、publishingName varchar(20) NULL,-出版社名称publishingNo char(17) NULL,-出版社编号publishingDate datetime NULL,-出版社日期price numeric(7,2) NULL,-单价shopDate datetime NULL ,-入库时间shopNum datetime NULL,-入库数量CONSTRAINT Book48PK PRIMARY KEY(bookNo),CONSTRAINT Book48FK FOREIGN KEY(classNo) REFERENCES BookClass48(classNo
7、)CREATE TABLE Reader48(readerNo char(8) NOT NUlL,-读者编号readerName varchar(8) NOT NULL,-姓名sex char(2) null,-性别identifycard char(18) null,-身份证号workUnit varchar(50) null,-工作单位borrowCount tinyint null,-借书数量CONSTRAINT Reader48PK PRIMARY KEY(readerNo)CREATE TABLE Borrow48(readerNo char(8) NOT NUlL,-读者编号boo
8、kNo char(10) NOT NULL,-图书编号borrowDate datetime not null,-借阅日期shouldDate datetime not null,-应归还的日期returnDate datetime null,-归还日期CONSTRAINT Borrow48PK PRIMARY KEY(readerNo,bookNo),CONSTRAINT Borrow48FK1 FOREIGN KEY(readerNo)REFERENCES Reader48(readerNo),CONSTRAINT Borrow48FK2 FOREIGN KEY(bookNo)REFERE
9、NCES Book48(bookNo)表结构的修改:ALTER TABLE Book48 DROP COLUMN publishingNameALTER TABLE Book48 ALTER COLUMN publishingName varchar(20) NOT NULLALTER TABLE Book48 DROP COLUMN shopDateALTER TABLE Book48 ALTER COLUMN shopDate datetime NOT NULLALTER TABLE Book48 DROP COLUMN identifycardALTER TABLE Reader48 A
10、LTER COLUMN identifycard char(18) NOT NULL结果图如下(模式导航图):3、实验小结和归纳 小结:本次实验是我们学习数据库原理以来的第一次实验,相比而言是很生疏的,并且这次实验出现了很多的问题,例如:做实验的时候,总是运行的成功的语句,导致后来生成的结果总是存在某些已经存在的对象,十分麻烦。后来我想了个办法,就是在编程代码的同时,写下删除语句,在自己运行错误的时候,可以删除原先已经存在的对象和语句,以便我们后来可以更好的编写。 归纳:这次实验包括创建数据库,在数据库中创建表,给表中设置主外键,并且将其约束以便能够编成模式导航图,唯一美中不足的就是不能够有效的知道我们所编写的表具体体现在那里,可视化不够明显,让我们不能很有效的认识它!