排序
- 单一字段升序
- select 字段1,字段2 from 表名 order by 排序字段1 asc/desc;
select empno,ename,sal from emp order by sal asc;
select empno,ename,sal from emp order by sal;
- 多个字段排序
- select 字段1,字段2 from 表名 order by 排序字段1 asc/desc,排序字段2 asc/desc;
- 去重
- select distinct 要去重的字段 from 表名;
select distinct job from emp;
- 注意:distinct只能出现在所有字段的前面,起到联合去重的目的
数据处理函数
- 如果将字段名看作变量的话,select 后面除了跟变量之外,也是可以跟常量的
- 比如:select 100;
字符串相关
select ename, job, sal from emp where upper(ename) = 'SMITH';
数学相关
- rand():生成0-1之间的随机浮点数
- rand(x):生成0-1之间的随机浮点数,通过指定整数x来确定每次获取到相同的浮点数
- round(x):四舍五入,保留整数位,舍去全部小数
- round(x,y):四舍五入,保留y位小数
- truncate(x,y)舍去
- ceil(x):返回大于或等于数值x的最小整数
- floor(x):返回小于或等于x的最大整数
- ifnull(x,y):空处理函数,当x为NULL时,将x当做y处理
- 注意:在SQL语句种,凡是有NULL参与的数学运算,最终的计算结果都是NULL

- 案例:查询每个员工的年薪。(年薪 = (月薪 + 津贴) * 12个月。注意:有的员工津贴comm是NULL。)
- select ename,(sal + ifnull(comm,0)) * 12 yearsal from emp;
日期和时间相关函数
- 获取当前日期和时间
- select now(); 获取的是执行select语句的时刻
- select sysdate(); 获取的是sysdate()函数的时刻
- 获取当前日期

- 获取当前时间
- select curtime();
- select current_time();
- select current_time;
- 获取单独的年、月、日、时、分、秒
- 获取月:select month(日期);
- 获取日:select day(日期);
- 获取时:select hour(日期);
- 获取分:select minute(日期);
- 获取秒:select second(日期);
- 一次性提取给定日期的“年月日”部分

- 一次性提取一个给定日期的“时分秒”部分

- date_add函数
- 给指定的日期添加间隔的时间,从而得到一个新的日期
- 语法格式:date_add(日期,interval expr 单位);

- 单位涉及以下几种:
- year:年
- month:月
- day:日
- hour:时
- minute:分
- second:秒
- microsecond:微秒
- week:周
- quarter:季度
- 另外,单位也可以采用复合型单位,例如:
- SECOND_MICROSECOND
- MINUTE_MICROSECOND
- DAY_HOUR
- …

- date_format()日期格式化函数
- 将日期转换成具有某种格式的日期字符串
- 语法格式:date_format(日期,‘日期格式’)
- 该函数种日期格式介绍:
- %Y:四位年份
- %y:两位年份
- %m月份
- %d:日
- %H:小时
- %i:分
- %s:秒
select date_format(now(),'%Y-%m-%d %H:%i:%s');
- str_to_date函数
- 将字符串转换成日期
- 语法格式:str_to_date(‘要转换的字符串’,‘对应的日期类型’)
insert into t_student values('zhangsan',str_to_date('10-1-85','%m-%d-%y'));
- dayofweek、dayofmonth、dayofyear
- dayofweek:一周中的第几天(1-7),周日是1,周六是7
- dayofmonth:一月中的第几天(1-31)
- dayofyear:一年中的第几天(1-366)
- last_day函数
- datediff函数
- timediff函数
if函数
- 如果条件表达式为TRUE则返回表达式值1的值,如果条件为FALSE则返回表达式值2的值:
SELECT IF(条件表达式,表达式值1,表达式值2);
select if(100 < 500,500,100);
select ename,if(ename='SMITH',sal * 1.1,if(ename='FORD',sal * 1.2,sal)) as sal from emp;
cast函数
- cast函数用于将值从一种数据类型转换为另一种数据类型
- 语法格式:cast(值 as 数据类型);
- 可以使用的数据类型有如下几种:
- date:日期类型
- time:时间类型
- datetime:日期时间类型
- signed:有符号的int类型
- char:定长字符串
- decimal:浮点型
加密函数
- md5函数,可以将给定的字符串经过md5算法进行加密处理,字符串经过加密之后就会生成一个32位的字符串,md5加密后的密文通常是不能解析的。