반응형

문자열 연결

문자열과 문자열 연결

문자열끼리 연결할 때는 단순히 +로 연결할 수도 있지만, CONCAT 함수를 사용할 수 있다. 다음은 몇몇 문자열을 한번에 연결한 예시이다.

SELECT CONCAT("SQL ", "Tutorial ", "is ", "fun!") AS ConcatenatedString;

만약 3개의 열을 하나의 열로 합치고 싶다면 아래 예제처럼 활용할 수 있다.

SELECT CONCAT(Address, " ", PostalCode, " ", City) AS Address
FROM Customers;

데이터 형 변환

문자열과 다른 데이터형 연결

문자열이 아닌 다른 데이터형의 값과 연결해야 할 경우는 어떻게 할 수 있을까? 다른 프로그래밍 언어처럼 변환하여 연결해주면 되는데, CAST와 CONVERT를 활용하면 된다. CAST 함수의 사용법은 다음과 같다.

CAST(value AS datatype)

-- Example

SELECT CAST("2017-08-29" AS DATE);

CONVERT() 함수는 특정 값을 데이터타입이나 문자열의 집합으로 바꿔준다. 아래는 사용법 예시이다.

CONVERT(value, type)

-- Or

CONVERT(value USING charset)

-- Example

SELECT CONVERT(150, CHAR);

NULL 처리하기

특정 데이터형이 아닌 NULL과 연결하려고 하면, ISNULL로 대체할 값을 만든 후 반환한다. 다음은 ISNULL의 사용법이다. 만약 NULL 값이 있는 경우 공백으로 반환할 수 있다.

ISNULL(column, expression)   

-- Example
SELECT ISNULL(col_a, "");

만약 여러 열에 대해서 NULL을 체크하고 대입하고 싶다면, COALESCE 함수를 사용할 수 있다. 여러 개의 데이터 리스트를 넣고 그 중에 가장 첫번째로 NULL이 아닌 것을 입력한다. 사용법은 아래와 같이 넣어줄 수 있다.

COALESCE(val1, val2, ...., val_n)

문자열 처리

소문자, 대문자 변경

소문자와 대문자를 구분하는 경우도 있지만, 구분이 필요하지 않을 수도 있다. 이때 LOWER와 UPPER를 사용하면 된다.

SELECT LOWER("SQL Tutorial is FUN!");
SELECT UPPER("SQL Tutorial is FUN!");

문자열 공백 제거

문자열 특성상 공백이 입력되는 경우가 있다. 이 경우 TRIM을 활용하면 되는데, 다른 프로그래밍 언어처럼 왼쪽, 오른쪽에 대해서도 적용할 수 있는 LTRIM, RTRIM도 존재한다. 어떤 공백을 제거하는지 살펴보기 위해 아래 예제를 참고하면 된다.

SELECT TRIM('    SQL Tutorial    ') AS TrimmedString;
SELECT RTRIM("SQL Tutorial     ") AS RightTrimmedString;
SELECT LTRIM("     SQL Tutorial") AS LeftTrimmedString;

지정한 길이만큼 반환

앞서 TRIM처럼 왼쪽이나 오른쪽에서 지정한 길이만큼 반환하는 함수가 LEFT, RIGHT가 있다. 사용법은 아래와 같다.

RIGHT(string, number_of_chars)
LEFT(string, number_of_chars)

만약 지정한 범위의 문자열을 반환하려면 SUBSTRING을 활용할 수 있다. string부터 시작 숫자를 그리고 반환할 문자 개수를 적어서 사용한다.

SUBSTRING(string, start, length)

--OR

SUBSTRING(string FROM start FOR length)

문자 바꾸기

기존 문자에서 특정 문자(substring)를 새로운 문자(new_string)으로 바꾸기 위해서는 아래와 같이 REPLACE를 쓰면 된다.

REPLACE(string, substring, new_string)

반복하기

특정 문자를 반복하려면 REPEAT을 사용하면 된다.

REPEAT(string, number)

만약 공백을 반복하고 싶다면, SPACE를 활용한다.

SPACE(number)

역순

만약 문자열을 거꾸로 정렬하기 위해서는 REVERSE를 활용한다.

REVERSE(string)

참고자료

  1. W3Schools
  2. 강성욱. Do it! SQL 입문. 이지스 퍼블리싱.
반응형