数据库图书管理建表与修改表

根据调研选定实体及相应属性画出E-R图

2、将E-R模型转换为对应关系模型,并指出主码和外码  

图书book(书号,类别,出版社,作者,书名,定价,备注);

读者reader(编号,姓名,单位,性别,电话);

借阅borrow(书号,读者编号,借阅日期,还书日期)。

3. 建数据库及表,定义各属性的域 。并完成主码、外码的定义。    

根据上面的表结构,要求:① 对每个属性选择合适的数据类型;② 定义每个表的主码、是否允许空值和默认值等列级数据约束;③ 对每个表的名字和表中属性的名字尽可能用英文符号标识。

实现相关约束(预习自学内容):①建立上述三个表的联系,即实现:借阅表与图书表之间、借阅表与读者表之间的外码约束;② 实现读者性别只能是“男”或“女”的约束等。

(1)新建数据库

 CREATE DATABASE Book_Reader_DB_20170513

 CONTAINMENT = NONE

 ON  PRIMARY

(

    NAME = 'Book_Reader_DB_20170513',

    FILENAME = 'C:Microsoft SQL ServerMSSQL14.MSSQLSERVERMSSQLDATABook_Reader_DB_20170513.mdf' ,

    SIZE = 8192KB ,

    MAXSIZE = 2048GB,

    FILEGROWTH = 65536KB

)

LOG ON

(

    NAME = 'Book_Reader_DB_20170513_log',

    FILENAME = 'C:Microsoft SQL ServerMSSQL14.MSSQLSERVERMSSQLDATABook_Reader_DB_20170513_log.ldf' ,

    SIZE = 8192KB ,

    MAXSIZE = 2048GB ,

    FILEGROWTH = 65536KB

)

(2)新建图书表

【操作语句】

            create table Book

(

    Bid char(6) primary key,

    Btype nvarchar(10) not null,

    Bname nvarchar(50) not null,

    Bauthor nvarchar(20) not null,

    Pressname nvarchar(30) not null,

    Bprice float not null ,

    Btip nvarchar(50)

)

(3)新建读者表

【操作语句】

create table Reader

(

    Rid char(8) primary key,

    Rname nvarchar(10) not null,

    Rsex nchar(2) not null check(Rsex='男' or Rsex='女'),

    Rdepartment nvarchar(20) not null,

    Rnumber char(11) 

)

(4)新建借阅表

【操作语句】

      create table RB

(

        Rid char(8) foreign key references Reader(Rid),

        Bid char(6) foreign key references Book(Bid),

        BorrowDate datetime not null default getdate(),

        ReturnDate datetime,

        primary key(Rid, Bid)

)

4、使用inesert语句向表中插入适当数据

--向Reader表插入数据:

                  insert Reader values('2017258','东方','女','软件学院','12345677654'),

('2017290','西门吹雪','男','软件学院','24190520724'),

('2017250','上官','女','软件学院','35729264967'),

('2017345','南宫问天','男','计算机学院','35705724064'),

('2017336','北冥雪','女','计算机学院','19036330639')

--向Book表插入数据:

insert Book values('111000','计算机','计算机组成原理','盖茨','清华出版社',32.8,'出版于2012年'),

('111110','计算机','计算机网络','扎克','清华出版社',28.2,'出版于2015年'),

('111120','计算机','计算机发展史','艾比恩姆','清华出版社',30.6,'出版于2013年'),

('111119','数据库','SQL Server从入门到精(fang)通(qi)','王琳','中国人民大学出版社',32.8,'出版于2012年'),

('111205','数据库','MY SQL实践','苏铭','中国科技大学出版社',38.3,'出版于2016年'),

('111250','操作系统','Linux就该这么学','托沃兹','北京大学出版社',32.1,null)

--向RB表(借阅表)插入数据:

insert RB values('2017258','111000','2018-10-28','2018-11-13'),

('2017258','111120','2018-10-28',null),

('2017290','111119','2018-10-25','2018-11-27'),

('2017250','111119','2018-10-24','2018-11-28'),

('2017336','111205','2018-10-28','2018-11-13'),

('2017345','111000','2018-10-28','2018-11-13'),

('2017345','111250','2018-10-10','2018-10-28') 

 update和alter的使用:

1)在实验一的基础上使用数据定义语言在图书表中增加两个属性:数量和购买日期。

【定义语句】

              alter table Book add Bcount int not null default 0

alter table Book add Bbuytime datetime

【实验结果】

2)使用update语句来修改图书表中的数量和购买日期数据

【操作语句】

update Book set Bcount=200, Bbuytime='2015-2-3' where Btype='计算机'

update Book set Bcount=300, Bbuytime='2015-3-5' where Btype='数据库'

update Book set Bcount=500, Bbuytime='2017-7-7' where Btype='操作系统'

原文地址:https://www.cnblogs.com/DSYR/p/9898772.html