기타 함수

함수 설명
SLEEP(초) 지정 시간(초) 동안 실행을 지연시킴
CONVERT(값, 데이터형식) 데이터 형식을 바꿈
UUID() UUID(Universally Unique Identifier) 값을 반환
VERSION() MySQL의 버전을 반환
USER() 현재 유저를 반환
CONNECTION_ID() 현재 연결의 CONNECTION_ID를 반환
LAST_INSERT_ID() AUTO_INCREMENT로 생성된 열의 마지막으로 삽입된 값을 반환
FOUND_ROWS() 가장 최근에 실행된 SELECT 문에서 검색된 행(row)의 수를 반환
BENCHMARK() 주어진 횟수만큼 특정 작업을 반복 (성능, 부하 테스트)

SLEEP()

지정 시간(초) 동안 실행을 지연시킵니다.

1
2
3
4
5
6
7
SELECT SYSDATE(), SLEEP(3), SYSDATE();

+---------------------+----------+---------------------+
| SYSDATE()           | SLEEP(3) | SYSDATE()           |
+---------------------+----------+---------------------+
| 2024-02-25 19:28:06 |        0 | 2024-02-25 19:28:09 |
+---------------------+----------+---------------------+

CONVERT()

값을 지정한 데이터 형식으로 바꿉니다.

1
2
3
4
5
6
SELECT CONVERT(3.14, SIGNED INTEGER);
-- >> 3
SELECT CONVERT('2024-02-24', DATE);
-- >> 2024-02-24
SELECT CONVERT('hello', BINARY);
-- >> hello

UUID()

UUID는 “Universally Unique Identifier”의 약자로, 범용적으로 고유한 식별자를 나타내는 128비트 길이의 값입니다. UUID는 일반적으로 무작위로 생성되며, 충돌이 발생할 확률이 매우 낮아 거의 유일성이 보장됩니다. 이는 분산 환경에서 고유한 식별자가 필요한 경우나 중복을 최소화해야 하는 경우에 유용합니다.

1
2
SELECT UUID();
-- >> 550e8400-e29b-41d4-a716-446655440000

VERSION()

MySQL의 버전을 반환합니다.

1
2
SELECT VERSION();
-- >> 11.2.2-MariaDB

USER()

현재 유저를 반환합니다.

1
2
SELECT USER();
-- >> user@localhost

CONNECTION_ID()

MySQL 서버에서 현재 연결의 고유 식별자를 반환하는 함수입니다. 이 함수를 호출하면 현재 세션의 연결 ID가 반환됩니다. 이 연결 ID는 해당 세션이나 클라이언트를 고유하게 식별하는 데 사용됩니다.

1
2
SELECT CONNECTION_ID();
-- >> 58

LAST_INSERT_ID()

AUTO_INCREMENT로 생성된 열의 마지막으로 삽입된 값을 반환하는 함수입니다. 이 함수는 주로 AUTO_INCREMENT 열에 대한 마지막으로 삽입된 값을 확인하고, 이 값을 다른 테이블의 외래 키로 사용하거나 프로그램 로직에서 활용할 때 사용됩니다.

1
2
3
4
5
6
7
8
CREATE TABLE example_table (
	id INT AUTO_INCREMENT PRIMARY KEY,
	name VARCHAR(255)
	);
INSERT INTO example_table (name) VALUES ('John');
SELECT LAST_INSERT_ID();
-- >> 1
-- 마지막으로 삽입된 AUTO_INCREMENT 열의 값을 조회 

FOUND_ROWS()

가장 최근에 실행된 SELECT 문에서 검색된 행(row)의 수를 반환합니다. 이 함수는 일반적으로 SELECT 문의 결과에 대한 행의 수를 반환하는 것이 아니라, 그 전에 실행된 SELECT 문에서 반환된 전체 행의 수를 반환합니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
SELECT product FROM math_sample;
+---------+
| product |
+---------+
| APPLE   |
| APPLE   |
| BANANA  |
| BANANA  |
| ORANGE  |
| ORANGE  |
| GRAPE   |
+---------+
SELECT FOUND_ROWS();
-- >> 7
1
2
3
4
5
6
7
8
9
10
11
SELECT product FROM math_sample GROUP BY product;
+---------+
| product |
+---------+
| APPLE   |
| BANANA  |
| GRAPE   |
| ORANGE  |
+---------+
SELECT FOUND_ROWS();
-- >> 4

BENCHMARK()

주어진 횟수만큼 특정 작업을 반복합니다. 성능 측정이나 부하 테스트 등에 활용할 수 있습니다. 반환값은 마지막 BENCHMARK의 동작의 반환 값입니다.

1
2
3
4
5
6
7
8
9
SELECT SYSDATE(),
       BENCHMARK(300000000, RAND()) AS BM,
       SYSDATE();

+---------------------+----+---------------------+
| SYSDATE()           | BM | SYSDATE()           |
+---------------------+----+---------------------+
| 2024-02-25 19:45:28 |  0 | 2024-02-25 19:45:31 |
+---------------------+----+---------------------+

Categories:

Updated: