Algorithm(30)
-
[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 -
[MySQL] SELECT 문 - GROUP BY ~ HAVING 절
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력 결과 풀이 해설 1) NAME IS NOT NULL : 동물의 이름이 NULL 이 아닌 레코드만 출력 2) GROUP BY NAME HAVING COUNT > 1 : 동물의 이름을 기준으로 그룹화, 각각 그룹화된 레코드의 갯수가 1 개 초과인 조건으로 출력 3) ORDER BY NAME (ASC) : 동물의 이름을 기준으로 오름차순 정렬
2020.07.21 -
[MySQL] SELECT문 - 중복 제거하기
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력결과 풀이 해설 COUNT(DISTINCT(NAME)) : 중복을 제외한 동물의 이름의 갯수를 출력(NULL 제외)
2020.07.21 -
[MySQL] SELECT문 - 상위 n개 레코드
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력 결과 풀이 해설 1) ORDER BY DATETIME ASC : 보호 시작일 기준으로 오름차순(보호소에 빨리 들어온 동물이 상위에 위치) 2) LIMIT 1 : 상위부터 첫번째 레코드(1)만 출력
2020.07.21 -
[MySQL] SELECT 문 - 여러기준으로 정렬하기
문제 ANIMAL_INS 테이블 형식 ANIMAL_INS 테이블 데이터 상황 출력 결과 풀이 해설 1) ANIMAL_INS 테이블에서 ANIMAL_ID, NAME, DATETIME 컬럼만 출력 2) ORDER BY NAME ASC, DATETIME DESC : NAME 컬럼을 기준으로 오름차순 정렬된 데이터 중 동일한 이름을 갖고있는 동물이 있다면 보호시작일로 내림차순 정렬
2020.07.21