호기심 많은 분석가

[MySQL] 프로그래머스 Coding_Test / SELECT (1) 본문

Coding/Coding Test & Algorithm

[MySQL] 프로그래머스 Coding_Test / SELECT (1)

DA Hun 2021. 5. 6. 15:25

포스팅 개요

 SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. SELECT 파트의 문제들 중 앞 파트를 기록해두었습니다.


포스팅 본문

 아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.

TABLE 설명

SELECT TABLE


1. 모든 레코드 조회하기

 동물 보호소에 들어온 모든 동물의 정보를 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

모든 레코드 조회하기

SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_INS.ANIMAL_ID;

 모든 레코드를 불러오기 위해 * 를 사용했고, ANIMAL_ID로 정렬해주기 위해 ORDER BY를 사용함


2. 역순 정렬하기

 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.

역순 정렬하기

SELECT AI.NAME, AI.DATETIME FROM ANIMAL_INS AS AI
ORDER BY AI.ANIMAL_ID DESC;

 편의성을 위해 ANIMAL_INS 테이블에 AI라는 alias 부여하여, NAME, DATETIME column 불러오고, ANIMAL_ID를 역순으로 부르기 위해 ORDER BY DESC 문법을 사용함.


3. 아픈 동물 찾기

 동물 보호소에 들어온 동물 중 아픈 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.

아픈 동물 찾기

SELECT AI.ANIMAL_ID ,AI.NAME FROM ANIMAL_INS AS AI 
WHERE AI.INTAKE_CONDITION = 'Sick' ORDER BY AI.ANIMAL_ID;

 앞에 작업들에 WHERE 구문으로 조건문만 추가하면 쉽게 해결할 수 있었다. SQL 문은 Python과 다르게 '같다'를 '=' 한 개로 표현한다. 하나씩 천천히 복습해가는 기분이다.


4. 어린 동물 찾기

동물 보호소에 들어온 동물 중 젊은 동물의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
(P.S  젊은 동물이란 INTAKE_CONDITION이 Aged가 아닌 경우를 뜻함)

어린 동물 찾기

SELECT AI.ANIMAL_ID, AI.NAME FROM ANIMAL_INS AS AI
WHERE AI.INTAKE_CONDITION != 'Aged' ORDER BY AI.ANIMAL_ID

 3번 문제와 거의 동일했는데, 조건을 만족시키지 못할 때의 문법을 보고자 한 듯하다. 같지 않을 때의 조건문은 WHERE에 !=를 사용하자.


  SQLD 취득할 때 이론으로 배웠던 것을 천천히 적용해볼 수 있어서 좋았습니다. 뒷 파트 문제는 SELECT(2) 포스팅에서 다뤄보겠습니다. :)