
SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE
FROM ANIMAL_INS
WHERE NAME in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')
ORDER BY ANIMAL_ID
SELECT animal_id, name
FROM animal_ins
WHERE animal_type = 'Dog' and name LIKE '%EL%'
ORDER BY name
SELECT animal_id, name,
CASE WHEN(sex_upon_intake LIKE '%neutered%' or sex_upon_intake LIKE '%spayed%')
THEN 'O' ELSE 'X' END as '중성화'
FROM animal_ins
ORDER BY animal_id
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
SELECT O.animal_id, O.name
FROM ANIMAL_OUTS as O
LEFT JOIN ANIMAL_INS as I
ON O.animal_id = I.animal_id
WHERE O.DATETIME - I.DATETIME
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2
SELECT i.animal_id, i.name
FROM animal_ins as i
LEFT JOIN animal_outs as o
ON i.animal_id = o.animal_id
ORDER BY o.datetime - i.datetime DESC
LIMIT 2
SELECT O.animal_id, O.name
FROM ANIMAL_OUTS as O, ANIMAL_INS as I
WHERE O.animal_id = I.animal_id
ORDER BY O.DATETIME - I.DATETIME DESC
LIMIT 2
SELECT animal_id, name, DATE_FORMAT(datetime, '%Y-%m-%d') as '날짜'
FROM animal_ins
ORDER BY animal_id ASC
조건 달 때 사용.
A라면 A', B라면 B'
조건 달 때 사용.
A라면 A', B라면 B'
WHERE에서 특정 값이 (여러개의 값들)안에 있는지 확인.
서브쿼리 결과가 한 건이라도 존재하면 TRUE, 없으면 FALSE를 리턴
EXISTS(서브쿼리)는 존재여부만 체크하므로 성능 최상
IN 절의 괄호() 사이에는 특정 값이나, 서브쿼리가 올 수 있지만,
EXISTS의 괄호() 사이에는 서브쿼리만 올 수 있다.
IN 절에서는 괄호 안에 있는 특정 값이나 서브쿼리의 결과 값이 있는 지 체크하지만,
결국 서브 쿼리 결과를 모두 수행,
실제 존재하는 데이터들의 모든 값까지 확인.
EXIST는 괄호 안의 서브쿼리로부터 해당 값의 존재 유무만 체크.
한 건이라도 일치하는 결과가 있으면 더 이상 수행하지 않는다.
해당 ROW가 존재하는지 확인, 더 이상 수행되지 않는다
같은 DATE 타입 간 기본적인 연산이 가능하다.
ORDER BY O.DATETIME - I.DATETIME DESC