[프로그래머스] 3월에 태어난 여성 회원 목록 출력하기 - MySQL

2025. 2. 17. 14:27SQL 알고리즘

728x90

아래는 해당 SQL 코드에 대한 자세한 설명을 티스토리에 올릴 수 있도록 정리한 내용입니다:


3월에 태어난 여성 회원 목록 출력하기: SQL 쿼리 설명

문제 정의:

주어진 테이블 MEMBER_PROFILE에서 생일이 3월인 여성 회원들의 정보를 조회하는 SQL 쿼리를 작성하는 문제입니다. 이때 다음과 같은 조건이 있습니다:

  • 전화번호(TLNO)가 NULL인 회원은 제외
  • 결과는 MEMBER_ID를 기준으로 오름차순으로 정렬
  • 날짜 형식은 YYYY-MM-DD 형식으로 출력

테이블 구조:

MEMBER_PROFILE 테이블은 다음과 같은 컬럼들로 구성됩니다:

  • MEMBER_ID: 회원의 이메일 주소 또는 ID (VARCHAR)
  • MEMBER_NAME: 회원의 이름 (VARCHAR)
  • TLNO: 회원의 연락처 (VARCHAR)
  • GENDER: 회원의 성별 (VARCHAR, 'M' 또는 'W')
  • DATE_OF_BIRTH: 회원의 생년월일 (DATE)

SQL 쿼리 설명:

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
FROM MEMBER_PROFILE
WHERE MONTH(DATE_OF_BIRTH) = 3
AND TLNO IS NOT NULL
AND GENDER = 'W'
ORDER BY MEMBER_ID ASC;
  1. SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH
    • SELECT: 조회할 컬럼들을 선택합니다.
    • MEMBER_ID, MEMBER_NAME, GENDER: 회원의 ID, 이름, 성별을 선택합니다.
    • DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH: DATE_OF_BIRTH는 DATETIME 또는 DATE 형식일 수 있습니다. DATE_FORMAT() 함수는 날짜를 원하는 형식으로 변환하는 함수입니다. 여기서 %Y-%m-%d 형식은 YYYY-MM-DD 형태의 날짜를 출력합니다. 예를 들어, 1992-03-16처럼 날짜만 나오게 됩니다.
  2. FROM MEMBER_PROFILE
    • FROM: 쿼리에서 사용할 테이블을 지정합니다. 여기서는 MEMBER_PROFILE 테이블을 사용합니다.
  3. WHERE MONTH(DATE_OF_BIRTH) = 3
    • WHERE: 조건을 추가하여 데이터를 필터링합니다.
    • MONTH(DATE_OF_BIRTH) = 3: MONTH() 함수는 날짜에서 월 정보를 추출합니다. DATE_OF_BIRTH의 월이 3월인 회원을 선택합니다.
  4. AND TLNO IS NOT NULL
    • AND: 추가 조건을 연결합니다.
    • TLNO IS NOT NULL: 전화번호(TLNO)가 NULL인 회원을 제외합니다. NULL인 경우는 연락처 정보가 없으므로 제외하는 조건입니다.
  5. AND GENDER = 'W'
    • AND GENDER = 'W': 성별이 여성('W')인 회원만 선택합니다. 성별 정보는 GENDER 컬럼에 'M'(남성)과 'W'(여성) 값이 저장됩니다.
  6. ORDER BY MEMBER_ID ASC
    • ORDER BY: 결과를 정렬하는 기준을 지정합니다.
    • MEMBER_ID ASC: MEMBER_ID를 기준으로 오름차순(ASC)으로 정렬합니다. 이렇게 하면 회원 ID가 알파벳 순으로 정렬되어 출력됩니다.

쿼리의 실행 결과:

이 쿼리는 MEMBER_PROFILE 테이블에서 3월에 태어난 여성 회원의 MEMBER_ID, MEMBER_NAME, GENDER, 그리고 DATE_OF_BIRTH를 조회합니다. 전화번호가 없거나 성별이 여성인 회원만 필터링하고, 결과는 MEMBER_ID를 기준으로 오름차순으로 정렬됩니다.

예를 들어, 데이터가 다음과 같다면:

MEMBER_ID MEMBER_NAME GENDER DATE_OF_BIRTH

jiho92@naver.com 이지호 W 1992-02-12
jiyoon22@hotmail.com 김지윤 W 1992-02-22
seoyeons@naver.com 박서연 W 1993-03-16
yoonsy94@gmail.com 윤서연 W 1994-03-19

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

MEMBER_ID MEMBER_NAME GENDER DATE_OF_BIRTH

seoyeons@naver.com 박서연 W 1993-03-16
yoonsy94@gmail.com 윤서연 W 1994-03-19

핵심 포인트:

  • MONTH(DATE_OF_BIRTH)는 DATE 또는 DATETIME 형식에서 월을 추출하는 함수입니다.
  • DATE_FORMAT()은 날짜를 지정된 형식(예: YYYY-MM-DD)으로 변환하는 함수입니다.
  • AND TLNO IS NOT NULL 조건은 전화번호가 있는 회원만 조회합니다.
  • ORDER BY는 결과를 정렬하는 데 사용됩니다.

 

728x90