'5월 6일' 푸른 달 둘째 주 월요일의 기록 [TIL]

가은·2024년 5월 6일
0

I Learned [본 캠프]

목록 보기
23/135
post-thumbnail

📑오늘 학습한 내용

🧩오늘의 알고리즘 : 나머지가 1이 되는 수 찾기 🧩

class Solution {
    public int solution(int n) {
        int answer = 0;
        
        for (int i=2; i < n; i++){
            if(n%i == 1) {
                answer = i;
                break;
            }
         }
         return answer;
    }
}

🧩 오늘의 SQL : 여러 기준으로 정렬하기 🧩

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

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

🧩 오늘의 SQL : 이름에 el이 들어가는 동물 찾기 🧩

문제 : 보호소에 돌아가신 할머니가 기르던 개를 찾는 사람이 찾아왔습니다. 이 사람이 말하길 할머니가 기르던 개는 이름에 'el'이 들어간다고 합니다. 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요. 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.

-- 1차 시도 (틀림)
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%'
ORDER BY NAME ASC

동물의 타입을 지정해주지 않아 이름에 el이 들어가는 모든 동물의 이름과 ID을 조회했기 때문에 틀렸다.

-- 정답
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'DOG'
ORDER BY NAME ASC

🧩 오늘의 SQL : 나이 정보가 없는 회원 수 구하기 🧩

문제 : USER_INFO 테이블에서 나이 정보가 없는 회원이 몇 명인지 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 USERS로 지정해주세요.

SELECT COUNT(*) AS USERS
FROM USER_INFO
WHERE AGE IS NULL

다른 풀이

SELECT SUM(AGE IS NULL) AS USER FROM USER_INFO

이런 방식으로 위의 문제를 풀 수도 있다고 함.

🧩 오늘의 SQL : 가장 비싼 상품 구하기 🧩

문제 : PRODUCT 테이블에서 판매 중인 상품 중 가장 높은 판매가를 출력하는 SQL문을 작성해주세요. 이때 컬럼명은 MAX_PRICE로 지정해주세요.

SELECT MAX(PRICE) AS MAX_PRICE
FROM PRODUCT

🗝️ 여기서 잠깐! "MAX, MIN 함수"

MAX(컬럼명) - 최대값 구하기
MIN(컬럼명) - 최소값 구하기

🧩 오늘의 SQL : NULL 처리하기 🧩

문제 : 입양 게시판에 동물 정보를 게시하려 합니다. 동물의 생물 종, 이름, 성별 및 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 프로그래밍을 모르는 사람들은 NULL이라는 기호를 모르기 때문에, 이름이 없는 동물의 이름은 "No name"으로 표시해 주세요.

SELECT ANIMAL_TYPE, IFNULL(NAME, 'NO NAME') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

IFNULL(NAME, 'NO NAME')으로 아무 생각 없이 작성했다가 계속 틀렸다,, 대체 왜 틀렸지, 하면서 계속 보면서 다른 부분만 고치는데 시간을 썼다.

SELECT ANIMAL_TYPE, IFNULL(NAME, 'No name') AS NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID

🗝️ 여기서 잠깐! "IFNULL"

IFNULL(컬럼명, 'NULL일 경우 대체할 값')

🎐대체 공휴일, 월요일

오늘은 조금 쉬어가는 날! 따로 강의를 듣거나 시간을 내서 공부를 하지는 않았고 (조금은) 가볍게 자바 문제와 SQL 문제만 풀었다. SQL 진도를 따라 잡아서 내일부터는 제 날짜에 맞는 문제를 풀 수 있게 되었다!😆

0개의 댓글