8.2 数据库的实施

8.2 数据库的实施

1.创建数据库

要求:创建名称为bookMIS的数据库,字符集为utf8,排序规则为utf8_general_ci。

2.创建数据表

要求:按照表8-1~表8-9创建数据表。

3.数据录入(表8-10~表8-13)

表8-10 出版社数据信息表

表8-11 图书数据信息表

表8-12 会员数据信息表

表8-13 员工数据信息表

代码实现:

4.数据修改与删除

①修改员工名称为张旭的电话号码为189××××8978。

②修改isbn号为978766628373的图书的图书价格为45,出版社编号为p002。

③删除图书价格小于40元的图书信息。

④删除所有联系电话为空的会员信息。

代码实现:

5.触发器的应用

触发器是一种特殊的存储过程,它不能被显式地调用,而是在对表进行插入记录,更新记录或者删除记录操作时被自动激活,所以触发器可以用来对表实施复杂的完整性约束。触发器可以减少人工输入数据出错的机会,提高数据的可靠性。

要求:进行图书采购入库和销售出库时触发器自动触发,维护图书的库存量。

①图书采购入库时自动增加库存。

图书采购入库单见表8-14。

表8-14 图书采购入库单

②图书采购退货,自动减少库存。

③图书销售,库存自动减少。

图书销售出库单见表8-15。

表8-15 图书销售出库单

④图书销售退货。

6.数据查询

①查询所有会员信息。

②查询图书类别名称、isbn号、图书名称、图书价格。

③查询所有姓王的会员信息。

④查询从清华出版社采购的所有图书信息。

代码实现:

①select*from publisher;

②select tname,isbn,bname,bprice from books,booktypewhere books.tid=booktype.tid;

③select*from customerswhere cname like

④select*from bookswhere pid in;(selectpid from publisher where pname=清华大学出版社);

7.索引的应用

索引是表或视图关联的物理的数据库结构,索引包含由表或者视图中的一列或多列生成的键,可以加快表或视图中检索行的速度。在图书销售系统中,常常根据图书名称进行信息的检索。

要求:在图书信息表中图书名称上创建索引。

8.视图的应用

视图是从一个或者几个基本表或者视图中导出来的虚拟表,是从现有的基本表中抽取若干子集组成用户的“专用表”。

在图书销售系统中,利用视图从多张表中查询数据,生成虚表,用户查询数据时,直接从视图中查询,大大加快查询速度,同时查询简化代码。

要求:

①创建视图查询显示:图书类别、图书名称、库存数量。

②创建视图查询:出版社号、出版社名称、ISBN、图书名称。

9.存储过程的应用

存储过程是一组用于完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行存储过程。

在图书馆管理系统中,存储过程可以提高数据库的执行速度,减少数据库开发人员的工作量等。

要求:

①根据给定的经手人姓名查询所有该员工采购图书信息。

②根据给定的图书名称部分信息查询所有图书名称、ISBN、出版社名称、出版社联系人。