코딩테스트 sql 기출 - kodingteseuteu sql gichul

프로그래머스 SQL 코딩 테스트 select 문제 풀이

코딩테스트 sql 기출 - kodingteseuteu sql gichul
프로그래머스

SQL 연습하신다고 프로그래머스 SQL 풀어보시는 분들이 많이 계시네요.
오늘부터 하나씩 풀이를  써볼까 합니다.
자자, 그럼 레고레고~!!!

select 모든 레코드 조회하기

첫번째는 모든레코드를 조회하는 문제네요.

코딩테스트 sql 기출 - kodingteseuteu sql gichul
모든 레코드 조회

우선 테이블명은 ANIMAL_INS 입니다. 동물 보호소에 들어온 동물의 정보를 담은 테이블 이구요.
문제 설명 바로아래 나오는곳 보면 컬럼 목록이 있죠.
옆에 type은 해당 컬럼의 데이터 타입 입니다. 여기서는 varchar 와 datetime만 사용을 하였네요.
nullable 부분은 해당 컬럼에 값이 없음을 뜻하는 NULL 데이터가 들어갈수 있는지 여부를 말하는겁니다. NAME 이라는 컬럼만 NULL이 들어갈 수 있습니다. 나머지 컬럼에는 NULL이 들어가면 안된다는거죠.
그리고, 아래에 문제가 다음과 같이 나오네요.

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

모든 정보를 출력하라고 하니, SELECT절에 * 가 들어가면 될것 같구요.
ANIMAL_ID 순으로 조회하라고 하니 ORDER BY 를 쓰면 되겠죠.

정답은 다음과 같습니다.

SELECT * 
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

이거 말고, 이렇게도 해보니 정답으로 처리가 됩니다.

SELECT * 
FROM ANIMAL_INS
ORDER BY 1;

ORDER BY에 들어가는 숫자는 SELECT절에서 나오는 컬럼의 순서를 의미 합니다. ANIMAL_ID가 ANIMAL_INS 테이블의 첫번째 컬럼이니 제일 먼저 출력이 되겠죠. 그래서 1을 써주는 거죠.

관련해서 더 공부를 하고 싶으신 분은 아래 링크를 이용하세요.

2020.03.19 - [Database/sql 강의] - sql 독학 강의 # select를 잘 이용하는 방법(1), 2편 -sTricky

sql 독학 강의 # select를 잘 이용하는 방법(1), 2편 -sTricky

sql 독학 강의 # select를 잘 이용하는 방법(1), 2편 컨텐츠 index 1. SQL select 문장을 사용하기 위한 용어 정리 2.DESC 사용하기 3. 원하는 데이터만 select 하기 4. 표현식 (Expression) 사용하기 5...

stricky.tistory.com

코딩테스트 sql 기출 - kodingteseuteu sql gichul

select 역순으로 정렬하기

다음 문제는 역순으로 정렬 하기네요.
간단합니다.

코딩테스트 sql 기출 - kodingteseuteu sql gichul
역순으로 정렬하기

아까 첫번째 문제와 똑같은 테이블인 ANIMAL_INS 테이블을 이용합니다.
그리고 이번에는 모든 컬럼을 출력하는것이 아니라, NAME, DATETIME만 출력을 하라그러네요.
또, ANIMAL_ID의 역순으로 정렬 해야 합니다.
그러기 위해서는 ORDER BY 절에 역순(내림차순)을 의미하는 DESC를 붙여주면 되겠죠.

간단한거닌깐 바로 정답을 확인 해볼께요.

SELECT NAME, DATETIME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID DESC;

위와 같이 표현 할 수 있습니다.
여기서는 첫번째 문제처럼 ORDER BY 절에 1을 써서 ORDER BY 1 DESC 라고 표현 할 수 있을까요?

정답은???? 땡! 안됩니다.
여기선 SELECT 절에 ANIMAL_ID가 나오지 않고 있기 때문이죠. 여기서 1DESC라고 하면 ORDER BY NAME DESC와 같은 의미가 되게 됩니다. 꼭 기억하세요.

select 아픈 동물 찾기

세번째 문제를 보겠습니다.
이번에도 똑같은 ANIMAL_INS 테이블을 이용하구요.

코딩테스트 sql 기출 - kodingteseuteu sql gichul
아픈 동물 찾기

아래 결과 예시는 보면 ANIMAL_ID와 NAME이 출력 되는 것을 확인 할 수 있습니다.
그럼 이젠 아프다는것을 알아봐야 겠죠.
아픈지 안아픈지를 알기 위해서는 해당 동물의보호 시작시 상태를 알아 보면 됩니다.
바로 <예시>를 보면 INTAKE__CONDITION 이라는 컬럼이 있죠? 해당 컬럼의 값을 보면 Normal, Sick, Aged, Sick 이라고 값이 들어가 있습니다. Sick이라는 상태가 당연히 아픈 상태를 이야기 하는것이겠죠. 
그리고 문제를 잘 읽어보면 아이디 순으로 조회를 하라고 되어 있습니다.

그럼, 결론은 INTAKE_CONDITION이 Sick인 동물을 WHERE 절을 이용해서 찾고, SELECT 절에서는 ANIMAL_ID, NAME이 출력 되도록 하고, ORDER BY 절에서 ANIMAL_ID 순으로 정렬 되도록 SQL을 작성 해보면 되겠습니다.

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

위와같이 SQL을 입력 하시면 되겠습니다.
아직 까지 정말 간단하죠?

다음 문제는 다음편에서 계속 이어가도록 하겠습니다.

#다음편 보러가기#

https://stricky.tistory.com/507

프로그래머스 SQL 코딩테스트 select 문제 풀이 #2

프로그래머스 SQL 코딩테스트 select 문제 풀이 #2 지난 1편에 이어서, 이번에도 프로그래머스 SQL 문제를 몇문제 풀어보도록 하겠습니다. 2021.09.09 - [Database/프로그래머스SQL] - 프로그래머스 SQL 코딩

stricky.tistory.com

코딩테스트 sql 기출 - kodingteseuteu sql gichul

#SQL을 좀 더 깊게 공부 하고 싶으시면 제가 쓴 mysql 입문서도 참고 해보시길 바랍니다.
현재 크몽에서 판매를 하고 있습니다.#

https://kmong.com/gig/312750

독학으로 예제 따라 익히는 mysql sql 입문서를 드립니다. | 17000원부터 시작 가능한 총 평점 5점의

19개 총 작업 개수 완료한 총 평점 5점인 database전문가의 취업·투잡, 전자책·노하우, 직무 스킬업 서비스를 7개의 리뷰와 함께 확인해 보세요. 취업·투잡, 전자책·노하우, 직무 스킬업 제공 등 17

kmong.com

코딩테스트 sql 기출 - kodingteseuteu sql gichul

자, 오늘 세 문제를 풀어봤습니다. 다음 시간에 이어서 계속 진행 해볼께요.
감사합니다.

by.sTricky