@tingyuge
2016-08-01T22:00:27.000000Z
字数 2093
阅读 1631
MySQL
MySQL进阶
2.创建计算字段
SELECT Concat(columnName1, '(', columnName2) AS tableName3 FROM tableName;
Concat()把多个串拼接成一个较长的串。其参数需要一个或多个指定的串,各个串之间用逗号分开.
As将拼接出来的字段起别名叫做tableName
SELECT columnName1 * columnName2 AS columnName FROM tableName;
在MySQL检索的时候进行算数计算(+,-,*,/)
- 注意:
- SELECT 提供了测试和实验函数与计算的一个很好的方法。省略SELECT子语句以便简单的访问和处理表达式。例如
SELECT 3*6;
将返回18。
函 数 | 说 明 |
---|---|
Left() | 返回串左边的字符 |
Length() | 返回串的长度 |
Locate() | 找出串的一个子串 |
Lower() | 将串转化为小写 |
LTrim() | 去掉串左边的空格 |
Right() | 返回串右边的字符 |
RTrim() | 去掉串右边的空格 |
SubString() | 返回子串的字符 |
Upper() | 将串转化为大写 |
常用的日期时间函数
函数 | 说明 |
---|---|
AddDate() | 增加一个日期(天、周等) |
AddTime() | 增加一个时间(时、分等) |
CurTime() | 返回当前时间 |
CurDate() | 返回当前日期 |
Date() | 返回日期时间的日期部分 |
DateDiff() | 计算两个日期之差 |
Date_Add() | 日期运算函数 |
Date_Format() | 格式化日期或时间 |
Day() | 返回日期的天数部分 |
DayOfWeek() | 返回日期对应为星期几 |
Hour() | 返回时间的小时部分 |
Minute() | 返回时间的分钟部分 |
Month() | 返回日期的月份 |
Now() | 当前日期时间 |
Second() | 返回时间的秒部分 |
Time() | 返回时间 |
Year() | 返回年份 |
- 注意:
- 1.MySQL的日期格式最好为
yyyy-mm-dd
,因为消除了多义性。- 2.日期比较最好使用日期函数进行WHERE匹配,否则匹配会出错。比如:
SELECT * FROM tableName WHERE date = '2016-03-01'
- 当某一列存储的值为
2016-03-01 12:00:00
时,上述语句会匹配失败。解决方法就是使用Date(date)指示MySQL仅提取列的日期部分。- 3.使用日期函数可以很好的进行日期比较搜索。比如需要查找出在2016年03月的所有列,可以使用:
SELECT * FROM tableName WHERE Year(date) = 2016 AND Month(date) = 3;
常用的数值处理函数
函数 | 说明 |
---|---|
Abs() | 返回数的绝对值 |
Cos() | 返回一个角度的余弦 |
Exp() | 返回数的指数值 |
Mod() | 取余 |
Pi() | 圆周率 |
Rand() | 生成随机数 |
Sin() | 正弦 |
Sqrt() | 平方根 |
Tan() | 正切 |
对表中的数据(而不是实际数据本身)汇总,得到汇总的信息。
常用的聚集函数
函数 | 说明 |
---|---|
AVG() | 返回某列的平均值 |
COUNT() | 返回某列的行数 |
MAX() | 返回某列的最大值 |
MIN() | 返回某列的最小值 |
SUM() | 返回某列的和 |
SELECT AVG(prod_price) AS avg_price FROM tableName;
为了获得多个列的平均值必须使用多个AVG()函数。AVG()函数会忽略掉值为NULL的行。
SELECT COUNT(*) AS num_count FROM tableName;
SELECT COUNT(columnName) AS num_count FROM tableName;
COUNT()函数有两种使用方法。使用COUNT(*)
对表中行的数目进行计数,不管表中包含的是空值还是非空值。使用COUNT(columnName)
对columnName列中具有非空值的行进行计数,忽略NULL值。
SELECT SUM(columnName) AS sum_column FROM tableName;
SELECT SUM(columnName1 * columnName2) AS sum_column FROM tableName;
SUM()函数会忽略NULL的值。
SELECT COUNT(*) AS num_count, MIN(columnName) AS min_column, AVG(columnName) AS avg_column FROM tableName;
聚集函数可以组合在一起使用。