DATE_FORMAT함수를 아는지 확인하는 문제.

 

SELECT ANIMAL_ID, NAME, DATE_FORMAT(DATETIME, "%Y-%m-%d") AS 날짜 FROM ANIMAL_INS ORDER BY ANIMAL_ID;

 

 

 

DATEDIFF함수 아는지 확인하는 문제.

첫번째 인자 - 두번째 인자를 반환.

 

SELECT O.ANIMAL_ID, O.NAME FROM ANIMAL_OUTS O, ANIMAL_INS I WHERE O.ANIMAL_ID = I.ANIMAL_ID ORDER BY DATEDIFF(O.DATETIME, I.DATETIME) DESC LIMIT 2;

if문 사용할 수 있는지 확인하는 문제. true면 두번째 인자가 리턴, false면 세번째 인자가 리턴.

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;


LIKE프레디킷은 서브 스트링 패턴을 비교하는 비교연산자로 사용된다.

'%'는 문자가 있거나 없을 수 있다는 의미.

'_'는 문자 하나를 나타낸다.

 

SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE NAME LIKE '%EL%' AND ANIMAL_TYPE='Dog' ORDER BY NAME;

 

IN으로 집합에 포함되는지 확인.

SELECT ANIMAL_ID, NAME, SEX_UPON_INTAKE FROM ANIMAL_INS WHERE NAME IN ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty');

조인 후 두개의 조건을 걸어서 푼 방법

SELECT O.ANIMAL_ID, O.ANIMAL_TYPE, O.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O WHERE I.ANIMAL_ID = O.ANIMAL_ID AND (I.SEX_UPON_INTAKE LIKE 'Intact%') AND (O.SEX_UPON_OUTCOME ='Spayed Female' OR O.SEX_UPON_OUTCOME='Neutered Male');

 

 

 

LEFT 조인 사용

SELECT I.NAME, I.DATETIME FROM ANIMAL_INS I LEFT JOIN ANIMAL_OUTS O ON I.ANIMAL_ID=O.ANIMAL_ID WHERE O.ANIMAL_ID IS NULL ORDER BY I.DATETIME ASC LIMIT 3;

 

이중 질의 사용

SELECT NAME, DATETIME FROM ANIMAL_INS WHERE ANIMAL_ID NOT IN (SELECT ANIMAL_ID FROM ANIMAL_OUTS) ORDER BY DATETIME ASC LIMIT 3;

 

시작일이 빠르다라는게 헷갈렸다.. 빠르면 과거.. 이른 날짜

 

SELECT I.ANIMAL_ID, I.NAME FROM ANIMAL_INS I, ANIMAL_OUTS O WHERE I.ANIMAL_ID = O.ANIMAL_ID AND I.DATETIME > O.DATETIME ORDER BY I.DATETIME ASC;

+ Recent posts