• day_37


    事务

    事务指一组操作,要么都成功,要么都失败

    事务方法

    start transaction;
    
    				sql语句
    
    commit/rollback;
    

    事务的特性

    1. 原子性:原子意为最小的粒子,即不能再分的事务,要么全部执行,要么全部取消
    2. 一致性:指事务发生前和发生后,数据的总额依然匹配
    3. 隔离性:简答的说,某个事务的操作对其他事务是不可见的
    4. 持久性:当事务完成后,其影响应该保留下来,不能撤销,只能通过”补偿性事务“来抵消之前的错误

    存储引擎

    InnoDB:保时捷引擎

    Mylsam:奔奔引擎

    建表的时候

    create table user (
    						id int auto_increment primary key,
    						name varchar(32) not null default '',
    						salary int not null default 0
    					)engine=Innodb charset utf8;
    

    两个引擎的区别

    1. Innodb支持事务,MyISAM不支持
    2. InnoDB支持行锁,MyISAM支持表锁

    视图

    增加视图

    create view 视图名 as SQL语句;
    

    删除

    drop view v1;
    

    触发器

    两张表

    订单表和库存表

    场景

    当下一个订单的时候,订单表中需要增加一个记录,同时库存表中需要减1

    这两个操作是同时发生的,并且前一个操作触发后一个操作

    使用方法

    增加:

    delimiter//
    
    CREATE TRIGGER tri_before_insert_tb1 BEFORE INSERT ON t2 FOR EACH ROW
    				BEGIN
    					INSERT INTO t3 (NAME) VALUES ('aa');
    				END //
    
    delimiter ;
    

    注:当向tb1表中添加一条数据的同时,向tb2表添加一条数据

    查看:

    show triggersG
    

    删除:

    drop trigger 触发器名;
    

    存储过程

    像一个SQL函数

    创建:

    delimiter//
    
    create procedure p1()
    
    BEGIN
    
    	select * from user where id=2;
    
    END//
    
    delimiter;
    

    删除:

    drop procedure p1;
    

    函数

    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个字符组成的子序列
    

    运维方向

    数据库的备份

    为什么要备份?

    将重要的数据保存下来

    用法

    mysqldump -p 服务器 -u用户名 -p密码 数据库名 表名,表名,...>aaa.sql

    单库备份

    mysqldump -uroot -p123 db1>db1.sql
    mysqldump -uroot -p123 db1 table1 table2 >db1-table1-table2.sql
    

    多库备份

    mysqldump -uroot -p123 --datrabases db1 db2 mysql db3>db1_db2_mysql_db3.sql
    

    备份所有库

    mysqldump -uroot -p123 --all-datrabases > all.sql
    

    重新导入

    mysql > source D:/test3.sql;
    
  • 相关阅读:
    Js将字符串转换成对象或数组en
    iview渲染函数
    iview中render函数监听事件
    Arduino Nano 读取ADS1100实例
    Raspberry Pi 3 安装 Lazarus 1.6.2(2017-02-09更新)
    Lazarus for Raspbian安装
    Delphi xe7 FireMonkey / Mobile (Android, iOS)生成 QR Code完整实例
    Delphi xe7 up1 调用android振动功能
    Delphi xe7 android实现透明度可以调整的对话框
    delphi XE7 在Android编译SharedActivity时出错
  • 原文地址:https://www.cnblogs.com/maqiaobin/p/11777451.html
Copyright © 2020-2023  润新知