본문 바로가기
SQL/SQL 스터디

SQL 독학: 9가지 자주 쓰는 문자열 함수 알아보기

by davi_kr 2023. 4. 23.

목차

    반응형

    SQLD 공부 및 데이터 분석을 하기 위해 DB에 있는 값들을 불러올 때, SQL을 많이 활용했습니다.

    이전에 독학하면서 공부했던 내용을 기록으로 남겨둡니다.

     

    예시) user 테이블

     

    id name email ssn 비고
    1 Alice alice@example.com 123-45-6789  
    2 Bob bob@example.com 234-56-7890  
    3 Charlie charlie@example.com 345-67-8901  

     

    1. UPPER - 문자열 대문자로 변환

    SELECT id, UPPER(name) AS upper_name
    FROM users;

     

    id upper_name
    1 ALICE
    2 BOB
    3 CHARLIE

     

    2. LOWER - 문자열 소문자로 변환

    SELECT id, LOWER(name) AS lower_name
    FROM users;

     

    id lower_name
    1 alice
    2 bob
    3 charlie

     

    3. LENGTH - 문자열 길이 계산

    SELECT id, LENGTH(name) AS name_length
    FROM users;

     

    id name_length
    1 5
    2 3
    3 7

     

    4. CONCAT - 문자열 연결

    SELECT id, CONCAT(name, '(', email, ')') AS name_and_email
    FROM users;

     

    id name_and_email
    1 Alice(alice@example.com)
    2 Bob(bob@example.com)
    3 Charlie(charlie@example.com)

     

    5. SUBSTRING - 문자열 일부 추출

     

    5-1. ssn에서 첫 3글자 가져오기

    SELECT id, SUBSTRING(ssn, 1, 3) AS first_3_digits
    FROM users;

     

    id first_3_digits
    1 123
    2 234
    3 345

     

    5-2. 이메일 주소에서 사용자 이름 부분만 추출하기

    SELECT id, SUBSTRING(email FROM 1 FOR POSITION('@' IN email) - 1) AS username
    FROM users;

     

    id username
    1 alice
    2 bob
    3 charlie

     

    5-3. 주민번호에서 생년월일 부분만 추출하기(우리나라 기준으로 예시를 들기 위해 다른 테이블을 사용해보겠습니다.)

     

    예시) user1 테이블

    id name email ssn
    1 Alice alice@example.com 900101-1234
    2 Bob bob@example.com 880301-5678
    3 Charlie charlie@example.com 950715-9012

     

    SELECT id, SUBSTRING(ssn FROM 1 FOR 6) AS birth_date
    FROM users1;

     

    id birth_date
    1 900101
    2 880301
    3 950715

     

    6. REPLACE - 문자열 내 특정 문자열 대체

    SELECT id, REPLACE(email, 'example.com', 'test.com') AS new_email
    FROM users;

     

    id new_email
    1 alice@test.com
    2 bob@test.com
    3 charlie@test.com

     

    7. TRIM - 문자열 앞뒤 공백 제거

     

    예시) books 테이블

    id book_title author price
    1 The Catcher in the Rye J.D. Salinger 15.99
    2 To Kill a Mockingbird Harper Lee 12.99
    3 Moby-Dick Herman Melville 19.99

     

    SELECT id, TRIM(book_title) AS trimmed_title
    FROM books;

     

    id trimmed_title
    1 TheCatcherintheRye
    2 ToKillaMockingbird
    3 Moby-Dick

     

    8. POSITION - 문자열 내 특정 문자열 위치 찾기

     

    SELECT id, POSITION('@' IN email) AS at_position
    FROM users;

     

    id at_position
    1 6
    2 4
    3 9

     

    9. CHAR_LENGTH - 문자열 길이 계산

     

    SELECT id, CHAR_LENGTH(name) AS name_char_length
    FROM users;

     

    id name_char_length
    1 5
    2 3
    3 7

     

    반응형

    댓글