常见查询函数

语法:

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(*)的效率最高,因为它内部有一个计数器

 

相关文章: