常见查询函数
语法:
select 函数名(实参列表) [from 表];
单行函数
字符函数
1.LENGTH()
功能:获取字节长度
例子:SELECT LENGTH('Hello')
2.CONCAT()
功能:拼接字符
例子:SELECT CONCAT('Hello','-','world')
3.UPPER()
功能:将字符变成大写
例子:SELECT UPPER('hello')
4.LOWER()
功能:将字符变成小写
例子:SELECT LOWER('KEYS')
5.SUBSTR(string,index[,length])
功能:截取string指定索引位置的子字符串(初始索引值为1)
列子:SELECT SUBSTR('Hello python!',6)
SELECT SUBSTR('Hello python!',6,3)
6.INSTR(string,sub_string)
功能:返回sub_string在string中第一次出现的索引位置,如果找不到就返回0
例子:SELECT INSTR('Hello Python','Hello')
7.TRIM()
功能:去除字符串两边的空格
例子:SELECT TRIM(' abc ')
8.LTRIM()
功能:去除字符串左边的空格
例子:SELECT LTRIM(' abc')
9.RTRIM()
功能:去除字符串右边的空格
例子:SELECT RTRIM('abc ')
10.LPAD(string,length,fill_str)
功能:用指定字符实现左填充指定长度
例子:SELECT LPAD('Hello',10,'*')
11.RPAD(string,length,fill_str)
功能:用指定字符实现右填充指定长度
例子:SELECT RPAD('Hello',10,'*')
12.REPLACE(string,sub_str,new_sub_str)
功能:用新的字符串替换掉string中指定的子字符串
例子:SELECT REPLACE('Hello World','World','Python')
数学函数
1.ROUND(num,bit)
功能:四舍五入
例子:SELECT ROUND(1.6)
SELECT ROUND(1.567,2) #小数点保留两位
2.CEIL(x)
功能:向上取整,返回>=该参数的最小整数
例子:SELECT CEIL(1.2)
3.FLOOR(x)
功能:向上下取整,返回<=该参数的最大整数
例子:SELECT FLOOR(1.2)
4.TRUNCATE(x,bit)
功能:截断x,bit表示保留几位小数
例子:SELECT TRUNCATE(1.666,1)
5.MOD(x,y)
功能:取余,x/y的余数
例子:SELECT MOD(10/3)
日期函数
1.NOW()
功能:返回当前系统日期+时间
例子:SELECT NOW()
2.CURDATE()
功能:返回当前系统日期
例子:SELECT CURDATE()
3.CURTIME()
功能:返回当前系统时间
例子:SELECT CURTIME()
4.YEAR(date)
功能:从给定日期获取年份
例子:SELECT YEAR('1991-09-25')
5.MONTH(date)
功能:从给定日期获取月份
例子:SELECT MONTH('1991-09-25')
6.MONTHNAME(date)
功能:从给定日期获取月份英文名称
例子:SELECT SECOND('1991-09-25')
7.DAY(date)
功能:从给定日期获取日
例子:SELECT DAY('1991-09-25')
8.HOUR(time)
功能:从给定时间获取小时
例子:SELECT HOUR('12:12:12')
9.MINUTE(time)
功能:从给定时间获取分钟
例子:SELECT MINUTE('12:12:12')
10.SECOND(time)
功能:从给定时间获取秒
例子:SELECT SECOND('12:12:12')
11.STR_TO_DATE(date_str,format)
功能:将日期格式的字符串转换成指定格式的日期
例子:STR_TO_DATE('9-25-1991','%m-%d-%Y')
12.DATE_FORMAT(date_str,format)
功能:将日期转换成字符
例子:DATE_FORMAT('1991/09/25','%Y年-%m月-%d日')
格式符 功能
%Y 四位的年份
%y 两位的年份
%m 月份(01,02)
%c 月份(1,2)
%d 日(01,02)
%H 小时(24时制)
%h 小时(12时制)
&i 分钟(00,01,...59)
%s 秒(00,01,...59)
13.DATEDIFF(date1,date2)
功能:计算date1与date1相差的时间
例子:SELECT DATEDIFF('1990-9-03','1991-9-25')
其他函数
1.VERSION()
功能:查看数据库版本
例子:SELECT VERSION()
2.DATABASE()
功能:查看当前在哪个数据库
例子:SELECT DATABASE()
3.USER()
功能:查看当前用户
例子:SELECT USER()
4.PASSWORD(string)
功能:返回string的密文形式
例子:SELECT PASSWORD()
5.MD5(string)
功能:返回string的md5加密后的字符串
例子:SELECT MD5(string)
流程控制函数
1.IF(expr1,expr2,expr3)
功能:如果expr1成立,返回expr2,否则返回expr3
例子:SELECT IF(10>5,'True','False')
2.CASE
功能:类似于c语言中的switch case功能
语法:
CASE 要判断的表达式或字段
WHEN 常量1 THEN 要显示的值1或语句1
WHEN 常量2 THEN 要显示的值2或语句2
...
ELSE 要显示的值n或语句n;
END
例子:
SELECT salary 原始工资,department_id,
CASE department_id
WHEN 30 THEN salary*1.1
WHEN 30 THEN salary*1.1
WHEN 30 THEN salary*1.1
ELSE salary
END AS 新工资
FROM employees;
CASE()作为多重if
语法:
CASE
WHEN 条件1 THEN 要显示的值1或语句1
WHEN 条件2 THEN 要显示的值2或语句2
...
ELSE 要显示的值n或语句n
END
例子:
SELECT salary,
CASE
WHEN salary>20000 THEN 'A'
WHEN salary>20000 THEN 'A'
WHEN salary>20000 THEN 'A'
ELSE 'D'
END
AS '工资级别'
FROM employees;
分组函数
功能:用作统计使用,又称为聚合函数、统计函数
分类:
1.SUM()
功能:求和
例子:SELECT SUM(field) FROM table;
2.AVG()
功能:求平均
例子:SELECT AVG(field) FROM table;
3.MAX()
功能:求最大值
例子:SELECT MAX(field) FROM table;
4.MIN()
功能:求最小值
例子:SELECT MIN(field) FROM table;
5.COUNT()
功能:统计个数(非空行数)
例子:SELECT COUNT(field) FROM table;
SELECT COUNT(*) FROM table; (统计总行数)
SELECT COUNT(常量值) FROM table; (统计总行数)
SUM(),AVG()一般用于处理数值型,MAX(),MIN(),COUNT()可用于处理任何类型,它们都忽略NULL值
效率上:MYISAM存储引擎下COUNT(*)的效率最高,因为它内部有一个计数器