호기심 많은 분석가
[MySQL] 프로그래머스 Coding_Test / SELECT (1) 본문
포스팅 개요
SQL 문법과 익숙해지고자 프로그래머스의 SQL Coding Test 문제들을 풀어봄. SELECT 파트의 문제들 중 앞 파트를 기록해두었습니다.
포스팅 본문
아래의 문제들은 모두 동일한 TABLE을 기준으로 문제가 주어졌습니다.
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) 포스팅에서 다뤄보겠습니다. :)
'Coding > Coding Test & Algorithm' 카테고리의 다른 글
[MySQL] 프로그래머스 Coding_Test / SUM, MAX, MIN (0) | 2021.05.06 |
---|---|
[MySQL] 프로그래머스 Coding_Test / SELECT (2) (0) | 2021.05.06 |
[SQL] SQL과 친숙해지기 (1) (0) | 2021.05.05 |
[SQL] DB(데이터베이스)의 data를 csv로 추출하는 법 (0) | 2021.05.04 |
[이것이 취업을 위한 코딩 테스트다 with 파이썬] (한빛미디어, 나동빈) Chapter5(3). DFS/BFS (0) | 2021.04.28 |