https://programmers.co.kr/learn/courses/30/parts/17047
-- 동물 보호소에 들어온 동물 중 이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와
-- 이름, 성별 및 중성화 여부를 조회하는 SQL 문을 작성해주세요.
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME IN ("Lucy", "Ella", "Pickle", "Rogan", "Sabrina", "Mitty")
쿼리문 WHERE절에 주로 사용되며
부분적으로 일치하는 칼럼을 찾을때 사용됩니다.
SELECT * FROM [테이블명] WHERE LIKE [조건]
_
: 글자숫자를 정해줌(EX 컬럼명 LIKE '홍_동')
%
: 글자숫자를 정해주지않음(EX 컬럼명 LIKE '홍%')
-- 동물 보호소에 들어온 동물 이름 중, 이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
-- 이때 결과는 이름 순으로 조회해주세요. 단, 이름의 대소문자는 구분하지 않습니다.
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE = 'Dog'
ORDER BY NAME
가장 많이 쓰이는 조건문입니다.
조건에 따라 값을 지정해 주는 역할을 합니다.
--테이블(MY_TABLE)에서 성별(GENDER)이 001이면 여, 그게아니면 남자로 검색--
SELECT DISTINCT
GENDER,
CASE WHEN GENDER = '001' THEN '여' ELSE '남' END AS 성별
FROM MY_TABLE
다중 CASE WHEN
--테이블(MY_TABLE)에서 성적(SCORE)별 학점을 계산 SELECT *, (CASE WHEN SCORE>= '90' THEN 'A학점' WHEN (SCORE>= '80' AND SCORE < '90') THEN 'B학점' WHEN (SCORE>= '70' AND SCORE < '80') THEN 'C학점' WHEN (SCORE>= '60' AND SCORE < '70') THEN 'D학점' ELSE 'F학점' END) AS '학점' FROM MY_TABLE
-- 입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회하는 SQL문을 작성해주세요.
-- 이때 결과는 보호 기간이 긴 순으로 조회해야 합니다.
SELECT B.ANIMAL_ID, B.NAME
FROM ANIMAL_INS AS A, ANIMAL_OUTS AS B
WHERE A.ANIMAL_ID = B.ANIMAL_ID
ORDER BY (B.DATETIME - A.DATETIME) DESC
LIMIT 2
CASE WHEN과 같은 조건문입니다.
마찬가지로 조건에 따라 원하는 작업을 수행할 수 있습니다.
IF 조건 참일때 값 ELSE 거짓일때 값 END 컬럼명
-- 동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성해주세요. 이때 중성화가 되어있다면 'O', 아니라면 'X'라고 표시해주세요.
SELECT ANIMAL_ID, NAME,
IF(SEX_UPON_INTAKE LIKE '%Neutered%' OR SEX_UPON_INTAKE LIKE '%Spayed%','O','X') AS '중성화'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
DATE_FORMAT(DATE, 형식)
을 통해
DATE의 형식을 바꿀 수 있습니다.
%Y
(4자리 연도)%y
(2자리 연도)%m
(월)%d
(일)%H
(24시간)%h
(12시간)%i
%s
-- 테이블에 등록된 모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜1를 조회하는 SQL문을 작성해주세요.
-- 이때 결과는 아이디 순으로 조회해야 합니다.
SELECT ANIMAL_ID, NAME,DATE_FORMAT(DATETIME, '%Y-%m-%d') AS 날짜
FROM ANIMAL_INS
ORDER BY ANIMAL_ID