• 视图触发器存储过程函数事务


    视图(一张虚拟表)

    --创建视图
    Create view view_name as    
    Select id from employee;
    --删除视图
    Drop view_name;

    触发器TRIGGER

    Delimiter //  --修改结束符为//
    Create trigger trigger_name before(after) insert() on tb1 for each row
    BEGIN
    ……
    END //
    Delimiter ;
    
    

    存储过程

    创建存储过程(无参数)

    Delimiter //
    Create procedure name()
    BEGIN
    ……
    END //
    Delimiter ;

    创建存储过程(有参数)

    三类参数:

    in 仅用于传入参数

    out 仅用于返回值用 

    inout 既可以传入又可以当返回值

    Delimiter //
    Create procedure p2(
        In n1 int,
            In n2 int
    )
    BEGIN
         ……
    END//
    Delimiter ;
    
    Call p2(1,2) --调用
    
    Delimiter //
    Delimiter //
    Create procedure p3(
        In n1 int,
       out n2 int,
       inout n3 int
    )
    BEGIN
         ……     --修改变量
    END//
    Delimiter ;
    
    Set @res = 1;
    Set @res2 = 2;
    Call p1(1,@res,@res2)
    Select @res,@res2;

    事 务

    多个SQL捆绑,同时成功或同时失败
    四大特性 : 原子性,持久性,一致性,隔离性
    start transaction;
    update user set balance = 900 where name = ‘aa’;  
    --修改的是虚拟表,需要commit之后才能真正修改
    update……
    update……
    commit;
    函 数

    MySQL中提供了许多内置函数,这些函数只能再sql语句中使用,不能单独调用

    1.数学函数

    round(x,y)  --返回参数x的四舍五入的有y位小数的值
    rand()    --返回0-1内的随机值

    2.聚合函数(常用于GROUP BY从句的SELECT查询中)

    AVG(col)  --返回指定列的平均值
    COUNT(col)  --返回指定列中非NULL值的个数
    MIN(col)  --返回指定列的最小值
    MAX(col)  --返回指定列的最大值
    SUM(col)  --返回指定列的所有值之和
    GROUP_CONCAT(col)   --返回由属于一组的列值连接组合而成的结果

     3.字符串函数 

    CHAR_LENGTH(str)
    --返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。
    CONCAT(str1,str2,...)  --字符串拼接如有任何一个参数为NULL ,则返回值为 NULL。
    CONCAT_WS(separator,str1,str2,...)  --字符串拼接(自定义连接符)
    CONCAT_WS()  --不会忽略任何空字符串。 (然而会忽略所有的 NULL)。
    CONV(N,from_base,to_base)  --进制转换

    4.日期和时间函数

    DATE_FORMAT(date,format)根据format字符串格式化date值

    SELECT DATE_FORMAT('2009-10-04 22:23:00', '%W %M %Y');
          --  -> 'Sunday October 2009' 

    5.加密函数

    MD5()    --计算字符串str的MD5校验和
    PASSWORD(str)   --返回字符串str的加密版本,这个加密过程是不可逆转的,和UNIX密码加密过程使用不同

    6.控制流函数

    7.自定义函数

    delimiter //
    create function f1(
        i1 int,
        i2 int)
    returns int
    BEGIN
        declare num int;
        set num = i1 + i2;
        return(num);
    END //
    delimiter ;
    自定义函数代码示例

    8.删除函数

    drop function func_name;

    9.执行函数

    --获取返回值
    select f1(11,nid) into @res;
    SELECT @res;
    --在查询中使用
    select f1(11,nid) ,name from tb2;

    数据库集群:

    数据可读写分离

    主从复制

    高可用技术 :

    Heartbeat + drbd
    Keeplive  + LVS
    K8s + docker
  • 相关阅读:
    商用 三色灯 显示屏 原理概述
    高速LVDS时序到底怎么看
    quartus qsys sdram IP 使用
    Avalon 总线 时序 介绍
    以太网 mac层传输 verilog 测试程序
    quartus15.1 下程程序 电脑蓝屏 解决方法
    vivado 波形保存以及arp
    quartus timequest 使用过程中的笔记
    Modelsim 仿真指令force用法
    开发笔记(一)Kintex
  • 原文地址:https://www.cnblogs.com/gracenana/p/10307763.html
Copyright © 2020-2023  润新知