zoukankan      html  css  js  c++  java
  • 视图触发器存储过程函数事务

    视图(一张虚拟表)

    --创建视图
    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
  • 相关阅读:
    redis的5种数据结构和基本操作
    kafka架构、基本术语、消息存储结构
    kafka基本概念和hello world搭建
    kafka安装
    【Android-NetWork】 判断是否连接网络,判断网络连接方式
    【计算机-虚拟wifi】Win7虚拟wifi设置
    【Andriod-AlertDialog控件】 弹出对话框AlertDialog用法
    【Winform-自定义控件】ImageButton 支持鼠标正常、悬停、按下更改图片,支持文本
    【Wince-自定义控件】ImageButton 带图片、文字
    【Winform-自定义控件】一个自定义的进度条
  • 原文地址:https://www.cnblogs.com/gracenana/p/10307763.html
Copyright © 2011-2022 走看看