标量函数(scalar function)针对每个输入参数,返回一个输出结果。例如,ABS(x) 可以计算 x 的绝对值。
聚合函数(aggregate function)基于一组数据进行计算,返回一个输出结果。例如,AVG 函数可以计算一组数据的平均值。
| 函数/运算符 | 描述 |
|---|---|
| %、MOD | 求余运算符 |
| * | 乘法运算符 |
| + | 加法运算符 |
| - | 减法运算符 |
| - | 改变正负号 |
| / | 除法运算符 |
| DIV | 整除运算符 |
| ABS(x) | 计算 x 的绝对值 |
| ACOS(x) | 计算 x 的反余弦值 |
| ASIN(x) | 计算 x 的反正弦值 |
| ATAN(x) | 计算 x 的反正切值 |
| ATAN2(x, y)、ATAN(x, y) | 返回 y/x 的反正切值 |
| CEIL(x)、CEILING(x) | 计算大于等于 x 的最小整数 |
| CONV(x, from_base, to_base) | 不同进制的转换 |
| COS(x) | 计算 x 的余弦值 |
| COT(x) | 计算 x 的余切值 |
| CRC32(expr) | 计算字符串 expr 的循环冗余校验值 |
| DEGREES(x) | 将 x 从弧度转换为角度 |
| EXP(x) | 计算 e 的 x 次幂,e 约等于 2.71828 |
| FLOOR(x) | 计算小于等于 x 的最大整数 |
| GREATEST(x1, x2, …) | 返回参数列表中的最大值 |
| LEAST(x1, x2, …) | 返回参数列表中的最小值 |
| LN(x)、LOG(x) | 计算 x 的自然对数,底数为 e |
| LOG(y, x) | 计算以 y 为底的 x 的对数 |
| LOG10(x) | 计算以 10 为底的 x 的对数 |
| LOG2(x) | 计算以 2 为底的 x 的对数 |
| MOD(x, y) | 计算 x 除以 y 的余数 |
| PI() | 返回常量 π 的值,约等于 3.141593 |
| POW(x, y)、POWER(x, y) | 计算 x 的 y 次幂 |
| RADIANS(x) | 将 x 从角度转换为弧度 |
| RAND(seed) | 返回一个大于等于 0 小于 1 的随机数 |
| ROUND(x, y) | 将 x 四舍五入到 y 位小数 |
| SIGN(x) | 返回 x 的正负号 |
| SIN(x) | 计算 x 的正弦值 |
| SQRT(x) | 计算 x 的平方根 |
| TAN(x) | 计算 x 的正切值 |
| TRUNCATE(x, y) | 将 x 截断到 y 位小数 |
select 3+4, 3-4, 3*4, 3/4;
3+4|3-4|3*4|3/4 |
---|---|---|------|
7| -1| 12|0.7500|
select -1, --1;
-1|--1|
--|---|
-1| 1|
select 5 div 2, -5 div 2, 5 div -2, -5 div -2;
5 div 2|-5 div 2|5 div -2|-5 div -2|
-------|--------|--------|---------|
2| -2| -2| 2|
select 5 % 2, -5 % 2, 5 mod -2, mod(-5, -2);
5 % 2|-5 % 2|5 mod -2|mod(-5, -2)|
-----|------|--------|-----------|
1| -1| 1| -1|
select abs(1), abs(-1), abs(0);
abs(1)|abs(-1)|abs(0)|
------|-------|------|
1| 1| 0|
select ceil(1.23), ceiling(-1.23), floor(1.23), floor(-1.23);
ceil(1.23)|ceiling(-1.23)|floor(1.23)|floor(-1.23)|
----------|--------------|-----------|------------|
2| -1| 1| -2|
select round(12.5), round(12.5, -1), truncate(12.5, 0), truncate(12.5, -1);
round(12.5)|round(12.5, -1)|truncate(12.5, 0)|truncate(12.5, -1)|
-----------|---------------|-----------------|------------------|
13| 10| 12| 10|
select sign(12.5), sign(0), sign(-99);
sign(12.5)|sign(0)|sign(-99)|
----------|-------|---------|
1| 0| -1|
select exp(1), ln(2.718281828459045), log(2.718281828459045);
exp(1) |ln(2.718281828459045)|log(2.718281828459045)|
-----------------|---------------------|----------------------|
2.718281828459045| 1.0| 1.0|
select log(10, 1000), log10(1000), log2(8);
log(10, 1000) |log10(1000)|log2(8)|
------------------|-----------|-------|
2.9999999999999996| 3.0| 3.0|
select pow(2, 3), pow(2, -3), sqrt(100);
pow(2, 3)|pow(2, -3)|sqrt(100)|
---------|----------|---------|
8.0| 0.125| 10.0|
select pi(), sin(pi()), cos(pi()), tan(pi()), cot(pi());
pi() |sin(pi()) |cos(pi())|tan(pi()) |cot(pi()) |
--------|----------------------|---------|-----------------------|---------------------|
3.141593|1.2246467991473532e-16| -1.0|-1.2246467991473532e-16|-8.165619676597685e15|
select asin(0), acos(0), atan(1), atan2(2,2);
asin(0)|acos(0) |atan(1) |atan2(2,2) |
-------|------------------|------------------|------------------|
0.0|1.5707963267948966|0.7853981633974483|0.7853981633974483|
select degrees(pi()), radians(180);
degrees(pi())|radians(180) |
-------------|-----------------|
180.0|3.141592653589793|
select greatest(3, 4, 5), greatest(3, null, 5), least(3, 4, 5), least('a', 'd', 'c');
greatest(3, 4, 5)|greatest(3, null, 5)|least(3, 4, 5)|least('a', 'd', 'c')|
-----------------|--------------------|--------------|--------------------|
5| | 3|a |
select rand(), rand(1)
from employee
limit 5;
rand() |rand(1) |
--------------------|-------------------|
0.009433233187937396|0.40540353712197724|
0.7236781071160716| 0.8716141803857071|
0.5900908667501908| 0.1418603212962489|
0.7794200431363844|0.09445909605776807|
0.12682764616499437|0.04671454713373868|
select rand(), rand(1)
from employee
limit 5;
rand() |rand(1) |
-------------------|-------------------|
0.2958781321494636|0.40540353712197724|
0.09890775298598013| 0.8716141803857071|
0.6069043992151547| 0.1418603212962489|
0.7377987678514782|0.09445909605776807|
0.8682806723455718|0.04671454713373868|
select conv('a',16,2), conv('1010', 2, 10);
conv('a',16,2)|conv('1010', 2, 10)|
--------------|-------------------|
1010 |10 |
select crc32('MySQL'), crc32('mysql');
crc32('MySQL')|crc32('mysql')|
--------------|--------------|
3259397556| 2501908538|
原文作者:SQL编程思想;如有侵权,请联系管理员删除。