Algorithm/MySQL(10)
-
[MySQL] SELECT 문 - DATE_FORMAT
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력 결과 풀이 해설 보호시작일(DATETIME) 컬럼의 데이터 형식을 시간을 제외한 '2020-07-21' 와 같은 형식으로 변환하여 조회한다.
2020.07.21 -
[MySQL] SELECT 문 - 두 날짜 데이터 비교(TIMESTAMPDIFF)
문제 ANIMAL_INS 테이블 형식 ANIMAL_OUTS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 ANIMAL_OUTS 테이블 데이터 상황 출력 결과 풀이 해설 TIMESTAMPDIFF(before date, after date) 를 사용하여 ANIMAL_OUTS 테이블의 입양일 데이터와 ANIMAL_INS 테이블의 보호시작일 데이터를 초단위로 비교한 값을 기준으로 내림차순(보호 기간이 긴 순)정렬하여 상위 2 개 레코드만 조회
2020.07.21 -
[MySQL] SELECT 문 - CASE문/정규화
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력 결과 풀이 해설 중성화 여부 컬럼(SEX_UPON_INTAKE)의 데이터에 Neutered 또는 Spayed 라는 단어가 들어가 있을경우 'O' 그렇지 않을경우 'X'로 변환하여 조회한다.
2020.07.21 -
[MySQL] SELECT 문 - LEFT JOIN
문제 ANIMAL_INS 테이블 형식 ANIMAL_OUTS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 ANIMAL_OUTS 테이블 데이터 상황 출력 결과 풀이 해설 ANIMAL_OUTS 테이블에는 존재하지않고, ANIMAL_INS 테이블에 존재하는 레코드를 찾기 위해 LEFT JOIN 한다. 두 테이블에서 공통적으로 존재하는 레코드를 제외하고 조회한다. (이해를 돕기 위해 아래 그림 참조)
2020.07.21 -
[MySQL] SELECT 문 - RIGHT JOIN
문제 ANIMAL_INS 테이블 형식 ANIMAL_OUTS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 ANIMAL_OUTS 테이블 데이터 상황 출력 결과 풀이 해설 ANIMAL_OUTS 테이블 기준 1) Allie의 ID는 ANIMAL_INS에 없으므로, Allie의 데이터는 유실되었습니다. 2) Gia의 ID는 ANIMAL_INS에 있으므로, Gia의 데이터는 유실되지 않았습니다. 3) Spice의 ID는 ANIMAL_INS에 없으므로, Spice의 데이터는 유실되었습니다. ANIMAL_INS 테이블에는 존재하지않고, ANIMAL_OUTS 테이블에 존재하는 레코드를 찾기 위해 RIGHT JOIN 한다. 두 테이블에서 공통적으로 존재하는 레코드를 제외하고 조회한다. (이해를 돕기 위해 아래 그림..
2020.07.21 -
[MySQL] SELECT문 - WITH 재귀(RECURSIVE)쿼리 계층구조
문제 ANIMAL_OUTS 테이블 형식 출력 결과 풀이 해설 1) WITH RECURSIVE (WITH 재귀쿼리 계층구조) : H 컬럼에 0 부터 23까지의 레코드 값을 갖는 가상 테이블 생성 2) IFNULL(value, 0) : value가 NULL 일 경우 0을 반환 3) HOUR(date) : date의 시간값만 반환
2020.07.21