MySQL 関数 ( 1 )

August 05, 2018

関数の種類

関数は大きく数値関数、文字列関数、日付および時間関数、その他の関数に分類できる。
何かを処理 (操作* 計算) したり、何かを得る働きをしたりすることが多い。

関数の種類 関数の例 特徴
数値関数 FLOOR(), CEILING(), ROUND() 数値の計算をするための関数。値の丸めや塁上、正負の変換など
文字列関数 CONCAT(), REPLACE(), CHAR_LENGTH() 文字列の操作をする関数。大文字* 小文字の変換や部分的な文字列の取り出し、置換、結合など
日付および時間関数 CURDATE(), CURTIME(), NOW() 日付や時間を検索、計算する関数。現在の日時の取得、曜日の計算、日時の差の算出などができる
その他の関数 CONVERT(), CAST() データ型の変換、XML 操作や暗号化、ビット演算など

数値関数

数字を操作する関数

FLOOR()
mysql> SELECT FLOOR(12.5);  
+-------------+  
| FLOOR(12.5) |  
+-------------+  
|          12 |  
+-------------+  
1 row in set (0.01 sec)  
CEILING(), CEIL()
mysql> SELECT CEILING(12.5);  
+---------------+  
| CEILING(12.5) |  
+---------------+  
|            13 |  
+---------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT CEIL(12.5);  
+------------+  
| CEIL(12.5) |  
+------------+  
|         13 |  
+------------+  
1 row in set (0.00 sec)  
ROUND()
mysql> SELECT ROUND(12.5);  
+-------------+  
| ROUND(12.5) |  
+-------------+  
|          13 |  
+-------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT ROUND(12.4);  
+-------------+  
| ROUND(12.4) |  
+-------------+  
|          12 |  
+-------------+  
1 row in set (0.02 sec)  
TRUNCATE()
mysql> SELECT TRUNCATE(12.4, 3);  
+-------------------+  
| TRUNCATE(12.4, 3) |  
+-------------------+  
|            12.400 |  
+-------------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT TRUNCATE(12.4, 1);  
+-------------------+  
| TRUNCATE(12.4, 1) |  
+-------------------+  
|              12.4 |  
+-------------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT TRUNCATE(12.4, 0);  
+-------------------+  
| TRUNCATE(12.4, 0) |  
+-------------------+  
|                12 |  
+-------------------+  
1 row in set (0.02 sec)  

指数対数の計算をする関数

EXP()
mysql> SELECT EXP(2);  
+------------------+  
| EXP(2)           |  
+------------------+  
| 7.38905609893065 |  
+------------------+  
1 row in set (0.01 sec)  
SQRT()
mysql> SELECT SQRT(4);  
+---------+  
| SQRT(4) |  
+---------+  
|       2 |  
+---------+  
1 row in set (0.01 sec)  
POW(), POWER()
mysql> SELECT POW(2, 4);  
+-----------+  
| POW(2, 4) |  
+-----------+  
|        16 |  
+-----------+  
1 row in set (0.01 sec)  
  
mysql> SELECT POWER(3, 5);  
+-------------+  
| POWER(3, 5) |  
+-------------+  
|         243 |  
+-------------+  
1 row in set (0.02 sec)  
LN(), LOG(), LOG10(), LOG2()
mysql> SELECT LOG(4);  
+--------------------+  
| LOG(4)             |  
+--------------------+  
| 1.3862943611198906 |  
+--------------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT LOG10(100000000000);  
+---------------------+  
| LOG10(100000000000) |  
+---------------------+  
|                  11 |  
+---------------------+  
1 row in set (0.01 sec)  
  
mysql> SELECT LOG2(16);  
+----------+  
| LOG2(16) |  
+----------+  
|        4 |  
+----------+  
1 row in set (0.00 sec)  

その他の数値関数

RAND()
mysql> SELECT RAND();  
+--------------------+  
| RAND()             |  
+--------------------+  
| 0.7439923256114054 |  
+--------------------+  
1 row in set (0.00 sec)  
  
mysql> SELECT FLOOR(RAND() * (10 - 1) + 1);  
+------------------------------+  
| FLOOR(RAND() * (10 - 1) + 1) |  
+------------------------------+  
|                            3 |  
+------------------------------+  
1 row in set (0.00 sec)  
ABS()
mysql> SELECT ABS(-5);  
+---------+  
| ABS(-5) |  
+---------+  
|       5 |  
+---------+  
1 row in set (0.00 sec)  
SIGN()
mysql> SELECT SIGN(-5);  
+----------+  
| SIGN(-5) |  
+----------+  
|       -1 |  
+----------+  
1 row in set (0.00 sec)  
CRC32()
mysql> SELECT CRC32('aslksdjf');  
+-------------------+  
| CRC32('aslksdjf') |  
+-------------------+  
|         950015817 |  
+-------------------+  
1 row in set (0.00 sec)  

 © 2023, Dealing with Ambiguity