代码改变世界

常用函数 __MySQL必知必会

2017-06-19 22:32  GarfieldEr007  阅读(310)  评论(0编辑  收藏  举报

----------------------使用数据处理函数 ----------------------

常见的文本处理函数

 

复制代码
Left()    返回串左边的字符
Length() 返回串的长度
Locate() 找出串的一个子串
Lower() 将串转换为小写
LTrim() 去掉串左边的空格
Right() 返回串右边的字符
RTrim() 去掉串右边的空格
Soundex() 返回串的SOUNDEX值
SubString() 返回子串的字符
Upper() 将串转换为大写
复制代码

 

 

 

日期和时间处理函数

日期格式:yyyy-mm-dd

 

复制代码
AddDate()    增加一个日期(天、周等)
AddTime() 增加一个时间(时、分等)
CurDate() 返回当前日期
CurTime() 返回当前时间
Date() 返回日期时间的日期部分
DateDiff() 计算两个日期之差
Date_Add() 高度灵活的日期运算函数
Date_Format() 返回一个格式化的日期或时间串
Day() 返回一个日期的天数部分
DayOfWeek() 返回一个日期,返回对应的星期几
Hour() 返回一个时间的小时部分
Minute() 返回一个时间的分钟部分
Month() 返回一个日期的月份部分
Now() 返回当前日期和时间
Second() 返回一个时间的秒部分
Time() 返回一个日期时间的时间部分
Year() 返回一个日期的年份部分
复制代码

 

 

 

数值处理函数

 

复制代码
Abs()        返回一个数的绝对值
Cos() 返回一个角度的余弦
Exp() 返回一个数的指数值
Mod() 返回除操作的余数
Pi() 返回圆周率
Rand() 返回一个随机数
Sin() 返回一个角度的正弦
Sqrt() 返回一个数的平方根
Tan() 返回一个角度的正切
复制代码

 

 

 

----------------------汇总数据 ----------------------

聚集函数:运行在行组上,计算和返回单个值的函数。

 

AVG()        返回某列的平均值
COUNT() 返回某列的行数
MAX() 返回某列的最大值
MIN() 返回某列的最小值
SUM() 返回某列值之和

 

 

 

复制代码
SELECT  AVG(prod_price)  AS  avg_price
FROM products;

# COUNT(*) 对表中行的数目进行计数,不管表列中包含空值(NULL)或非空值
SELECT COUNT(*) AS num_cust
FROM customers;
# COUNT(column) 对特定列中具有值的行进行计数,忽略NULL值
SELECT COUNT(cust_email) AS num_cust
FROM customers;

SELECT MAX(prod_price) AS max_price
FROM products;

SELECT MIN(prod_price) AS min_price
FROM products;

SELECT SUM(quantity) AS items_ordered
FROM orderitems
WHERE order_num = 2005;

SELECT SUM(item_price*quantity) AS total_price
FORM orderitems
WHERE order_num = 2005;


复制代码

 

 

聚集不同值

对以上5个聚集函数都可以如下使用:

    对所有的行执行计算,指定ALL参数或不给参数(默认ALL)

    只包含不同的值,指定DISTINCT参数

DISTINCT只能用于COUNT(column),不能用于COUNT(*),不能用于计算或表达式

 

SELECT  AVG(DISTINCT prod_price)  AS  avg_price
FROM products
WHERE venid_id = 1003;

 

 

组合聚集函数

 

SELECT  COUNT(*)  AS  num_items,
MIN(prod_price) AS price_min,
MAX(prod_price) AS price_max,
AVG(prod_price) AS price_avg
FROM products;

from: http://www.cnblogs.com/way_testlife/archive/2010/09/18/1829877.html