문제:

풀이방법:

시간을 나타내는 데이터를 원하는 꼴로 만들어주는 함수를 사용해야 하는 문제이다. 오라클에서는 TO_CHAR를 사용하기도 하지만 MySQL에서는 DATE_FORMAT을 사용하는 것 같다. %Y가 연도를 네 글자로 나타내며, %m 과 %d를 사용한다.

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

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59414

문제:

풀이방법:

특정한 값에 다른 값을 매칭시킬 때 사용할 수 있는 함수로는 DECODE와 CASE가 있다. 그 중 CASE를 사용해서 이 문제를 풀었다. SQL의 CASE를 이해하기 위해서 다른 프로그래밍 언어에 있는 switch와 비슷하고 생각하면 된다.

CASE

WHEN ~ THEN ~

WHEN ~ THEN ~

ELSE ~ END

Neutered 와 Spayed가 들어있으면 O, 그렇지 않다면 X라고 매칭을 해주고 나머지 값을 출력하도록 한다.

1
2
3
4
SELECT ANIMAL_ID, NAME, CASE 
WHEN SEX_UPON_INTAKE like '%Neutered%' THEN 'O'
WHEN SEX_UPON_INTAKE like 'Spayed%' THEN 'O'
ELSE 'X' END AS '중성화' FROM ANIMAL_INS;
cs

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59409

 

문제:

풀이방법:

문자열의 일부분을 포함하는 값들을 찾을 때 LIKE절을 사용한다. Column LIKE '표현식' 과 같은 방법으로 사용한다. '표현식'의 형태는 정규표현식과 유사하다. 이 문제에서는 el만 표함되면 된다 했으므로 앞 뒤로 몇개가 있어도 상관없는지를 나타내는 %를 앞뒤로 사용한다. 

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

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59047

 

문제:

풀이방법:

Where 조건 절에서 한 컬럼이 여러 개의 값을 가져도 되는지에 대한 여부를 파악하기 위해서는 IN을 사용한다. IN과 tuple 값을 사용하며 tuple에 값들을 나열한다.

1
2
SELECT ANIMAL_ID,NAME,SEX_UPON_INTAKE FROM ANIMAL_INS
WHERE NAME in ('Lucy''Ella''Pickle''Rogan''Sabrina''Mitty');
cs

문제링크:

https://programmers.co.kr/learn/courses/30/lessons/59046

+ Recent posts