Mysql视图,触发器

mysql知识点的补充

  • 参考文档https://www.cnblogs.com/wupeiqi/articles/5713323.html

  • 安装pip install pymysql

  • sql注入
    拼接后的sql语句
    select * from userinfo where user='1' and pwd ='2233'
    如果用户使用sql注入,例如用户输入uu’ or 1=1 --
    select * from userinf where user='1' or 1=1 -- 则后面的语句全部被注释掉而不生效 
    
  • 因此为了防止恶意的SQLZ注入,不要使用自己拼接的字符串,而要使用相关的函数

  • 插入数据后获取自增id,cursor.lastrowid

  • 补充

    -- 上下连表
    select id,sname from student
    union
    select tid, tname from teacher
    -- 此种方法还会自动去重
    
    -- 不去重
    select id,sname from student
    union all
    select tid, tname from teacher
    

视图

-- 视图
-- 语法 as 后写对应的SQL语句
CREATE VIEW v1 as SELECT* from student WHERE sid>1
-- 视图是虚拟的,不是真是存在表

-- 修改
ALTER VIEW v1 as SELECT * from student WHERE sid>2

-- 删除 v1 是视图的名称
drop VIEW v1
触发器
  • 知识点

    # 插入前
    CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
    # 插入后
    CREATE TRIGGER tri_after_insert_tb1 AFTER INSERT ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
    # 删除前
    CREATE TRIGGER tri_before_delete_tb1 BEFORE DELETE ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
    # 删除后
    CREATE TRIGGER tri_after_delete_tb1 AFTER DELETE ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
    # 更新前
    CREATE TRIGGER tri_before_update_tb1 BEFORE UPDATE ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
    # 更新后
    CREATE TRIGGER tri_after_update_tb1 AFTER UPDATE ON tb1 FOR EACH ROW
    BEGIN
        ...
    END
    
  • 结束字符标志: delimiter //

    image-20211016175732522

    image-20211016175752394

    -- 触发器
    -- 当对某一张表做增删改时,可以使用触发器,自定义关联行为
    -- 特别的:NEW表示即将插入的数据行,OLD表示即将删除的数据行。
    -- 注意:插入只有new,删除只有old,但是更新即有new也有old
    delimiter //
    CREATE TRIGGER tri_before_insert_stu BEFORE INSERT on student for EACH row
    BEGIN
    	INSERT into teacher(tname) VALUES (NEW.sname);
    END //
    delimiter ;
    
    -- 测试
    insert into student(sname,gender,class_id) VALUES('程心','女',1),('逻辑','男',3)
    

posted @ 2021-11-09 11:26  紫青宝剑  阅读(60)  评论(0编辑  收藏  举报