https://programmers.co.kr/learn/courses/30/lessons/59046
이름이 Lucy, Ella, Pickle, Rogan, Sabrina, Mitty인 동물의 아이디와 이름, 성별 및 중성화 여부를 조회
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS AI
WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
https://programmers.co.kr/learn/courses/30/lessons/59047
이름에 "EL"이 들어가는 개의 아이디와 이름을 조회하는 SQL문을 작성
이름을 알파벳 순으로 정렬하여 출력
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS AI
WHERE ANIMAL_TYPE='Dog' AND NAME LIKE '%el%'
ORDER BY NAME
대소문자 때문에 INLIKE
를 사용하려고 했는데 MySQL에서 사용이 안되고, 대신 REGEXP_LIKE
를 쓸 수 있다고 한다. 근데 딱히 쓰지 않아도 대소문자를 구분하지 않아서 그냥 제출.
주의: MySQL은 대소문자를 구분하지 않고 출력하지만 Oracle은 대소문자를 구분
REGEXP_LIKE(expr, pat[, match_type])
pat은 정규식을 입력하고 match_type은i
,c
,m
,n
,u
등을 사용할 수 있다.
기호 | 의미 |
---|---|
i | 대소문자 구분하지 않음 (기본값) |
c | 대소문자 구분 |
m | 멀티플라인 모드 (대상 문자열이 여러줄일 경우) |
n | . 을 개행문자로 인식 |
u | Unix-only line endings. |
참고: MySQL Reference
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS AI
WHERE ANIMAL_TYPE='Dog' AND REGEXP_LIKE(NAME, 'el')
ORDER BY NAME
https://programmers.co.kr/learn/courses/30/lessons/59409
동물의 아이디와 이름, 중성화 여부를 아이디 순으로 조회하는 SQL문을 작성
중성화된 동물은 SEX_UPON_INTAKE 컬럼에 'Neutered' 또는 'Spayed'라는 단어가 들어 있다.
중성화가 되어있다면 'O', 아니라면 'X'라고 표시
SELECT ANIMAL_ID, NAME
, CASE WHEN SEX_UPON_INTAKE LIKE 'Intact%' THEN 'X'
ELSE 'O' END AS '중성화'
FROM ANIMAL_INS AI
ORDER BY ANIMAL_ID
SELECT ANIMAL_ID, NAME
, CASE WHEN REGEXP_LIKE(SEX_UPON_INTAKE, 'Neutered|Spayed') THEN 'O'
ELSE 'X' END AS '중성화'
FROM ANIMAL_INS AI
ORDER BY ANIMAL_ID
https://programmers.co.kr/learn/courses/30/lessons/59411
입양을 간 동물 중, 보호 기간이 가장 길었던 동물 두 마리의 아이디와 이름을 조회
보호 기간이 긴 순으로 조회
SELECT AO.ANIMAL_ID, AO.NAME
FROM ANIMAL_INS AI
RIGHT JOIN ANIMAL_OUTS AO ON AI.ANIMAL_ID = AO.ANIMAL_ID
ORDER BY (AO.DATETIME - AI.DATETIME) DESC
LIMIT 2
https://programmers.co.kr/learn/courses/30/lessons/59414
모든 레코드에 대해, 각 동물의 아이디와 이름, 들어온 날짜를 조회
SELECT ANIMAL_ID, NAME, LEFT(DATETIME,10) '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME,'%Y-%m-%d') '날짜'
FROM ANIMAL_INS
ORDER BY ANIMAL_ID
DATE_FORMAT(date, format)
시간/날짜를 원하는 형태로 변경해주는 함수. format은 대/소문자를 구분하여 사용
MySQL Reference, SQL Tutorial