[MySQL] 프로그래머스 SELECT

nayoon·2021년 8월 4일
0

📙 SELECT 문제 공통 지문

ANIMAL_INS 테이블은 동물 보호소에 들어온 동물의 정보를 담은 테이블입니다. ANIMAL_INS 테이블 구조는 다음과 같으며, ANIMAL_ID, ANIMAL_TYPE, DATETIME, INTAKE_CONDITION, NAME, SEX_UPON_INTAKE는 각각 동물의 아이디, 생물 종, 보호 시작일, 보호 시작 시 상태, 이름, 성별 및 중성화 여부를 나타냅니다.

📌 모든 레코드 정렬하기
📌 역순 정렬하기
📌 여러 기준으로 정렬하기
📌 아픈 동물 찾기
📌 어린 동물 찾기
📌 상위 n개 레코드

검색

⭐ 조건 검색 Where

조건을 만족하는 데이터만 검색하기 위한 키워드

비교 연산자

비교 연산자를 이용해서 숫자뿐만 아니라 문자나 날짜 값을 비교할 수 있다.

논리 연산자

논리 연산자는 조건을 여러 개 결합하거나 조건을 만족하지 않는 데이터를 검색하고자 할 때 이용한다.

📙 조건 검색 문제

📝 아픈 동물 찾기

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

INTAKE_CONDITION이 'Sick'인 Animal을 출력해야 하기 때문에 비교 연산자 '='을 사용한다.

📝 어린 동물 찾기

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

INTAKE_CONDITION이 'Aged'가 아닌 Animal을 출력해야 하므로 비교 연산자 '<>' or '!='을 사용한다.


⭐ 정렬 검색 ORDER BY

결과 테이블의 내용을 사용자가 원하는 순서로 출력하기 위한 키워드

오름차순 정렬이면 ASC, 내림차순 정렬이면 DESC

특별히 지정하지 않으면 오름차순으로 기본 정렬한다.

📙 정렬 검색 문제

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

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

💡 역순으로 ANIMAL_ID를 출력하기 위해 내림차순 정렬을 사용한다!

📝 여러 기준으로 정렬하기
동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.

💡 여러 기준으로 정렬하고 싶다면 우선이 되는 정렬 기준부터 작성한다

위 문제의 경우에는 이름을 기준으로 먼저 정렬하고 동일한 이름의 경우 보호일을 기준으로 내림차순 정렬을 하고자 했다.

따라서 ORDER BY 키워드 뒤에 NAME을 먼저 쓰고 DATETIME DESC를 쓴다.


⭐ 제한 검색 limit

결과 레코드의 개수를 제한하는 키워드

📙 제한 검색 문제

📝 상위 n개 레코드
동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

가장 먼저 들어온 동물의 이름을 찾아야 하기 때문에 ORDER BY로 정렬한 후 첫번째 레코드를 찾는다.


profile
뚜벅뚜벅 열심히 공부하는 개발자

0개의 댓글