Mysql触发器的练习

USE test;

CREATE TABLE student(
id int PRIMARY KEY AUTO_INCREMENT,
NAME CHAR(10),
age INT
);

CREATE TABLE student_log(
id INT PRIMARY KEY AUTO_INCREMENT,
content VARCHAR(20)
);

– 1.创建添加触发器:
CREATE TRIGGER tri_studentAdd AFTER INSERT ON student FOR EACH ROW
INSERT INTO student_log(content) VALUES(‘学生被插入了一条数据’);
– 删除触发器:
– drop trigger tri_studentAdd;

– 2.创建修改触发器
CREATE TRIGGER tri_studentUpd AFTER UPDATE ON student FOR EACH ROW
INSERT INTO student_log(content) VALUES(‘学生被修改了一条数据’);
– drop trigger tri_studentUpd;

– 3.创建删除触发器
CREATE TRIGGER tri_studentDel AFTER DELETE ON student FOR EACH ROW
INSERT INTO student_log(content) VALUES(‘学生被删除了一条数据’);
– drop trigger tri_studentDel;

INSERT INTO student(NAME, age) VALUES
(‘aaa’, 18),
(‘bbb’, 19),
(‘ccc’, 20);
– 因为以上插入了三次所以,往student_log表中插入3条数据。

UPDATE student SET age = 22 WHERE NAME=‘aaa’;
– 日志生效

DELETE FROM student WHERE student.id = 2;
– 日志生效

– 五、mysql的权限问题
– root用户:超级管理员 增删改查(数据库、表、数据)

– 给mysql数据库分配不同权限的不同用户

– 注意:最好不要安装压缩版的mysql,其中没有mysql数据库
– 意味着不能修改增删,用户和权限
– mysql数据库:存放mysql的配置信息包括用户信息
USE mysql;

– 用户表
SELECT * FROM USER;

– 在查询出mysql表的时候,发现一个很奇怪的现象
– user其中的password并不是一串真实密码
– 而是一串加密的无序字符串,且长度很长
– 得知:
– 存入在数据库中的密码,都是通过单向加密的
– 只能加密,不能解密(或解密得到的结果很多,不能唯一确定)
– 加密有两种方法:1.通过mysql insert的时候进行加密
– 2.通过在java里面get到的时候进行加密。
– 由此推论出,密码是不可能提供找回功能的,只能提供重置功能。
– mysql中提供的是加密函数进行加密
– select password(‘root’); 加密函数(MD5算法–单向加密)
– 加密成32位的字符串
– 修改用户密码:先加密了之后,再放进去
UPDATE USER SET PASSWORD=PASSWORD(‘123456’) WHERE USER=‘root’;

– 分配权限给不同的用户

– 用户不存在时,自动创建用户(即是分配权限也是创建用户,存在时增加权限,不存在时创建用户分配权限)
– 需求:分配查询test中的student的权限的给mzy用户,密码为:‘123456’;
– 分配查询权限 用户名 登录位置
GRANT SELECT ON test.student TO ‘mzy’@‘localhost’ IDENTIFIED BY ‘123456’;
– 分配删除权限:在查询上追加权限
GRANT DELETE ON test.student TO ‘mzy’@‘localhost’ IDENTIFIED BY ‘123456’;

– 删除的话,直接delete就行了

SHOW TABLES;

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值