본문 바로가기

알고리즘풀이/프로그래머스

[SQL-SELECT] 3월에 태어난 여성 회원 목록 출력하기

✅ Solution

SELECT MEMBER_ID, MEMBER_NAME, GENDER, DATE_FORMAT(DATE_OF_BIRTH, '%Y-%m-%d') AS DATE_OF_BIRTH 
FROM member_profile 
WHERE 
	date_of_birth LIKE '%-03%' 
	AND gender = 'W'
	AND tlno IS NOT NULL 
ORDER BY member_id ASC;

 

👉 문제 설명 및 제한 사항

  • MEMBER_PROFILE 테이블
    • MEMBER_ID : 회원 ID
    • MEMBER_NAME : 회원 이름
    • TLNO : 회원 연락처
    • GENDER : 성별
    • DATE_OF_BIRTH : 생년월일
  • 생일이 3월여성 회원의 ID, 이름, 성별, 생년월일을 조회하는 SQL문
    • 전화번호가 NULL인 경우는 출력대상에서 제외
    • 결과는 회원ID를 기준으로 오름차순 정렬
     

테이블 예시
결과 테이블 예시

👉 아이디어

  • 전화번호를 제외한 ID, 이름, 성별, 생년월일만 조회하기 위해 SELECT FROM 문을 사용한다.
    • 이때, 'YYYY-MM-DD' 형식으로 생년월일을 조회하기 위해 DATE_FORMAT(날짜, 형식) AS 문을 사용한다.
  • 주어진 조건에 맞춰 정보를 조회하기 위해 조건들을 WHERE 절로 묶어준다.
    • 3월인 여성 회원의 정보만 조회 : LIKE '%-03%' 과 gender = 'W'
    • 전화번호 NULL 아닌 경우만 조회 : IS NOT NULL
  • 회원 ID 기준으로 오름차순 정렬 : ORDER BY ~ ASC

 기억해야 할 문법

 

✔️ DATE_FORMAT (날짜, 형식)

    : 날짜를 지정한 형식으로 출력

SELECT DATE_FORMAT(NOW(),'%Y %M %d') AS DATE FROM DUAL

👉  2024 March 14

SELECT DATE_FORMAT(NOW(),'%Y년%m월%d일 %H시%i분%S초') AS DATE FROM DUAL

👉 2016년09월22일 17시00분05초

 

✔️ LIKE

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '특정 문자열%';

👉 특정 문자로 시작하는 데이터 검색

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%특정 문자열';

👉 특정 문자로 끝나는 데이터 검색

SELECT 컬럼명 FROM 테이블명 WHERE 컬럼명 LIKE '%특정 문자열%';

👉 특정 문자를 포함하는 데이터 검색

SELECT 컬럼명 FROM 테이블명 WHERE not 컬럼명 LIKE '%특정 문자열%';

👉 특정 문자를 포함하지 않는 데이터 검색

 

✔️ ORDER BY

    : ASC 키워드는 생략해도 기본 ASC 순 으로 정렬해준다❗️

    : 컬럼명 대신 몇 번째 컬럼 인지를 적어도 정렬해준다❗️

SELECT * FROM 테이블명 ORDER BY 컬럼명 ASC;

👉 오름차순 (ABCD, 1234 순)

SELECT * FROM 테이블명 ORDER BY 컬럼명 DESC;

👉 내림차순 (DCBA, 4321 순)

 

 

SELECT * FROM 테이블명 ORDER BY 컬럼명1 ASC, 컬럼명2 DESC;

👉 컬럼명1 순으로 오름차순 정렬 후 그 다음 컬럼명2 순으로 내림차순 정렬

'알고리즘풀이 > 프로그래머스' 카테고리의 다른 글

[Lv2.] 정렬 - H-Index  (0) 2024.03.19
[Lv2.] 정렬 - 가장 큰 수  (0) 2024.03.16
[Lv1.] 완전탐색 - 모의고사  (0) 2024.03.11
[Lv2.] 완전탐색 - 소수 찾기  (0) 2024.03.08
[Lv2.] N개의 최소공배수  (0) 2024.03.05