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、出版社名称、出版社联系人。