MySQL의 변수와 함수들.2

dwanGim·2022년 2월 18일
0

mysql_basic

목록 보기
2/4
post-thumbnail

MySQL 내장함수

CONCAT, CAST, CONVERT 등과 같이
내부에 이미 선언되어 있어서 바로 호출해서 쓸 수 있는
함수들이 더 있습니다.

if(수식, 참일 때 리턴, 거짓일 때 리턴)

의 문법을 지킵니다.
if()는 삼항연산자와 비슷하다고 볼 수 있습니다.

SELECT IF(1000 > 100, 'true', 'false'); #true
SELECT IF(100 > 1000, 'true', 'false'); #false

IFNULL은 2개의 수식 중 NULL이 아닌 수식을 반환합니다.

IFNULL(수식1, 수식2)

위 문법대로라면 수식1이 채워져있을 때 수식1을 반환합니다.

수식1이 NULL이면 수식2로 반환됩니다.

SELECT IFNULL(NULL, '널입니다.'), IFNULL(100,'널입니다.');

NULLIF(수식1, 수식2)

수식1과 수식2가 같을 때 NULL, 다를 때 수식1 반환해줍니다.

SELECT NULLIF(100, 100), NULLIF(200, 100);

CHAR_LENGTH

문자열의 길이를 확인하기 위해

CHAR_LENGTH(문자열)

이 사용됩니다.

SELECT CHAR_LENGTH('가나다라마바사아자차카타파하');

한글의 자음이 14글자라는 결과값이 출력되었습니다.

SELECT CHAR_LENGTH('동해물과백두산이마르고닳도록하느님이보우하사우리나라만세무궁화삼천리화려강산대한사람대한으로길이보전하세');

덕분에 애국가 1절이 52자라는 사실도 쉽게 알게 되었습니다.

CONCAT / CONCAT_WS

CONCAT(문자열1, 문자열2, 문자열3 .....);

은 모든 문자열을 하나의 열로 합해줍니다.

SELECT CONCAT('안', '녕', '하', '세', '요', 'H', 'I');

CONCAT_WS(구분자, 문자열1, 문자열2...);

는 문자열과 문자열 사이에 구분자를 넣어서 구분해줍니다.

SELECT CONCAT_WS('~!', '안', '녕', 'H', 'i', '1', '2');

FORMAT / BIN,HEX,OCT

FORMAT(숫자, 소수점자리)

는 소숫점 값을 반올림해서 끊어줍니다.

SELECT FORMAT(1234.56789123456789, 3);

BIN(정수), HEX(정수), OCT(정수)

는 10진수 정수를 각각

2진수 , 8진수 , 16진수로

변환해줍니다.

SELECT BIN(31), HEX(31), OCT(31);

INSERT(기준문자열, 위치, 길이, 삽입할 문자열);

INSERT

은 기준 문자열의 위치 ~ 길이 사이를 지웁니다.

그리고 그 사이에 삽입할 문자열을 새로 넣어줍니다.

SELECT INSERT('김밥놓고갑니다.', 3, 4, '@@@))))))))))))))');

LEFT,RIGHT

LEFT, RIGHT는 문자열을 삭제하고 출력하는 구문입니다.

LEFT (문자열, 길이), RIGHT(문자열, 길이);

에서 해당 문자열의 왼쪽, 오른쪽에서 문자열 길이만큼만 남기고 나머지를 삭제한 뒤 출력합니다.

SELECT LEFT('abcdefghi', 3), RIGHT('abcdefghi', 4);

UCASE, LCASE / UPPER, LOWER

UCASE(영어문자열), LCASE(영어문자열)
-> 소문자를 대문자로 -> 대문자를 소문자로

SELECT UCASE('abcdEFGH'), LCASE('abcdEFGH');

UPPER(문자열), LOWER(문자열)
->대문자로 ->소문자로
은 UCASE, LCASE와 동일한 기능을 가지고 있습니다.

SELECT UPPER('abcdEFGH'), LOWER('abcdEFGH');

LPAD, RPAD

LPAD(문자열, 길이, 채울 문자열);
RPAD(문자열, 길이, 채울 문자열);

이것은 문자열을 길이만큼 늘려놓고 빈 칸에 채울 문자열을 채워줍니다.

SELECT LPAD('@김밥@', 10, '('), RPAD('@김밥@', 10, ')');

profile
배울 게 참 많네요.

0개의 댓글

관련 채용 정보