본문 바로가기
Develop/SQL

[프로그래머스] SQL 고득점 키트 (MySQL) - String, Date

by 루시킴 2021. 9. 15.

 

https://programmers.co.kr/learn/courses/30/lessons/59046

 

코딩테스트 연습 - 루시와 엘라 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS
WHERE NAME IN ('Lucy','Ella','Pickle','Rogan','Sabrina','Mitty')
ORDER BY ANIMAL_ID;

특정 문자열들이 들어간 경우를 찾을 땐 IN ('문자열1','문자열2',....) 를 사용하자

반대로 안들어간 경우일땐 NOT IN을 하면 된다.

 

https://programmers.co.kr/learn/courses/30/lessons/59047

 

코딩테스트 연습 - 이름에 el이 들어가는 동물 찾기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT ANIMAL_ID, NAME 
FROM ANIMAL_INS
WHERE NAME LIKE "%EL%" AND ANIMAL_TYPE="Dog"
ORDER BY NAME;

https://programmers.co.kr/learn/courses/30/lessons/59409

 

코딩테스트 연습 - 중성화 여부 파악하기

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT ANIMAL_ID, NAME, 
IF(SEX_UPON_INTAKE LIKE "INTACT%",'X','O') "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

IF문 활용하기

SEX_UPON_INTAKE의 값이 INTACT로 시작하면 X, 아니면 O로 나타내고 애트리뷰트 이름을 중성화로 출력하라는 의미이다.

SELECT ANIMAL_ID, NAME, 
CASE
    WHEN SEX_UPON_INTAKE LIKE "INTACT%"
        THEN 'X'
    ELSE 
        'O'
END AS "중성화"
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

CASE문 활용하기

위와 똑같은 의미로 CASE ~ WHEN THEN ~ ELSE ~ END로 구성된다.

 

https://programmers.co.kr/learn/courses/30/lessons/59411

 

코딩테스트 연습 - 오랜 기간 보호한 동물(2)

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT INS.ANIMAL_ID, INS.NAME
FROM ANIMAL_INS INS
INNER JOIN ANIMAL_OUTS OUTS
ON INS.ANIMAL_ID=OUTS.ANIMAL_ID
ORDER BY OUTS.DATETIME-INS.DATETIME DESC
LIMIT 2;

https://programmers.co.kr/learn/courses/30/lessons/59414

 

코딩테스트 연습 - DATETIME에서 DATE로 형 변환

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디

programmers.co.kr

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

기존 2018-01-22 14:32:00 과 같은 포맷을 2018-01-22로 바꾸기 위해 DATE_FORMAT() 함수를 사용해주었다. 원하는 형식에 따라 %Y-%m-%d식으로 써주면 된다. %M-%D로 쓰게되면 January-22nd와 같이 영어로 나온다.

댓글