zoukankan      html  css  js  c++  java
  • day 37

    day 36 mysql 事务

    01.事务

    1. 事务指一组操作,要么都执行成功,要么都执行失败

    2. transaction

      start transaction; # 开启一个事务
      # 对数据进行操作
      commit; # 组合操作执行成功,提交修改结果
      rollback; # 撤销本次事务操作
      
    3. 事物的特性(ACID);

      1. 原子性(Atomicity);原子意为最小的粒子,代表事务不能被分割,要么全部执行,要么全部取消(防止数据出错)
      2. 一致性(Consistency);指事物发生前后数据总额依然相同
      3. 隔离性(Isolation);再本次事务尚未提交之前,对数据的操作无法被其他操作获取到
      4. 持久性(Durability);事务操作完成后,其对数据的影响被保存下来,不能撤销,只能通过‘补偿性事务’来抵消之前的错误。
    4. 存储引擎;

      1. InnoDB;高效引擎,不写默认使用Innodb

        create table 表名(
        id int auto_increment primary key,
        字段名 类型 约束性 ,
        ......
        )engine = Innodb charset utf8; 
        
      2. MyIsam;低效引擎

      3. 区别;

        1. innodb支持事务,支持行锁,精度更高
        2. myisam不支持事务,支持表锁
    5. pass

    02.了解性

    1. 视图;view

      1. 用于项目中存在大量重复性查询sql语句

      2. 视图是一个特殊的表,将该sql语句执行的结果保存到该表中

      3. 通过查看这个表来,查看该sql语句执行的结果,但非常消耗性能

        create view 视图名 as sql语句; # 创建视图
        drop view 视图名; # 删除视图
        select * from 视图名; # 查看该视图执行效果
        
    2. 触发器;trigger

      1. delimiter修改结束符

      2. 当你执行某一操作时,自动执行另一个操作

        delimiter //
        create trigger 触发器名 before 触发条件 insert on 表名 for each row
        begin
        		被触发后要执行的操作
        end //
        delimiter; # 将结束符改回来
        
    3. 存储过程;procedure

      1. 像定义一个SQL函数

      2. 创建

        delimiter //
        create procedure 名字()
        begin 
        sql语句;
        end //
        delimiter ;
        call 名字(); # 调用这个函数
        
        drop procedure 名字; # 删除该过程
        
    4. 函数

      		CHAR_LENGTH(str)
      			返回值为字符串str 的长度,长度的单位为字符。一个多字节字符算作一个单字符。
      			对于一个包含五个二字节字符集, LENGTH()返回值为 10, 而CHAR_LENGTH()的返回值为5。
      		
      		CONCAT(str1,str2,...)
      			字符串拼接
      			如有任何一个参数为NULL ,则返回值为 NULL。
      		FORMAT(X,D)
      			将数字X 的格式写为'#,###,###.##',以四舍五入的方式保留小数点后 D 位, 并将结果以字符串的形式返回。若  D 为 0, 则返回结果不带有小数点,或不含小数部分。
      			例如:
      				SELECT FORMAT(12332.1,4); 结果为: '12,332.1000'
      		INSTR(str,substr)
      			返回字符串 str 中子字符串的第一个出现位置。
      		LEFT(str,len)
      			返回字符串str 从开始的len位置的子序列字符。
      		LOWER(str)
      			变小写
      		UPPER(str)
      			变大写
      		LTRIM(str)
      			返回字符串 str ,其引导空格字符被删除。
      		RTRIM(str)
      			返回字符串 str ,结尾空格字符被删去。
      		SUBSTRING(str,pos,len)
      			获取字符串子序列
      		LOCATE(substr,str,pos)
      			获取子序列索引位置
      		REPEAT(str,count)
      			返回一个由重复的字符串str 组成的字符串,字符串str的数目等于count 。
      			若 count <= 0,则返回一个空字符串。
      			若str 或 count 为 NULL,则返回 NULL 。
      		REPLACE(str,from_str,to_str)
      			返回字符串str 以及所有被字符串to_str替代的字符串from_str 。
      		REVERSE(str)
      			返回字符串 str ,顺序和字符顺序相反。
      		RIGHT(str,len)
      			从字符串str 开始,返回从后边开始len个字符组成的子序列
      
    5. 数据的备份

      1. 将重要的数据保存下来

        # 语法 ## 退出mysql后使用
        mysqldump -h 服务器 -u用户名 -p密码 库名 表名1,表名2,......>保存文件名.sql
        # 单库备份
        mysqldump -uroot -p123 db1 > db1.sql
        mysqldump -uroot -p123 db1 table1 table2 > db1-table1-table2.sql
        # 多库备份
        mysqldump -uroot -p123 --databases db1 db2 mysql db3 > db1_db2_mysql_db3.sql
        # 备份所有库
        mysqldump -uroot -p123 --all-databases > all.sql
        # 重新导入:
        mysql> source D:/test3.sql;
        
    6. pass

  • 相关阅读:
    Vue路由跳转时修改页面标题
    Vue整合Quill富文本编辑器
    XML中的转义字符
    整合SSM框架环境搭建
    Android搞定权限申请
    Android实现秒开效果
    tail -f 与tail -F的区别
    druid 启动报错
    sqoop flume学习笔记
    20180911
  • 原文地址:https://www.cnblogs.com/luocongyu/p/11778740.html
Copyright © 2011-2022 走看看