Algorithm

[프로그래머스 SQL 고득점 Kit] 1. SELECT

모든 레코드 조회하기

모든 레코드 조회하기

문제

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

NAME TYPE NULLABLE
ANIMAL_ID VARCHAR(N) FALSE
ANIMAL_TYPE VARCHAR(N) FALSE
DATETIME DATETIME FALSE
INTAKE_CONDITION VARCHAR(N) FALSE
NAME VARCHAR(N) TRUE
SEX_UPON_INTAKE VARCHAR(N) FALSE

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

정답

SELECT * from ANIMAL_INS ORDER BY ANIMAL_ID

역순 정렬하기

역순 정렬하기

문제

위 문제와 동일한 조건에서 동물 보호소에 들어온 모든 동물의 이름과 보호 시작일을 조회하는 SQL문을 작성해주세요. 이때 결과는 ANIMAL_ID 역순으로 보여주세요.가 문제이다.

정답

SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;

아픈 동물 찾기

아픈 동물 찾기

문제

위와 동일한 조건에서 동물 보호소에 들어온 동물 중 아픈 동물(INTAKE_CONDITION == SICK)의 아이디와 이름을 조회하시오. 결과는 아이디 순으로 조회하시오.

정답

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

실제 다른 언어로 코드를 짤 때와 헷갈리지 말자. 따옴표는 '" 상관없이 사용할 수 있다. 같다는 것은 ==가 아닌 =로 사용해야한다.


어린 동물 찾기

어린 동물 찾기

문제

위와 동일한 조건에서 들어온 동물 중 젊은 동물의 아이디와 이름을 조회하는 sql 문을 작성하고, 결과는 아이디 순으로 조회하세요.

정답

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

동물의 아이디와 이름

동물의 아이디와 이름

문제

위와 동일한 조건에서 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID 순으로 조회하는 SQL 문을 작성하세요.

정답

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS ORDER BY ANIMAL_ID;

여러 기준으로 정렬하기

여러 기준으로 정렬하기

문제

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

정답

SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC;

상위 n개 레코드

상위 n개 레코드

문제

위와 동일한 조건에서 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.

정답

SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;