TIL / 프로그래머스 MySQL 문제풀기
Today 공부
- MySQL 프로래머스 문제 풀기 (Level1)
SELECT 실행 순서
- | 작성순서 | 실행순서 | 실행해석 |
---|---|---|---|
1 | SELECT | FROM | 어느 테이블 대상으로 접근 할 것인가 |
2 | FROM | WHERE | 해당 테이블에서 조건에 만족하는 레코드(row) 조회 |
3 | WHERE | GROUP BY | 레코드(row)들을 기준으로 그룹화, 그룹은 하나의 row |
4 | GROUP BY | HAVING | 생성된 그룹 중 특정조건 필터 |
5 | HAVING | SELECT | 필터된 결과에 맞는 필드조회 |
6 | ORDER BY | ORDER BY | 필드를 기준으로 지정된 방식으로 정렬 |
7 | LIMIT | LIMIT | 입력된 개수 위에서부터 출력 |
1. 모든 레코드 조회하기
SELECT * from ANIMAL_INS
기본 테이블 구조
- ANIMAL_ID : 각 동물의 아이디
- ANIMAL_TYPE : 생물 종
- DATETIME : 보호 시작 일
- INTAKE_CONDITION : 보호 시작 시 상태
- NAME : 이름
- SEX_UPON_INTAKE : 성별 및 중성화 여부
2. 역순 정렬하기
SELECT NAME,DATETIME //출력 할 레코드
FROM ANIMAL_INS // 조회 할 테이블
ORDER BY ANIMAL_ID DESC // 정렬 지정 DESC : 역순
3. 아픈 동물 찾기
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION = 'Sick' // 조건주기
ORDER BY ANIMAL_ID
4.어린 동물 찾기
- 동물 보호소에 들어온 동물 중 젊은 동물1의 아이디와 이름을 조회하는 SQL 문을 작성해주세요. 이때 결과는 아이디 순으로 조회해주세요.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE INTAKE_CONDITION <> 'Aged' // 조건주기
// 기존 테이블을 확인하면서 어떤 조건을 줘야하는지 확인해야 했다
5. 동물의 아이디와 이름
- 동물 보호소에 들어온 모든 동물의 아이디와 이름을 ANIMAL_ID순으로 조회하는 SQL문을 작성해주세요. SQL을 실행하면 다음과 같이 출력되어야 합니다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
6. 여러 기준으로 정렬하기
- 동물 보호소에 들어온 모든 동물의 아이디와 이름, 보호 시작일을 이름 순으로 조회하는 SQL문을 작성해주세요. 단, 이름이 같은 동물 중에서는 보호를 나중에 시작한 동물을 먼저 보여줘야 합니다.
1. 이름을 사전 순으로 정렬하면 다음과 같으며, 'Jewel', 'Raven', 'Sugar'
2. 'Raven'이라는 이름을 가진 개와 고양이가 있으므로, 이 중에서는 보호를 나중에 시작한 개를 먼저 조회합니다.
SELECT ANIMAL_ID, NAME, DATETIME
FROM ANIMAL_INS
ORDER BY NAME ASC, DATETIME DESC // 두가지 기준으로 정렬
7. 상위 n개 레코드
- 동물 보호소에 가장 먼저 들어온 동물의 이름을 조회하는 SQL 문을 작성해주세요.
SELECT NAME
FROM ANIMAL_INS
ORDER BY DATETIME // 들어온 날짜로 정렬
LIMIT 1 // 상위 n개 레코드 조회 구문
8. 이름이 없는 동물의 아이디
- 동물 보호소에 들어온 동물 중, 이름이 없는 채로 들어온 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NULL // 공백 외에도 NULL로 채워져 있는 값도 IS NULL로 찾아야 한다
ORDER BY ANIMAL_ID
9. 이름이 있는 동물의 아이디
- 동물 보호소에 들어온 동물 중, 이름이 있는 동물의 ID를 조회하는 SQL 문을 작성해주세요. 단, ID는 오름차순 정렬되어야 합니다.
SELECT ANIMAL_ID
FROM ANIMAL_INS
WHERE NAME IS NOT NULL // NOT NULL 사용
ORDER BY ANIMAL_ID
10. 최댓값 구하기
- 가장 최근에 들어온 동물은 언제 들어왔는지 조회하는 SQL 문을 작성해주세요.
SELECT MAX(DATETIME) // 집계함수 MAX를 사용해서 최대 값 구하기
FROM ANIMAL_INS
마치며,
이전에 배웠던 MySQL 복습으로 프로그래머스의 1단계 문제들을 풀어보았다.
배웠던 내용이여도 다시 확인하지 않으니 헷갈리는 부분도 있었지만 검색해가며 다시 내용을 익히게 되어 금방 풀 수 있었다.
잊지 않도록 다른 Level의 문제도 틈틈히 풀어봐야겠다
Author And Source
이 문제에 관하여(TIL / 프로그래머스 MySQL 문제풀기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@sssssssssy/-저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)