实验六 4学时
触发器、权限管理、数据备份,实验报告(四、五、六)
一、学习目标
- 了解什么是触发器
- 掌握创建触发器的方法
- 掌握查看触发器的方法
- 掌握触发器的使用技巧
- 掌握删除触发器的方法
- 熟练掌握使用触发器的方法和技巧
- 了解什么是权限表
- 掌握权限表的用法
- 掌握账户管理的方法
- 掌握权限管理的方法
- 掌握访问控制的方法
- 熟练掌握新建用户的方法和技巧
- 了解什么是数据备份
- 掌握各种数据备份的方法
- 掌握各种数据恢复的方法
- 掌握数据库迁移的方法
- 掌握表的导入和导出方法
- 熟练掌握数据备份与恢复的方法和技巧
二、实验内容
- 掌握触发器的创建和调用方法
下面是创建触发器的实例,每更新一次persons表的num字段后都要更新sales表对应的sum字段。其中,persons表结构、sales表结构以及persons表结构的内容如下所示,按照后面的具体要求完成操作。
persons表结构
|
字段名 |
数据类型 |
主键 |
外键 |
非空 |
唯一 |
自增 |
|
name |
varchar(40) |
否 |
否 |
是 |
否 |
否 |
|
num |
int |
否 |
否 |
是 |
否 |
否 |
sales表结构
|
字段名 |
数据类型 |
主键 |
外键 |
非空 |
唯一 |
自增 |
|
name |
varchar(40) |
否 |
否 |
是 |
否 |
否 |
|
num |
int |
否 |
否 |
是 |
否 |
否 |
persons表结构
|
name |
num |
|
xiaoming |
20 |
|
xiaojun |
69 |
步骤如下:
①创建一个业务统计表persons
create table persons (
name varchar(40) not null,
num int(11) not null);
②创建一个销售额表sales
create table sales (
name varchar(40) not null,
num int(11) not null);
③创建一个触发器
create trigger num_sum
After insert on persons
for each row insert into sales
values (new.name,7*NEW.num);
④向persons表中插入记录
insert into persons values
('xiaoxiao',20),('xiaohua',69);
- 掌握创建用户和授权的方法。步骤如下:
①打开MySQL客户端工具,输入登录命令,登录MySQL
②选择MySQL数据库为当前数据库
③创建新账户,用户名称为newAdmin,密码为pw123
grant all privileges on *.* to 'newAdmin'@'localhost' identified by 'pw123' with grant option;
④分别从user表中查看新账户的账户信息
SELECT * FROM mysql.user;
⑤使用SHOW GRANTS语句查看newAdmin的权限信息
show grants for 'newAdmin'@'localhost';
⑥使用newAdmin用户登录MySQL
⑦使用newAdmin用户查看test_db数据库中person表中的数据
⑧使用newAdmin用户向person表中插入一条新记录,查看语句执行结果
⑨退出当前登录,使用root用户重新登录,收回newAdmin账户的权限
exit;
revoke all on *.* from 'newAdmin'@'localhost';
⑩删除newAdmin的账户信息
drop user 'newAdmin'@'localhost';
- 按照操作过程完成对test_db数据库的备份和恢复。步骤如下:
①使用MySQLdump命令将suppliers表备份到文件D:\beifen\suppliers_bk.sql
mysqldump -u root -p test persons > D:\beifen\suppliers_bk.sql
②使用MySQL命令恢复suppliers表到test_db数据库中
use test;
source D:\beifen\\suppliers_bk.sql;
③使用SELECT…INTO OUTFILE语句导出suppliers表中的记录,导出文件位于目录D:\下,名称为suppliers_out.txt
SELECT * FROM test.persons INTO OUTFILE 'D:/suppliers_out.txt';
④使用LOAD DATA INFILE语句导入suppliers_out.txt数据到suppliers表
LOAD DATA INFILE 'D:/suppliers_out.txt'
INTO TABLE persons FIELDS TERMINATED BY '\t' (`name`,`num`);
SELECT * FROM persons;
⑤使用MySQLdump命令将suppliers表中的记录导出到文件D:\beifen\suppliers_bk.sql
mysqldump -u root -p test persons > D:\beifen\suppliers_bk.sql
三、思考题(01,03)
- 使用触发器时要特别注意的事项有哪些?
- 为什么要及时删除不再需要的触发器?
- MySQLdump备份的文件只能在MySQL中使用吗?
本实验涵盖了MySQL中的触发器操作,包括创建、查看、使用和删除,以及权限管理,如创建用户、授权和回收权限。此外,还涉及了数据备份和恢复的实践,包括数据库的备份、恢复、表的导入导出。

2477

被折叠的 条评论
为什么被折叠?



