函数-字符函数
- SELECT position('a' IN 'banana'); # 2
- SELECT locate('a', 'banana'); # 2
- SELECT locate('a', 'banana', 3); # 4
- SELECT locate('x', 'banana'); # 0
- SELECT locate(1, 'banana'); # 0
- SELECT locate('a' , NULL ); # null
- SELECT instr('banana', 'a'); # 2
- SELECT instr('banana', 'e'); # 0
函数-数学函数
- abs(); 求一个数的绝对值;absolute
- sqrt(); 求一个数的平方根。sqrt是sqruar(平方,矩形) ,root(根)的缩写。
- 5、ceil() 进一取整。 floor()舍一取整。
- 6、rand() 顾名思义,是用来生成随机数
函数-日期函数
- select now(); 获取当前时间 2018-08-30 09:44:31
- select CURDATE(); 获取当前日期 2018-08-30
- select CURTIME(); 获取当前时间 09:46:15
- 格式化日期 使用data_format()函数 SELECT DATE_FORMAT(NOW(),'%m/%d/%Y') 08/30/2018
- SELECT DATE_FORMAT(NOW(),'%Y-%m-%d %H:%i:%s') 2018-08-30 09:51:45
- 获取明天、昨天当前时间 是8月30日
- SELECT date_sub(CURDATE(),interval -1 day) 2018-08-31
- SELECT date_sub(CURDATE(),interval 1 day) 2018-08-29
- 获取上一个月 下一个月
- SELECT date_sub(CURDATE(),interval 1 month) 2018-07-30
- SELECT date_sub(CURDATE(),interval -1 month) 2018-09-30
- 如果是年 就将month改为year SELECT date_sub(CURDATE(),interval 1 year) 2017-08-30
- 注:- day (减一天) 就是加一天
函数-流程函数
比如有个员工表
IF(expr1,expr2,expr3)函数: 这里认为月薪在2000元以上的职员属于高薪,
用“high‘表示; 而2000以下的职员属于低薪, 用’low‘来表示:
IFNULL(expr1,expr2)函数:
这个函数一般用来替换NULL值, 我们知道NULL值是不能参参与数值运算的,
下面这个语句就是把NULL值用0替换.
CASE WHEN [value1] THEN[result1]… ELSE[default]
END函数:
这里可以用case when..then函数实现上面例子中高薪低薪的问题.
- 2、当我们无法确定查询的准确内容时,用模糊查询是一种很好的查询方式。select * from table1 where field1 like ’value1%’;
- 3、select也可对字段进行排序。(单字段、多字段都可以,以多字段为例) select * from table1 order by field1, field2 asc/desc ; (asc表示升序排列,desc表示降序排列,默认升序)排序后也可选取排序序列在n至m的数据,这时加limit条件,如:select * from table1 order by field1 limit n,m;
- 4、计数,可以对单个字段计数,也可以对表中所有数据计数。 select count(*) from table1;
- 5、统计函数 求和:select sum(field1) as sumvalue from table1 平均:select avg(field1) as avgvalue from table1 最大:select max(field1) as maxvalue from table1 最小:select min(field1) as minvalue from table1;