DB/SQL

[세무민의 코딩일기] SQL 내장함수에 대해서 알아보자 1탄!(길이, 진법변환, 문자열 반환 등)

세기루민 2021. 7. 27. 13:00
728x90

오늘 다뤄볼 포스팅은 SQL 내장함수에 대해서 다뤄볼 것입니다.

내장함수가 워낙 많아서 나눠서 포스팅 할 예정입니다.


1. 아스키 코드 함수[ASCII]

SELECT ASCII('AB') AS 'AB'
, (ASCII('A') + ASCII('B')) AS 'A + B';

아스키 코드는 위와 같이 사용할 수 있습니다.

위의 코드를 돌리면 위의 그림과 같이 나오며 'AB'과 같이 문자열의 경우에는

아스키 코드 함수가 가장 앞에 있는 A를 변환해줍니다,


2. BIT_LENGTH, LENGTH, CHAR_LENGTH

SELECT BIT_LENGTH('SG-MOOMOIN') AS '비트 길이'
, CHAR_LENGTH('SG-MOOMIN') AS '문자 길이'
, LENGTH('SG-MOOMIN') AS '길이'
, BIT_LENGTH('세기무민') AS '비트 길이(한글)'
, CHAR_LENGTH('세기무민') AS '문자 길이(한글)'
, LENGTH('세기무민') AS '길이(한글)';

 

코드에 대한 결과값은 위와 같습니다.

LENGTH를 이용하면 해당 문자열에 대해 길이를 반환해줍니다. 

BIT_LENGTH는 BIT 크기로 반환하고 CHAR_LENGTH는 문자 크기로 반환해줍니다. 

CHAR_LENGTH와 LENGTH는 한글을 사용할 경우 차이가 존재합니다. 

MYSQL이 UTF-8 코드를 사용하기 때문에 영어의 길이와 한글의 길이도 다릅니다.


3. ELT, FIELD

SELECT ELT(1, 'SG-MOOMIN', 'SG', 'MOOMIN') AS '첫번째'
,ELT(2, 'SG-MOOMIN', 'SG', 'MOOMIN') AS '두번째'
,ELT(3, 'SG-MOOMIN', 'SG', 'MOOMIN') AS '세번째';

SELECT FIELD('NUMBER', 'SG-MOOMIN', 'SG', 'MOOMIN') AS '첫번째'
,FIELD('SG', 'SG-MOOMIN', 'SG', 'MOOMIN') AS '두번째'
,FIELD('MOOMIN', 'SG-MOOMIN', 'SG', 'MOOMIN') AS '세번째';

위의 ELT 코드를 돌렸을 때 위와 같은 결과가 나옵니다.

ELT는 N번째 위치에 해당하는 문자열을 반환할 때 사용하는 함수입니다.

FIELD의 코드를 돌렸을 때 위의 그림과 같은 겨로가가 나옵니다.

FIELD는 찾으려는 문자열의 위치를 찾기 위한 함수입니다. 

따라서 FIELD의 경우는 추후에 변수에 어떤 값이 존재하는 지 검색하는 용도로 사용 가능합니다.


4. INSTR, LOCATE

SELECT INSTR('SG-MOOMIN!', 'MO') AS 'INSTR'
,LOCATE('IN', 'SG-MOOMIN!') AS 'LOCATE';

위의 코드를 돌리면 그림처럼 결과가 나옵니다.

INSTR와 LOCATE는 같은 용도로 사용되는 함수이지만 서로 파라미터가 반대입니다.

INSTR와 LOCATE는 문자열에 찾으려는 값이 존재한다면 해당 위치를 반환해주는 함수입니다. 


5. BIN, OCT, HEX

 

SELECT BIN(33) AS '2진수'
, OCT(33) AS '8진수'
, HEX(33) AS '16진수';

위의 코드를 돌리면 그림처럼 결과가 나오는데 BIN, OCT, HEX는 진수 변환에 사용되는 함수입니다.

BIN은 2진수, OCT는 8진수, HEX는 16진수로 변환을 할 수 있는 함수입니다.


6.  UCASE & UPPER, LCASE & LOWER

SELECT LCASE('sg-mooMIN') AS 'LCASE'
, UCASE('SG-MOOmin') AS 'UCASE'
, UPPER('sg-mooMIN') AS 'UPPER'
, LOWER('SG-MOOmin') AS 'LOWER';

위의 코드를 돌리면 그림처럼 결과가 나옵니다. 

이번 함수의 경우 대부분 한번쯤은 봤을 정도로 많이 사용되는 함수인데

UCASE, UPPER, LCASE, LOWER는 대문자와 소문자를 서로 변환해줄 때 사용하는 함수입니다.

UCASE와 UPPER는 소문자를 대문자로, LCASE와 LOWER는 대문자를 소문자로 변환해줍니다.


7.  LPAD, RPAD

SELECT LPAD('SG-MOOMIN', 17, 'TISTORY ') AS 'LPAD'
,RPAD('SG-MOOMIN', 17, ' TISTORY') AS 'RPAD';

LPAD와 RPAD도 자주 사용되는 함수 중 하나입니다. 

LPAD와 RPAD는 문자열에 특정 값을 원하는 길이만큼 채울 때 사용하는 함수입니다. 

LPAD는 왼쪽, RPAD는 오른쪽으로 추가됩니다.


이번 포스팅은 내장함수에 대해서 다뤄봤습니다.

사실 내장함수를 모르는 사람은 없을 것입니다.

그렇지만 다시 한번 생각해보시면 내장함수를 생각보다 자주 까먹고 기억이 안나는 경우도 종종 있습니다.

이런 상황이 반복되지 않도록 한번씩 상기시켜준다면 다음에 내장함수가 필요하면 빠르게 찾을 수 있을것입니다.

다음 포스팅에서는 SQL 내장함수에 대해서 마저 포스팅하도록 하겠습니다.

 

 

728x90