• mysql触发器学习


    USE test;
    
    
    
    CREATE TABLE student(
    	id 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;
    
      
    
    
    
    
    
     
    
    
    

  • 相关阅读:
    SpringMVC
    spring-02
    spring-01
    适配器模式
    状态模式
    抽象工厂模式
    观察者模式(发布-订阅模式)
    建造者模式(生成器模式)
    外观模式
    迪米特法则
  • 原文地址:https://www.cnblogs.com/mzywucai/p/11053492.html
Copyright © 2020-2023  润新知