>  기사  >  데이터 베이스  >  mysql 수치 함수

mysql 수치 함수

伊谢尔伦
伊谢尔伦원래의
2016-11-23 13:02:461078검색

1. 산술 연산자

일반적인 산술 연산자를 사용할 수 있습니다. -, + 및 *의 경우 두 매개변수가 모두 양수인 경우 계산 결과의 정확도는 BIGINT(64비트)입니다. 매개변수 중 하나가 부호 없는 정수이고 다른 매개변수도 정수인 경우 결과는 부호 없는 정수.

+

추가:

mysql> SELECT 3+5;

-> 8

-

빼기 기호:

mysql> SELECT 3-5;

-> -2

-

1달러 빼기 기호. 매개변수 기호를 바꿉니다.

mysql> SELECT - 2;

-> -2

참고: 동일한 BIGINT와 동시에 연산자를 사용하는 경우 반환 값도 빅트. 이는 –263이 될 수 있는 정수와 함께 –를 사용하지 말아야 함을 의미합니다.

*

곱셈 기호:

mysql> SELECT 3*5;

-> 15

mysql> 18014398509481984.0;

-> 324518553658426726783156020576256.0

mysql> 9481984;

-> 0

마지막 표현식의 결과가 올바르지 않습니다. 의. 그 이유는 정수 곱셈 결과가 BIGINT 계산의 64비트 범위를 초과하기 때문입니다.

/

나누기 기호:

mysql> SELECT 3/5;

-> NULL의 경우:

mysql> SELECT 102/(1-1);

-> NULL

실행 컨텍스트인 경우에만 결과가 다음으로 변환됩니다. 나누기는 정수인 경우에만 BIGINT 알고리즘과 함께 사용됩니다.

DIV

정수 나눗셈. FLOOR()와 유사하지만 BIGINT 알고리즘을 사용하는 것도 안정적입니다.

mysql> SELECT 5 DIV 2;

-> 2

2. 수학 함수

오류가 발생하면 모든 수학 함수가 NULL을 반환합니다. .

ABS(X)

X의 절대값을 반환합니다.

mysql> SELECT ABS(2);

-> 2

mysql> SELECT ABS(-32);

-> 🎜>

이 함수는 BIGINT 값의 사용을 지원합니다.

ACOS(X)

X의 역코사인을 반환합니다. 즉, 코사인은 X의 값입니다. X가 -1~1 범위에 없으면 NULL이 반환됩니다.

mysql> SELECT ACOS(1);

-> 0

mysql> SELECT ACOS(1.0001);

-> >

mysql> SELECT ACOS(0);

-> 1.5707963267949

ASIN(X)

값의 역사인을 반환합니다. X인 경우 X가 -1~1 범위에 없으면 NULL이 반환됩니다.

ATAN(X)

mysql> SELECT ASIN(0.2);        -> 0.20135792079033
mysql> SELECT ASIN('foo');
+-------------+
| ASIN('foo') |
+-------------+
|           0 |
+-------------+
1 row in set, 1 warning (0.00 sec)

mysql> SHOW WARNINGS;
+---------+------+-----------------------------------------+
| Level   | Code | Message                                 |
+---------+------+-----------------------------------------+
| Warning | 1292 | Truncated incorrect DOUBLE value: 'foo' |
+---------+------+-----------------------------------------+

ATAN(X)
값의 아크탄젠트를 반환합니다.

mysql> SELECT ATAN(2);

-> 1.1071487177941

mysql>

-> 7941

ATAN(Y,X), ATAN2(Y,X)

두 변수 X와 Y의 아크탄젠트를 반환합니다. 두 매개변수의 부호가 결과의 사분면을 결정하는 데 사용된다는 점을 제외하면 Y 또는 X의 아크탄젠트 계산과 유사합니다.

mysql> SELECT ATAN(-2,2);

-> -0.78539816339745

mysql> SELECT ATAN2(PI(),0);

-> 1.5707963267949

CEILING(X) CEIL(X)

X보다 작지 않은 가장 작은 정수 값을 반환합니다.

mysql> SELECT CEILING(1.23);

-> 2

mysql> SELECT CEIL(-1.23);

->

두 기능은 같은 의미를 갖고 있습니다. 반환 값은 BIGINT로 변환됩니다.

COS(X)

X의 코사인을 반환합니다. 여기서 X는 라디안으로 표시됩니다.

mysql> SELECT COS(PI());

-> -1

COT(X)

X의 코탄젠트를 반환합니다.

mysql> SELECT COT(12);

-> -1.5726734063977

mysql> 🎜>

CRC32(expr)

순환 중복 코드 검사 값을 확인하고 32비트 부호 없는 값을 반환합니다. 매개변수가 NULL이면 결과는 NULL입니다. 인수는 문자열이어야 하며 문자열이 아닌 경우 가능하면 문자열로 처리됩니다.

mysql> SELECT CRC32('MySQL');

-> 3259397556

mysql> ; 2501908538

DEGREES(X)

라디안에서 도로 변환되는 매개변수 X를 반환합니다.

mysql> SELECT DEGREES(PI());

-> 180

mysql> SELECT DEGREES(PI() / 2);

-> 90

EXP(X)

e의 X제곱(자연로그 밑)을 반환합니다.

mysql> SELECT EXP(2);

-> 7.3890560989307

mysql> 23661

mysql>

->1

FLOOR(X)

X보다 크지 않은 가장 큰 정수 값을 반환합니다.

mysql>SELECT FLOOR(1.23);

->1

mysql>SELECT FLOOR(-1.23);

->

반환 값은 BIGINT로 변환됩니다.

FORMAT(X,D)

숫자 쓰기 비트는 보존되고 반올림되며 결과는 문자열로 반환됩니다.

LN(X)

X의 자연 로그, 즉 밑수 e에 대한 X의 로그를 반환합니다.

mysql> SELECT LN(2);

-> 0.69314718055995

mysql> SELECT LN(-2);

-> 🎜>

이 함수는 LOG(X)와 같은 의미입니다.

LOG(X) LOG(B,X)

하나의 매개변수로 호출하면 이 함수는 X의 자연 로그를 반환합니다.

mysql> SELECT LOG(2);

-> 0.69314718055995

mysql> SELECT LOG(-2);

-> 🎜>

두 개의 매개변수를 사용하여 호출하면 이 함수는 밑수 B에 대한 X의 로그를 반환합니다.

mysql>SELECT LOG(2,65536);

->16

mysql>SELECT LOG(10,100);

->

LOG(B,X)는 LOG(X) / LOG(B)와 동일합니다.

LOG2(X)

X의 밑이 2인 로그를 반환합니다.

mysql> SELECT LOG2(65536);

-> 16

mysql> SELECT LOG2(-100);

-> 🎜>

LOG2()는 숫자를 저장하는 데 몇 비트가 필요한지 알아내는 데 매우 효과적입니다. 이 함수는 LOG(X) / LOG(2) 표현식과 동일합니다.

LOG10(X)

X의 밑이 10인 로그를 반환합니다.

mysql> SELECT LOG10(2);

-> 0.30102999566398

mysql>

-> >

mysql> SELECT LOG10(-100);

-> NULL

LOG10(X)은 LOG(10,X)와 동일합니다.

MOD(N,M) , N % M N MOD M

모듈 작동. N을 M으로 나눈 나머지를 반환합니다.

mysql> SELECT MOD(234, 10);

-> 4

mysql> SELECT 253 % 7;

-> 🎜>

mysql> SELECT MOD(29,9);

-> 2

mysql> SELECT 29 MOD 9;

-> >

이 함수는 BIGINT 값의 사용을 지원합니다.

MOD()는 소수 부분이 있는 값에도 작동하며 나눈 후 정확한 나머지를 반환합니다.

mysql> SELECT MOD(34.5,3);

- > 1.5

PI()

ϖ(pi) 값을 반환합니다. 기본 표시 소수점 자리는 7이지만 MySQL은 내부적으로 전체 배정밀도 값을 사용합니다.

mysql> SELECT PI();

-> 3.141593

mysql> SELECT PI()+0.000000000000000000; 🎜>POW(X,Y ), POWER(X,Y)

X를 Y만큼 거듭제곱한 결과 값을 반환합니다.

mysql>SELECT POW(2,2);

->4

mysql>SELECT POW(2,-2);

- > 0.25

RADIANS(X)

도에서 라디안으로 변환된 매개변수 X를 반환합니다(ϖ 라디안은 180도와 같습니다).

mysql> SELECT RADIANS(90);

-> 1.5707963267949

RAND() RAND(N)

임의의 부동 소수점 값 v를 반환합니다. , 범위는 0과 1 사이입니다(즉, 범위는 0 ≤ v ≤ 1.0입니다). 정수 매개변수 N이 지정되면 반복 시퀀스를 생성하는 데 사용되는 시드 값으로 사용됩니다.

mysql> SELECT RAND();

-> 0.9233482386203

mysql>

-> 🎜 >

mysql> SELECT RAND(20);

-> 0.15888261251047

mysql> 🎜>

mysql> ; 0.70100469486881

mysql> 🎜>이 범위에서 임의의 정수 R을 얻으려면 FLOOR(i + RAND() * (j – i + 1)). 예를 들어 7~12(포함) 범위의 임의의 정수를 얻으려면 다음 문을 사용할 수 있습니다.

SELECT FLOOR(7 + (RAND() * 6));

ORDER BY 문에서는 ORDER BY가 해당 열을 여러 번 계산하므로 RAND() 값이 있는 열을 사용할 수 없습니다. 그러나 다음과 같이 데이터 행을 무작위 순서로 검색할 수 있습니다.

mysql> SELECT * FROM tbl_name ORDER BY RAND();

ORDER BY RAND()와 LIMIT 집합 columns 무작위 샘플을 선택하는 것이 유용합니다.

mysql> SELECT * FROM table1, table2 WHERE a=b AND c1713a438e31ca69e91caa2f019b9a4fd ORDER BY RAND() LIMIT 1000;

WHERE 문에서는 WHERE가 실행될 때마다 RAND()가 다시 계산된다는 점에 유의하세요.

RAND()는 정확한 무작위를 생성하기 위한 것이 아니라 동일한 MySQL 버전을 사용하는 플랫폼 간에 이동 가능한 임시 난수를 생성하는 빠른 방법입니다.

ROUND(X) ROUND(X,D)

返回参数X, 其值接近于最近似的整数。在有两个参数的情况下,返回 X ,其值保留到小数点后D位,而第D位的保留方式为四舍五入。若要接保留X值小数点左边的D 位,可将 D 设为负值。

mysql> SELECT ROUND(-1.23);

-> -1

mysql> SELECT ROUND(-1.58);

-> -2

mysql> SELECT ROUND(1.58);

-> 2

mysql> SELECT ROUND(1.298, 1);

-> 1.3

mysql> SELECT ROUND(1.298, 0);

-> 1

mysql> SELECT ROUND(23.298, -1);

-> 20

返回值的类型同 第一个自变量相同(假设它是一个整数、双精度数或小数)。这意味着对于一个整数参数,结果也是一个整数(无小数部分)。

当第一个参数是十进制常数时,对于准确值参数,ROUND() 使用精密数学题库:

对于准确值数字, ROUND() 使用“四舍五入” 或“舍入成最接近的数” 的规则:对于一个分数部分为 .5或大于 .5的值,正数则上舍入到邻近的整数值, 负数则下舍入临近的整数值。(换言之, 其舍入的方向是数轴上远离零的方向)。对于一个分数部分小于.5 的值,正数则下舍入下一个整数值,负数则下舍入邻近的整数值,而正数则上舍入邻近的整数值。

对于近似值数字,其结果根据C 库而定。在很多系统中,这意味着 ROUND()的使用遵循“舍入成最接近的偶数”的规则: 一个带有任何小数部分的值会被舍入成最接近的偶数整数。

以下举例说明舍入法对于精确值和近似值的不同之处:

mysql> SELECT ROUND(2.5), ROUND(25E-1);
+------------+--------------+
| ROUND(2.5) | ROUND(25E-1) |
+------------+--------------+
| 3          |            2 |
+------------+--------------+

SIGN(X)

返回参数作为-1、 0或1的符号,该符号取决于X 的值为负、零或正。

mysql> SELECT SIGN(-32);

-> -1

mysql> SELECT SIGN(0);

-> 0

mysql> SELECT SIGN(234);

-> 1

SIN(X)

返回X 正弦,其中 X 在弧度中被给定。

mysql> SELECT SIN(PI());

-> 1.2246063538224e-16

mysql> SELECT ROUND(SIN(PI()));

-> 0

SQRT(X)

返回非负数X 的二次方根。

mysql> SELECT SQRT(4);

-> 2

mysql> SELECT SQRT(20);

-> 4.4721359549996

mysql> SELECT SQRT(-16);

-> NULL

TAN(X)

返回X 的正切,其中X 在弧度中被给定。

mysql> SELECT TAN(PI());

-> -1.2246063538224e-16

mysql> SELECT TAN(PI()+1);

-> 1.5574077246549

TRUNCATE(X,D)

返回被舍去至小数点后D位的数字X。若D 的值为 0, 则结果不带有小数点或不带有小数部分。可以将D设为负数,若要截去(归零) X小数点左起第D位开始后面所有低位的值.  

mysql> SELECT TRUNCATE(1.223,1);

-> 1.2

mysql> SELECT TRUNCATE(1.999,1);

-> 1.9

mysql> SELECT TRUNCATE(1.999,0);

-> 1

mysql> SELECT TRUNCATE(-1.999,1);

-> -1.9

mysql> SELECT TRUNCATE(122,-2);

-> 100

mysql> SELECT TRUNCATE(10.28*100,0);

-> 1028

所有数字的舍入方向都接近于零。


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.