转义 两种情况

    第一种:
    第二种:$ 字符 后面 ESCAPE ‘$’ 声明
    SELECT FROMyt_test_user ytu WHERE ytu.username LIKE ‘$_%’ ESCAPE ‘$’;
    — 排序 可以使用别名进行排序
    SELECT ytu.user_name,(ytu.user_salary
    12) AS ‘salary’ FROM yt_test_user ytu ORDER BY salary DESC
    — 按员工名称长度排序
    SELECT LENGTH(ytu.user_name) AS ‘usernamelength’,ytu.user_name,ytu.user_salary
    FROM yt_test_user ytu ORDER BY usernamelength DESC,ytu.user_salary ASC
    — 函数部分
    1、— SUBSTR(str FROM pos FOR len) — 截取字符串
    SELECT SUBSTR(‘你好呀’,’2’,’1’) FROM DUAL; — 指引 结构substr(‘字符’,’截取字符串index’,’长度’)
    2、— INSTR(str,substr) — 返回字符串的index值
    SELECT INSTR(‘你好呀’,’你’) FROM DUAL ; — 1
    3、— TRIM([remstr FROM] str) — 去除字符串
    SELECT TRIM(‘ 你好呀 ‘) FROM DUAL; — 去除空格 你好呀
    SELECT TRIM(‘d’ FROM ‘ddddddddddddd你好dd呀ddddddd’) FROM DUAL ; — 你好dd呀 去除有效字符之外的其他字符
    4、 — LENGTH(str) 返回一个字符的长度
    SELECT LENGTH(‘你好dd呀’) FROM DUAL; — utf8 字符集 一个汉字三个长度 一个英文字母一个长度 so 11 长度
    5、 — LPAD() 用指定的字符实现左填充指定长度
    SELECT LPAD(‘你好呀’,10,’‘) FROM DUAL; — 你好呀
    6、 — RPAD() 用指定的字符实现右填充指定长度
    SELECT RPAD(‘你好呀’,10,’
    ‘) FROM DUAL; — 你好呀
    — 日期函数
    SELECT NOW(); — 2019-11-25 12:48:32
    SELECT CURDATE(); — 2019-11-25
    SELECT CURTIME(); — 12:49:06
    SELECT YEAR(NOW()); — 2019
    SELECT MONTH( NOW()); — 11
    SELECT MONTHNAME(NOW()); — November 获取英文名称
    SELECT DAY(NOW()); — 25
    SELECT STR_TO_DATE(‘12-15-2019’,’%m-%d-%Y’); — 2019-12-15
    SELECT DATE_FORMAT(NOW(),’%Y-%m-%d’); — 2019-11-25
    SELECT DATE_FORMAT(NOW(),’%Y-%m-%d %H:%i:%s’); — 2019-11-25 12:57:08
    — 其它函数
    SELECT VERSION(); — 当前数据库版本号 5.7.20-log
    SELECT DATABASE(); — 当前使用数据库 mysql
    SELECT USER(); — 当前用户 root@localhost
    — 流程控制程序
    SELECT IF(10 > 5 ,’大’,’小’); — 大
    SELECT COUNT(ytu.user_name) FROM yt_test_user ytu; — 2
    SELECT COUNT() FROM yt_test_user ytu; — 2
    SELECT COUNT(1) FROM yt_test_user ytu; — 2
    —效率
    MYISAM存储引擎:count(
    ) 效率最高
    INNoDB存储引擎:count(1) 和count(*) 效率差不多,比count(具体字段)效率高一些
    — 事务:ACID
    A:1000元
    B:1000元
    操作:A向B转500元。
    原子性atommicity:指事务是一个不可分割的单位,事务中的操作要么都发生,要么都不发生。
    一致性Consistency:事务必须是数据库从一个一致性状态切换到另一个一致性状态。
    隔离性Isolation:事务的隔离性指一个事务的执行不能被其他事务干扰,即一个事务内部的操作和使用的数据对并发的其他事务是隔离的,并发执行的各个事务之间不能相互干扰。
    持久性Durability:指事务一旦被提交,它对数据库中数据的改变是永久性的,接下来的其他操作和数据库故障不应该对其有任何影响。
    —事务的隔离级别
    演示地址:https://www.bilibili.com/video/av49181542?p=137
    脏读 不可重复度 幻读
    read uncommitted(读 未提交): √ √ √
    read committed(读 已提交): × √ √
    repeateble read(可重复读) : × × √
    SERIALIZABLE × × ×
    MySQL默认第三个隔离级别;
    oracle 默认第二个隔离级别;
    查看隔离级别: SELECT @@tx_isolation;
    设置隔离级别:SET SESSION|GLOBAL TRANSACTION ISOLATION LEVEL 隔离级别;
    演示脏读 不可重复读 幻读 出现的案例
    事务隔离级别:read uncommittted
    image.png

    事务隔离级别:read committted 避免了脏读、没有避免幻读、不可重复读
    image.png
    事务隔离级别:read committted 避免了脏读、没有避免幻读、不可重复读
    幻读、不可重复读问题
    image.png

    事务隔离级别:repeatable read 可重复读。解决脏读和不可重复读。不能解决幻读。
    image.png

    事务隔离级别:repeatable read 可重复读。解决脏读和不可重复读。不能解决幻读。
    幻读演示
    image.png

    事务隔离级别:serializable 。解决一切问题。但是单线程,其他一个事务不释放锁,导致所有对数据库进行的事务都会卡住。
    image.png