SQL SUBSTR 함수와 LENGTH 함수 사용방법 및 예시

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로 반환합니다. 이는 긴 메모를 필터링하거나 주의를 요하는 항목을 식별할 때 유용할 수 있습니다.

이러한 예시들은 SUBSTRLENGTH 함수의 기본적인 사용 방법을 보여줍니다. 실제 데이터를 다룰 때 이 함수들을 어떻게 활용할 수 있는지 상상하는 데 도움이 되길 바랍니다. SQL 실습을 통해 다양한 문자열 처리 기능을 숙련하는 것이 중요합니다.

실제 데이터를 기반으로 SUBSTRLENGTH 함수 사용 예시를 들어보겠습니다. 아래 예시를 위해 다음과 같은 가상의 데이터 테이블 구조와 샘플 데이터를 상정합니다.

데이터 테이블 구조 및 샘플 데이터

customers 테이블:

customer_idfirst_namelast_namephone_number
1JohnDoe010-1234-5678
2JaneSmith020-9876-5432

notes 테이블:

note_idnote
1This is a test note.
2Please make sure to review the documents.

이제 이 데이터를 활용하여 SUBSTRLENGTH 함수 사용 예시를 보여드리겠습니다.

SUBSTR 함수 예시

예시 1: 고객의 성(last_name)에서 첫 두 글자 추출

고객의 성에서 첫 두 글자를 추출하고 싶다고 가정해 봅시다. 이 경우 SUBSTR 함수를 사용할 수 있습니다.

SELECT last_name, SUBSTR(last_name, 1, 2) AS initial
FROM customers;

이 쿼리의 실행 결과는 다음과 같을 것입니다:

last_nameinitial
DoeDo
SmithSm

예시 2: 전화번호에서 지역 코드 추출

각 고객의 전화번호에서 지역 코드(처음 3자리)만을 추출해봅시다.

SELECT phone_number, SUBSTR(phone_number, 1, 3) AS area_code
FROM customers;

이 쿼리의 실행 결과는 다음과 같을 것입니다:

phone_numberarea_code
010-1234-5678010
020-9876-5432020

LENGTH 함수 예시

예시 1: 고객 이름(first_name)의 길이 계산

각 고객의 이름 길이를 계산합니다.

SELECT first_name, LENGTH(first_name) AS name_length
FROM customers;

이 쿼리의 실행 결과는 다음과 같을 것입니다:

first_namename_length
John4
Jane4

예시 2: 긴 메모 필터링

메모의 길이가 20자를 초과하는 메모를 검색합니다.

SELECT note, LENGTH(note) AS note_length
FROM notes
WHERE LENGTH(note) > 20;

이 쿼리의 실행 결과는 다음과 같을 것입니다:

notenote_length
Please make sure to review the documents.41

이러한 예시들은 SUBSTRLENGTH 함수를 실제 데이터에 적용하는 방법을 보여줍니다. 각 함수의 사용법을 이해하고 다양한 데이터 처리 상황에서 활용할 수 있게 되기를 바랍니다.