[MYSQL] 프로그래머스 String, Date

JEEWOO SUL·2021년 9월 2일
1

💻 알고리즘

목록 보기
17/35
post-thumbnail

데이터 타입 (자료형)

실수, 정수, 소수 자료형 등의 여러 종류의 데이터를 식별하는 타입으로써, 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행할 수 있는 명령어, 데이터의 형태, 의미, 크기와 해당 자료형의 값이 저장되는 방식이다.

MySQL 데이터 타입

문자형 데이터 타입

날짜형 데이터 타입

숫자형 데이터 타입

🎯 문제

사진을 클릭하면 프로그래머스 JOIN 문제로 이동합니다.

루시와 엘라 찾기


⭐ WHERE 절의 조합 IN
조건의 범위를 지정하는데 사용된다. 값음 콤마(,)로 구분하여 괄호 내에 묶으며, 이 값 중에서 하나 이상과 일치하면 조건에 맞는 것으로 평가된다

select animal_id, name, sex_upon_intake
from animal_ins
where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
order by animal_id;

이름에 el이 들어가는 동물 찾기


⭐ 이때, 'EL'이 들어가는 개(Dog)의 아이디와 이름을 조회해야 한다. 모든 동물이 아니다!

SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%el%' and ANIMAL_TYPE = 'DOG'
ORDER BY NAME;

중성화 여부 파악하기


⭐ CASE WHEN ~ THEN ~ ELSE END

CASE 컬럼명 
	WHEN 조건식1 THEN 결과1
	WHEN 조건식2 THEN 결과2
    ELSE 결과3
END AS 바꿔줄 컬럼명
  • 조건에 따라 값을 지정하고 싶을 때 CASE문을 사용함
  • 조건문과 조건문 사이에 콤마(,)를 사용 X
  • 결과 부분은 NULL 사용 X
SELECT ANIMAL_ID, NAME, 
    CASE 
        WHEN SEX_UPON_INTAKE LIKE 'Intact%' THEN 'X' ELSE 'O' 
    END AS '중성화' 
FROM ANIMAL_INS;

오랜기간 보호한 동물(2)

SELECT b.ANIMAL_ID, b.NAME
FROM ANIMAL_INS a
RIGHT JOIN ANIMAL_OUTS b ON a.ANIMAL_ID=b.ANIMAL_ID
ORDER BY (b.DATETIME - a.DATETIME) DESC
LIMIT 2;

DATETIME에서 DATE로 형 변환


⭐ DATETIME 가공하기
1. 날짜 데이터에서 일부만을 추출하기

SELECT HOUR(컬럼명) AS HOUR FROM 테이블명;
함수내용
YEAR연도
MONTH
DAY일 (=DAYOFMONTH)
HOUR
MINUTE
SECOND

2. 원하는 포맷으로 바꾸기 DATE_FORMAT

SELECT DATE_FORMAT(컬럼명, '%Y-%m-%d') FROM 테이블명;
포맷명내용
%Y연도, 숫자 (4자리)
%y연도, 숫자 (2자리)
%M월, 이름 (January ~ December)
%m월, 숫자 (00 ~ 12)
%D영어 날 (0th, 1st, 2nd ...)
%d일 (00 ~ 31)
%H시 (00 ~ 23)
%h시 (01 ~ 12)
%i분 (00 ~ 59)
%s초 (00 ~ 59)
%a요일 이름 (Sun ~ Sat)
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, '%Y-%m-%d') AS '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

profile
느리지만 확실하게 🐢

0개의 댓글