大型数据库第三次实验

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

南京邮电大学计算机学院

《大型数据库技术》

实验三:MySQL数据库进阶开发

姓名:班级:学号:

年月日星期

说明:斜体需要输出的部分。

1MySQL的存储过程和函数

1.1创建企业销售系统的数据库,命名为salesdb

1.2创建一张商品销售表,命名为salerecords,包括如下字段:商品ID,商品名称,

销售单价,销售数量。

以上不需要截图。

1.3创建一个存储过程,名称自订,通过输入商品ID,商品名称,销售单价,销售数量

往表中插入一条记录。

输出截图:(包括存储过程定义,调用三次存储过程,以及表的查询结果)

1.4创建一个存储过程,名称自订,通过输入商品名称往表中插入100条记录。其中,

所插入第一条记录的商品ID由现有表中商品ID的最大值+1构成,后续记录中商品ID依次递增1。所插入第一条记录的商品价格与现有表中商品价格的最小值相同,后续记录的商品价格依次递增1。商品销售数量随机生成。

输出截图:(包括存储过程定义,表中前10条查询结果)

1.5创建一个存储过程,名称自定,通过输入商品ID的最小值,最大值,将表中商品

ID处于(最小值,最大值)范围内,且为偶数的记录删除,包括最小值与最大值本身。此处不考虑商品ID不存在的情况,在实验时请选择1.4中创建的商品ID范围的子集。

输出截图:

1.6创建两个事件调度器,第一个每3秒往1.2的表中插入一条记录,第二个每30秒清

空1.2的表中的所有记录。

输出截图:(只需要截取两个事件调度器的定义,以及在三个不同时刻查询表中记录count (*)的结果。)

2MySQL的触发器

2.1定义一个触发器,实现如下功能,在往1.2的表中插入记录的时候,将记录同时也插

入到一张新的表sale_backup.

输出截图:(包括触发器定义,以及调用了1.4的存储过程后sale_backup的前10条记录)

3MySQL的事务控制

3.1启动一个事务往1.2的表中插入任意三条记录,提交在第二条和第三条记录中定义

一个savepoint,在插入完成后回滚到定义的savepoint。

输出截图:(包括整个操作过程)

3.2 简述读锁和写锁的区别

a、对MyISAM表的读操作(加读锁),不会阻塞其他进程对同一表的读请求,但会阻塞对同一表的写请求。只有当读锁释放后,才会执行其它进程的写操作。

b、对MyISAM表的写操作(加写锁),会阻塞其他进程对同一表的读和写操作,只有当写锁释放后,才会执行其它进程的读写操作。

简而言之,就是读锁会阻塞写,但是不会堵塞读。而写锁则会把读和写都堵塞。

4MySQL的分区

4.1分别使用range分区(自行决定区间)和hash分区创建对应与1.2中表的分区。输出截图:

4.2插入100条记录后,确认分区中的记录分布情况。

输出截图:

相关文档
最新文档