Mysql语法基础
语法基础包括创建数据库,删除数据库,查询数据库,表结构的增删改查、数据行的增删改查(select、update、delete、insert的基础语法):
DDL—数据定义语言(Data Define Language):create(创建表),alter(修改表),drop(删除表),truncate(删除表记录),rename(修改表名);
DML—数据操纵语言(Data Manipulation Language):select(查),delete(删),update(更新),insert(增);
DCL—数据控制语言(Data Control Language):grant(赋予权限),revoke(回收权限);
视图
常用的函数
- 时间函数
- curdate:获取当前日期
- curtime:获取当前时间
- now:now()获取当前时间和时间
- week:week(date)返回日期date为一年的第几周
- year:year(date)返回日期date的年份
- hour:hour(time)返回时间time的小时值
- minute:minute(time)返回时间time的分钟值
- 字符串处理函数:
- trim:返回字符串s删除了两边空格之后的字符串
- rtrim:后者返回字符串s,其右边所有空格被删除
- concat:连接字符串
- char_length:计算字符串字符个数
- lower:将str中的字母全部转换成小写
- 数学函数:
- sum:返回特定列的和;忽略特定列为NULL的行;
- min:返回特定列的最小值;忽略特定列为NULL的行;
- max:max函数返回特定列值的最大值;忽略特定列为NULL的行;
- count:count函数用于计算行数,其中count(*)计算所有行的数目,count("column")会忽略column为NULL的行数;
- avg:计算出平均值(特定列值之和/行数=平均值);使用时注意其会忽略列值为NULL的行;
- ceil:ceil(x)返回大于或等于数值x的最小整数
- floor:floor(x)返回小于或等于数值x的最大整数
- rand:rand()返回0~1 的随机数
事务
- 事务的四大特性ACID
- 原子性:同一个事务中,所用的操作都是原子性的,要么都成功,要么都失败。
- 一致性:事务开始后,数据与预期的是一致的,不会出现脏数据的现象。
- 持久性:事务最后修改的数据能够持久化到磁盘中。
- 隔离性:每个事务都是独立的,相互之间不影响。
- 事务隔离级别
- 读未提交:读取到被人未提交的事务
- 读提交:读取到别人提交的事务
- 可重复读:同一个事务中,事务的开始与事务结束之前读取的数据都是一致的。
- 串行化:事务的执行是串行的。
- 事务问题
- 脏读:读到别的事务还没提交的数据
- 不可重复读:主要是针对修改,一个事务读取的数据行被另一个事务修改,当前事务再次读取的时候与上一次读取的数据不一致。
- 幻读:主要是针对新插入的数据,开始读取到另一个事务新插入的数据行。