Mysql常用函数
字段拼接(concat)
CONCAT()
函数用于将多个字符串连接成一个字符串
格式: select CONCAT(str1,str2,…) from table_name;
#查询商品表,返回一列:商品名称(价格)。
SELECT concat(prod_name,'(',prod_price,')') FROM products;
列的计算和别名(as)
# 查询 orderitems 表中,订单编号为20006的产品id(prod_id),物品单价(item_price),物品数量(quantity)。并计算每个产品的总价(total_price)
SELECT prod_id,item_price,quantity,item_price*quantity AS total_price
FROM orderitems
WHERE order_num=20006;
数学函数
truncate(字段|值, n):截断 取小数点后n位
round():对数值进行四舍五入
ceil():向上取整 返回大于等于该参数的最小整数
floor():向下取整 返回小于该参数的最大整数值。
abs():返回一个数的绝对值
cos():返回一个角度的余弦
exp():返回一个数的指数值
mod():返回除操作的余数
pi():返回圆周率
rand():返回一个随机数
sin():返回一个角度的正弦 例如SIN(x) 返回 x 的正弦值,其中 x 为弧度值。
sqrt():返回一个数的平方根
tan():返回一个角度的正切
聚合函数
我们经常需要汇总数据而不用把它们实际检索出来,为此MySQL提供了专门的函数。 聚集函数(aggregate function) 运行在行组上,计算和返回单个值的函数。
常见的聚合函数有一下几种:
count()
COUNT() 函数返回匹配指定条件的行数
- COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入):
- 格式:
SELECT COUNT(column_name) FROM table_name;
- COUNT(*) 函数返回表中的记录数(null也计入)
- 格式:
SELECT COUNT(*) FROM table_name;
- COUNT(DISTINCT column_name) 函数返回指定列的不同值的数目
- 格式:
SELECT COUNT(DISTINCT column_name) FROM table_name;
max()
MAX() 函数返回指定列的最大值
格式: SELECT MAX(column_name) FROM table_name;
min()
MIN() 函数返回指定列的最小值
格式: SELECT MIN(column_name) FROM table_name;
sum()
SUM() 函数返回数值列的总数
格式: SELECT SUM(column_name) FROM table_name;
avg()
AVG() 函数返回数值列的平均值。AVG()函数忽略列值为NULL的行。
格式: SELECT AVG(column_name) FROM table_name;
文本处理函数
left(string,n):返回字符串左边的n个字符
right(string,n):返回字符串右边的n个字符
length(string):返回字符串的长度
lower(string):将字符串转换为小写
upper(string):将字符串转换为大写
ltrim(string):去掉字符串左边的空格
rtrim(string):去掉字符串右边的空格
trim(string):去掉字符串两边的空格
substring():返回子串的字符
#查询产品表,将产品名称中左右字母转换为大写、小写
SELECT upper(prod_name) FROM products;
SELECT lower(prod_name) FROM products;
# 查询产品表,返回产品名称的前三个字符/后三个字符
SELECT left(prod_name,3) FROM products;
SELECT right(prod_name,3) FROM products;
# substring() 有三种用法,下面直接看示例吧
#substring(字符串,n) 从第n个索引位置开始截取字符串。索引从1开始。
SELECT substring(prod_name,2)FROM products;
# 还有一种一样的表示方式:substring(string from n)
SELECT substring(prod_name FROM 2) FROM products;
# substring(字符串,索引位置,n) 从索引位置开始截取字符串,向后截取n个字符
SELECT substring('kaikeba',2,3);
SELECT substring('kaikeba' FROM 2 FOR 3) ;
#substring_index(string,关键字,n) 从头开始截取字符串,向后截取到关键字出现的第n次
SELECT substring_index('www.kaikeba.com','.',2) as abstract;