SQL에서 SUBSTR
함수와 LENGTH
함수는 문자열 처리에 매우 유용합니다. 여기서 각 함수에 대해 2개씩의 예시를 실제 데이터를 기반으로 자세히 설명하겠습니다.
SUBSTR
함수
SUBSTR
함수는 문자열에서 특정 부분을 추출하는 데 사용됩니다. 기본 문법은 다음과 같습니다:
SUBSTR(string, start, length)
string
은 대상 문자열입니다.start
는 추출을 시작할 위치입니다. 1부터 시작하며, 음수 값을 사용하면 문자열의 끝에서부터 위치를 계산합니다.length
는 추출할 문자의 수입니다. 생략하면start
부터 문자열의 끝까지 모든 문자가 추출됩니다.
예시 1: 이름에서 첫 글자 추출
고객 데이터베이스에서 각 고객의 이름(first_name)이 주어졌을 때, 이름의 첫 글자만 추출해봅시다.
SELECT first_name, SUBSTR(first_name, 1, 1) AS initial
FROM customers;
이 쿼리는 customers
테이블의 모든 first_name
에 대해 첫 글자만을 initial
로 반환합니다.
예시 2: 전화번호에서 지역 코드 추출
전화번호(phone_number
)가 “010-1234-5678” 형식으로 저장된 데이터가 있다고 가정해 봅시다. 여기서 지역 코드만을 추출해보겠습니다.
SELECT phone_number, SUBSTR(phone_number, 1, 3) AS area_code
FROM contacts;
이 쿼리는 contacts
테이블에 있는 각 phone_number
에서 처음 3자리를 추출하여 지역 코드(area_code
)로 반환합니다.
LENGTH
함수
LENGTH
함수는 문자열의 길이(문자 수)를 반환합니다. 기본 문법은 다음과 같습니다:
LENGTH(string)
string
은 길이를 계산할 대상 문자열입니다.
예시 1: 이름의 길이 계산
고객의 이름(first_name)의 길이를 계산해보겠습니다.
SELECT first_name, LENGTH(first_name) AS name_length
FROM customers;
이 쿼리는 customers
테이블의 모든 first_name
에 대한 길이를 name_length
로 반환합니다.
예시 2: 메모 필드의 길이 검사
사용자가 작성한 메모(note
)의 길이를 검사하여 글자 수가 많은 메모를 찾아보겠습니다.
SELECT note, LENGTH(note) AS note_length
FROM notes
WHERE LENGTH(note) > 100;
이 쿼리는 notes
테이블에서 note
필드의 길이가 100자를 초과하는 모든 레코드를 찾아 note_length
로 반환합니다. 이는 긴 메모를 필터링하거나 주의를 요하는 항목을 식별할 때 유용할 수 있습니다.
이러한 예시들은 SUBSTR
과 LENGTH
함수의 기본적인 사용 방법을 보여줍니다. 실제 데이터를 다룰 때 이 함수들을 어떻게 활용할 수 있는지 상상하는 데 도움이 되길 바랍니다. SQL 실습을 통해 다양한 문자열 처리 기능을 숙련하는 것이 중요합니다.
실제 데이터를 기반으로 SUBSTR
과 LENGTH
함수 사용 예시를 들어보겠습니다. 아래 예시를 위해 다음과 같은 가상의 데이터 테이블 구조와 샘플 데이터를 상정합니다.
데이터 테이블 구조 및 샘플 데이터
customers
테이블:
customer_id | first_name | last_name | phone_number |
---|---|---|---|
1 | John | Doe | 010-1234-5678 |
2 | Jane | Smith | 020-9876-5432 |
notes
테이블:
note_id | note |
---|---|
1 | This is a test note. |
2 | Please make sure to review the documents. |
이제 이 데이터를 활용하여 SUBSTR
과 LENGTH
함수 사용 예시를 보여드리겠습니다.
SUBSTR
함수 예시
예시 1: 고객의 성(last_name)에서 첫 두 글자 추출
고객의 성에서 첫 두 글자를 추출하고 싶다고 가정해 봅시다. 이 경우 SUBSTR
함수를 사용할 수 있습니다.
SELECT last_name, SUBSTR(last_name, 1, 2) AS initial
FROM customers;
이 쿼리의 실행 결과는 다음과 같을 것입니다:
last_name | initial |
---|---|
Doe | Do |
Smith | Sm |
예시 2: 전화번호에서 지역 코드 추출
각 고객의 전화번호에서 지역 코드(처음 3자리)만을 추출해봅시다.
SELECT phone_number, SUBSTR(phone_number, 1, 3) AS area_code
FROM customers;
이 쿼리의 실행 결과는 다음과 같을 것입니다:
phone_number | area_code |
---|---|
010-1234-5678 | 010 |
020-9876-5432 | 020 |
LENGTH
함수 예시
예시 1: 고객 이름(first_name)의 길이 계산
각 고객의 이름 길이를 계산합니다.
SELECT first_name, LENGTH(first_name) AS name_length
FROM customers;
이 쿼리의 실행 결과는 다음과 같을 것입니다:
first_name | name_length |
---|---|
John | 4 |
Jane | 4 |
예시 2: 긴 메모 필터링
메모의 길이가 20자를 초과하는 메모를 검색합니다.
SELECT note, LENGTH(note) AS note_length
FROM notes
WHERE LENGTH(note) > 20;
이 쿼리의 실행 결과는 다음과 같을 것입니다:
note | note_length |
---|---|
Please make sure to review the documents. | 41 |
이러한 예시들은 SUBSTR
과 LENGTH
함수를 실제 데이터에 적용하는 방법을 보여줍니다. 각 함수의 사용법을 이해하고 다양한 데이터 처리 상황에서 활용할 수 있게 되기를 바랍니다.