데이터베이스 공부 겸 MySQL 쿼리문 공부겸 시작해본 SQL 고득점 키트
Level1은 간단하게 작성할 수 있어서 풀어본 문제들을 한꺼번에 올려본다
※공부용으로 정리하였으니 오타나 잘못된 사항이 있다면 알려주세요
1. 모든 레코드 조회하기 - 59034번
SELECT * from ANIMAL_INS
ORDER BY ANIMAL_ID;
모든 필드를 조회하여 SELECT * from 테이블 명을 사용하였고
ANIMAL_ID를 기준으로 조회되어야 하므로 ORDER BY ANIMAL_ID를 사용해주었다
(ORDER BY는 일반적으로 내림차순 조회이다)
2. 역순 정렬하기 - 59035번
SELECT NAME, datetime from ANIMAL_INS
order by ANIMAL_ID desc;
동물의 이름과 보호 시작을일 조회하므로
NAME 컬럼과 DATETIME 컬럼을 SELECT 해준다
역순으로 정렬은 ORDER BY를 사용하되, 뒤에 desc를 덧붙여준다
*영어 단어 ascend descend에서 유래되었다
3. 아픈 동물 찾기 - 59036번
SELECT ANIMAL_ID, NAME from ANIMAL_INS
WHERE INTAKE_CONDITION="Sick" order by ANIMAL_ID
테이블에서 해당하는 조건에 맞는 동물을 찾고, 아이디 순서대로 조회해야 하므로
WHERE절과 ORDER BY를 사용하였다
INTAKE_CONDITION 컬럼의 값이 Normal, Sick, Aged가 있는데
아픈 동물은 INTAKE_CONDITION 컬럼의 값이 Sick 이어야 하고,
결과를 동물 아이디ANIMAL_ID 순서대로 조회해야하므로
ORDER BY ANIMAL_ID를 사용하였다
4. 어린 동물 찾기 - 59037번
SELECT ANIMAL_ID, NAME from ANIMAL_INS
where not INTAKE_CONDITION = "Aged" order by ANIMAL_ID
위와 마찬가지로 어린 동물을 찾아야 하므로 WHERE 조건절을 사용하되, not을 덧붙여서
INTAKE_CONDITION 값이 Aged인 동물을 걸러내준다
마찬가지로 아이디 순으로 조회하므로 ORDER BY를 사용해준다
5. 동물의 아이디와 이름 - 59403번
SELECT ANIMAL_ID,NAME from ANIMAL_INS
order by ANIMAL_ID
위의 내용들과 겹쳐서 생략
6. 여러 기준으로 정렬하기 - 59404번
SELECT ANIMAL_ID, NAME, DATETIME FROM ANIMAL_INS
ORDER BY NAME, DATETIME desc
동물의 이름을 사전순으로 조회하되, 보호 시기가 늦은 동물부터 조회해야하므로
조회하는 조건을 이름에서 보호날짜인 DATETIME을 추가 입력해준다
이름은 사전순이므로 order by 디폴트값을 사용하고,
오름차순이어야 하는 datetime은 desc을 덧붙여준다
7. 상위 n개 레코드 - 59405번
SELECT NAME from ANIMAL_INS
order by DATETIME limit 1
출력 데이터의 개수 제한이 필요하므로 limit를 사용한다
가장 먼저 들어온 동물이 필요하므로
조회한 다음, 하나만 출력해야해서 limit 뒤의 제한 숫자는 1로 입력한다
참고 :
https://programmers.co.kr/learn/courses/30/parts/17042
'문제풀기' 카테고리의 다른 글
[백준/BOJ] 문자열 2675번 문제, 문자열 반복 C++ 풀이 (1) | 2022.10.04 |
---|---|
[ASCII] 아스키코드란, 참고하려고 기록해보는 아스키코드 표 (0) | 2021.12.27 |
[백준/BOJ] 출력 10171/10172번 문제, 개/고양이 C++ 풀이 (0) | 2021.12.13 |
[프로그래머스] 77484 로또의 최고 순위와 최저 순위, C++ 풀이 (0) | 2021.10.03 |
[백준/BOJ] 배열 1919번 문제, 애너그램 만들기 C++ 풀이 (0) | 2021.08.08 |
[백준/BOJ] 배열 1475번 문제, 방 번호 C++ 풀이 (0) | 2021.08.07 |