1、日期函数
//now() 可以返回系统当前日期时间 2019-07-04 12:53:56
select now() from dual;
//CURDATE() 返回系统当前日期
select CURDATE() from dual; 2019-07-04
//CURTIME() 返回系统当前时间
select CURTIME() from dual;
//DATE_FORMAT()日期格式化函数 格式化标准:参见MySQL API文档
select user_name,DATE_FORMAT(create_time,'%Y/%m/%d') as birthday from t_user;
//YEAR() 可以返回日期所对应的年份
select user_name,YEAR(birthday) from t_user;
//month() 获得日期所对应的月份
select user_name,month(birthday) from t_user;
//day() 获得日期所对应的天数
select user_name,day(birthday) from t_user;
//date() 从日期时间格式中,定义返回日期 2019-07-04
select user_name,date(create_time) from t_user;
//time()从日期时间格式中,定义返回时间 17:04:12
select user_name,time(create_time) from t_user;
//dayofweek() 判断日期是星期几 1-星期天,2-星期一,依次类推……
select user_name,DAYOFWEEK(create_time) from t_user;
//DATEDIFF()用于比较两个时间的差值
SELECT DATEDIFF('1997-12-31 23:59:59','1997-12-30') from dual;
2、字符串函数
//返回字符串所占字节长度,UTF-8中汉字占3个字节,GBK中只占2个字节
select LENGTH(user_name) from t_user;
//将字符串中的所有小写字母,转换为大写字母
SELECT UPPER(user_name) from t_user;
//将字符串中的所有大写字母,转换为小写字母
SELECT LOWER(user_name) from t_user;
//从5号位置开始截取字符串,字符串下标从1开始……
SELECT SUBSTRING('Quadratically',5) from dual;
//从5号位置开始截取字符串,并截取连续的6位字符,字符串下标从1开始……
SELECT SUBSTRING('Quadratically',5,6);
//四舍五入一个10以内的随机值
SELECT ROUND(RAND() * 10) from dual;
事务:一段具有明确边界(开始-结束)的执行顺序有序的过程。例如:张三给李四转钱 你的一天经历……
3、事务
特点:
原子性:事务具备原子性,不可再分,要么统一成功,要么统一失败,绝不可能一半成功,一半失败。
隔离性:事务和事务之间,是相互隔离,互不干扰的。
一致性:在一个事务范围内,事务中流转的数据具有一致性特点。
持久性:事务一旦确认|提交,事务中所流转的数据就应该被持久化到硬盘中。
事务处理有两种方式:
提交事务 ---- 确认事务 COMMIT
回滚事务 ---- 回到最初的状态 ROLLBACK
执行顺序有序的过程,一般是我们Java开发的软件在进行控制!但是这个这个过程可能会涉及到多张表,或者多个数据库
set autocommit = 0; //关闭数据库的自动提交功能
start transaction; //开启一个事务
insert into t_user(user_name,age,gender) values ('李四',18,'男'); //添加数据
COMMIT; //通过COMMIT | ROLLBACK 结束事务