数据库原理实验1
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一数据库与数据表定义
1 实验目的与要求
(1)掌握数据库的建立、删除和修改操作。
(2)理解基本表之间的关系,掌握表结构的建立、修改和删除操作,创建模式导航图。
2 实验内容与结果
实验内容:
(1)创建一个BookDB数据库,要求至少一个数据文件和一个日志文件。
(2) 创建图书管理相关4张关系表,表结构如图3-1至图3-4所示。
图3-1图书分类表BookClass
图3-2 图书表Book
图3-3读者表Reader
图3-4 借阅表Borrow
(3)表结构的修改,要求:
①修改图书表结构,要求出版社名称和入库时间不允许为空。
②修改读者表结构,要求读者身份证号不允许为空。
实验结果如下:
创建数据库:
CREATEDATABASE BookDB48
ONPRIMARY
(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)
脚本如下:(创建的四个表)
CREATETABLE BookClass48(
classNo char(3)NOTNULL,--图书分类号
className varchar(20)NOTNULL,--图书分类名称
CONSTRAINT BookClass48PK PRIMARYKEY(classNo)
)
CREATETABLE Book48(
bookNo char(10)NOTNULL,--图书编号
classNo char(3)NOTNULL,--图书分类号
bookName varchar(40)NOTNULL,--图书名称
authorName varchar(8)NOTNULL,--作者名字
publishingName varchar(20)NULL,--出版社名称
publishingNo char(17)NULL,--出版社编号
publishingDate datetime NULL,--出版社日期
price numeric(7,2)NULL,--单价
shopDate datetime NULL,--入库时间
shopNum datetime NULL,--入库数量
CONSTRAINT Book48PK PRIMARYKEY(bookNo),
CONSTRAINT Book48FK FOREIGNKEY(classNo)REFERENCES BookClass48(classNo) )
CREATETABLE Reader48(
readerNo char(8)NOTNUlL,--读者编号
readerName varchar(8)NOTNULL,--姓名
sex char(2)null,--性别
identifycard char(18)null,--身份证号
workUnit varchar(50)null,--工作单位
borrowCount tinyint null,--借书数量
CONSTRAINT Reader48PK PRIMARYKEY(readerNo)
)
CREATETABLE Borrow48(
readerNo char(8)NOTNUlL,--读者编号
bookNo char(10)NOTNULL,--图书编号
borrowDate datetime notnull,--借阅日期
shouldDate datetime notnull,--应归还的日期
returnDate datetime null,--归还日期
CONSTRAINT Borrow48PK PRIMARYKEY(readerNo,bookNo),
CONSTRAINT Borrow48FK1 FOREIGNKEY(readerNo)REFERENCES
Reader48(readerNo),
CONSTRAINT Borrow48FK2 FOREIGNKEY(bookNo)REFERENCES Book48(bookNo) )
表结构的修改:
ALTERTABLE Book48DROP COLUMN publishingName
ALTERTABLE Book48 ALTERCOLUMN publishingName varchar(20)NOTNULL ALTERTABLE Book48DROP COLUMN shopDate
ALTERTABLE Book48 ALTERCOLUMN shopDate datetime NOTNULL ALTERTABLE Book48DROP COLUMN identifycard
ALTERTABLE Reader48 ALTERCOLUMN identifycard char(18)NOTNULL
结果图如下(模式导航图):
3、实验小结和归纳
小结:本次实验是我们学习数据库原理以来的第一次实验,相比而言是很生疏的,并且这次实验出现了很多的问题,例如:做实验的时候,总是运行的成功的语句,导致后来生成的结果总是存在某些已经存在的对象,十分麻烦。后来我想了个办法,就是在编程代码的同时,写下删除语句,在自己运行错误的时候,可以删除原先已经存在的对象和语句,以便我们后来可以更好的编写。
归纳:这次实验包括创建数据库,在数据库中创建表,给表中设置主外键,并且将其约束以便能够编成模式导航图,唯一美中不足的就是不能够有效的知道我们所编写的表具体体现在那里,可视化不够明显,让我们不能很有效的认识它!