[SQL] 프로그래머스 SELECT 문제

4133 단어 sqlselectselect

ANIMAL_INS 테이블

1. 순서대로 전체 조회

SELECT * FROM ANIMAL_INS;
SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID;

2. NAME, DATETIME을 ANIMAL_ID 역순으로 조회

  • DESC : 내림차순
  • ASC : 오름차순 (default 적용)
SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC;

3. 동물 중 아픈 동물 아이디와 이름을 아이디 순으로 조회

  • WHERE로 조건 명시
  • 문자열 비교는 LIKE 키워드 사용
  • %: 모든 문자
  • _: 하나의 문자
    • A%: A로 시작하는 모든 문자
    • A_: A로 시작하는 두 글자
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION LIKE "Sick" ORDER BY ANIMAL_ID

4. 젊은 동물의 아이디와 이름을 아이디 순으로 조회

  • 젊은 동물은 INTAKE_CONDITION이 Aged가 아닌 상태이다.
  • 조건이 "~이 아니다"는 NOT 을 붙인다.
  • ANIMAL_ID가 PK이므로 ORDER BY ANIMAL_ID ASC는 생략 가능하다.
SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION NOT LIKE "Aged" ORDER BY ANIMAL_ID ASC;

5. 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS;

6. 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회, 단 이름이 같으면 보호를 나중에 시작한 동물 먼저 조회

  • 정렬 다중 조건은 정렬할 기준이 되는 필드명을 나열하면 된다.
  • 이름이 먼저 기준이 되고, 이름이 같을 때 보호시작일이 기준(내림차순)이므로 다음과 같다.
    • ORDER BY NAME ASC, DATETIME DESC;
    • ASC(오름차순)은 생략가능
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS ORDER BY NAME ASC, DATETIME DESC;

7. 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회

  • 상위 N개는 LIMIT 키워드를 사용한다.
SELECT NAME FROM ANIMAL_INS ORDER BY DATETIME LIMIT 1;

좋은 웹페이지 즐겨찾기