[MySQL] 프로그래머스 문제 연습 3

Lake·2024년 4월 22일
0

SQL 문제

목록 보기
6/36
post-thumbnail

여러 기준으로 정리하기 (SELECT)

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

제출한 코드 :

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

이름에 el이 들어가는 동물 찾기 (STRING, DATE)

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

제출한 코드 :

SELECT ANIMAL_ID
       , NAME
FROM ANIMAL_INS
WHERE ANIMAL_TYPE = "DOG"
      AND NAME LIKE '%el%'
ORDER BY NAME;

'이름에 el이 들어간다'는 말에 꽂혀서 사고회로 오작동함.
포함? IN 쓰면 되겠구나! -> LIKE들어갈 자리에 냅다 IN 집어넣기
결론 : 틀림

  • IN 연산자는 주어진 값 목록 중 하나와 일치하는지 확인할 때 사용된다.
    -> LIKE가 포함의 개념
  • 컬럼 이름 안에서 와일드카드 문자(%)를 사용하는 것은 SQL의 문법에 맞지 않아서 에러가 발생한다.

나이 정보가 없는 회원 수 구하기 (IS NULL)

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

제출한 코드 :

SELECT COUNT(USER_ID) AS "USERS"
FROM USER_INFO
WHERE AGE IS NULL;

가장 비싼 상품 구하기 (SUM, MAX, MIN)

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

제출한 코드 :

SELECT MAX(PRICE) AS "MAX_PRICE"
FROM PRODUCT;

NULL 처리하기 (IS NULL)

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

제출한 코드 :

SELECT ANIMAL_TYPE
       , CASE WHEN NAME IS NULL THEN "No name"
              ELSE NAME
         END AS "NAME"
       , SEX_UPON_INTAKE
FROM ANIMAL_INS
ORDER BY ANIMAL_ID;

오늘의 TMI

할일이 산더미다... 왜 자꾸 늘어나는거지?

0개의 댓글