----------+
mysql> select trim(leading 'x' FROM 'xxxbarxxx'); +------------------------------------+
| trim(leading 'x' FROM 'xxxbarxxx') |
+------------------------------------+
| barxxx |
+------------------------------------+
mysql> select trim(trailing 'x' FROM 'xxxbarxxx'); +-------------------------------------+
| trim(trailing 'x' FROM 'xxxbarxxx') |
+-------------------------------------+
| xxxbar |
+-------------------------------------+
mysql> select trim(both 'x' FROM 'xxxbarxxx'); +---------------------------------+
| trim(both 'x' FROM 'xxxbarxxx') |
+---------------------------------+
| bar |
+---------------------------------+
7、替换字符串replace(str,from_str,to_str)
mysql> select replace('abc123','123','def');
+-------------------------------+
| replace('abc123','123','def') |
+-------------------------------+
| abcdef |
+-------------------------------+
8、大小写转换,函数如下
mysql> select lower('aBcD');
+---------------+
| lower('aBcD') |
+---------------+
| abcd |
+---------------+
2、数学函数
1、求绝对值abs(n)
mysql> select abs(-32);
+----------+
| abs(-32) |
+----------+
| 32 |
+----------+
2、求m除以n的余数mod(m,n),同运算符%
mysql> select mod(10,3);
+-----------+
| mod(10,3) |
+-----------+
| 1 |
+-----------+
mysql> select 10%3;
+------+
| 10%3 |
+------+
| 1 |
+------+
3、floor(n),表示不大于n的最大整数
mysql> select floor(2.3);
+------------+
| floor(2.3) |
+------------+
| 2 |
+------------+
4、ceiling(n),表示不小于n的最大整数
mysql> select ceiling(2.3);
+--------------+
| ceiling(2.3) |
+--------------+
| 3 |
+--------------+
5、求四舍五入值round(n,d),n表示原数,d表示小数位置,默认为0
mysql> select round(1.6);
+------------+
| round(1.6) |
+------------+
| 2 |
+------------+
6、求x的y次幂pow(x,y)
mysql> select pow(2,3);
+----------+
| pow(2,3) |
+----------+
| 8 |
+----------+
7、随机数rand(),值为0-1.0的浮点数
mysql> select rand();
+--------------------+
| rand() |
+--------------------+
| 0.0713081630610937 |
+--------------------+
3、日期时间函数
- 获取子值,语法如下
- year(date)返回date的年份(范围在1000到9999)
- month(date)返回date中的月份数值
- day(date)返回date中的日期数值
- hour(time)返回time的小时数(范围是0到23)
- minute(time)返回time的分钟数(范围是0到59)
- second(time)返回time的秒数(范围是0到59)
mysql> select year('2019-7-11');
+-------------------+
| year('2019-7-11') |
+-------------------+
| 2019 |
+-------------------+
- 日期计算,使用+-运算符,数字后面的关键字为year、month、day、hour、minute、second
mysql> select '2019-7-11'+interval 1 day;
+----------------------------+
| '2019-7-11'+interval 1 day |
+----------------------------+
| 2019-07-12 |
+----------------------------+
日期格式化date_format(date,format),format参数可用的值如下
-
获取年%Y,返回4位的整数
* 获取年%y,返回2位的整数
* 获取月%m,值为1-12的整数
-
获取日%d,返回整数
* 获取时%H,值为0-23的整数
* 获取时%h,值为1-12的整数
* 获取分%i,值为0-59的整数
* 获取秒%s,值为0-59的整数
九、事物
- 当一个业务逻辑需要多个sql语句完成时,如果其中某条sql语句出错,则希望整个操作都退回
- 使用事务可以完成退回的功能,保证业务逻辑的正确性
- 事务四大特性(简称ACID)
- 原子性(Atomicity):事务中的全部操作在数据库中是不可分割的,要么全部完成,要么均不执行
- 一致性(Consistency):几个并行执行的事务,其执行结果必须与按某一顺序串行执行的结果相一致
- 隔离性(Isolation):事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的
- 持久性(Durability):对于任意已提交事务,系统必须保证该事务对数据库的改变不被丢失,即使数据库出现故障
- 要求:表的