实验一数据库与数据表定义
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) 表结构的修改,要求:
①修改图书表结构,要求出版社名称和入库时间不允许为空。
②修改读者表结构,要求读者身份证号不允许为空。
实验结果如下:
创建数据库:
CREATE DATABASE BookDB48
ON 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)
脚本如下:(创建的四个表)
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,--作者名字
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) )
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,--读者编号
bookNo 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)REFERENCES Book48(bookNo)
)
表结构的修改:
ALTER TABLE Book48 DROP COLUMN publishingName
ALTER TABLE Book48 ALTER COLUMN publishingName varchar(20)NOT NULL ALTER TABLE Book48 DROP COLUMN shopDate
ALTER TABLE Book48 ALTER COLUMN shopDate datetime NOT NULL
ALTER TABLE Book48 DROP COLUMN identifycard
ALTER TABLE Reader48 ALTER COLUMN identifycard char(18)NOT NULL 结果图如下(模式导航图):
3、实验小结和归纳
小结:本次实验是我们学习数据库原理以来的第一次实验,相比而言是很生疏的,并且这次实验出现了很多的问题,例如:做实验的时候,总是运行的成功的语句,导致后来生成的结果总是存在某些已经存在的对象,十分麻烦。
后来我想了个办法,就是在编程代码的同时,写下删除语句,在自己运行错误的时候,可以删除原先已经存在的对象和语句,以便我们后来可以更好的编写。
归纳:这次实验包括创建数据库,在数据库中创建表,给表中设置主外键,并且将其约束以便能够编成模式导航图,唯一美中不足的就是不能够有效的知道我们所编写的表具体体现在那里,可视化不够明显,让我们不能很有效的认识它!。