아래 문제 참고
https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true
Not Equal
<>
이 표준.
MySql에선!=
도 지원.
NOT ~ = ~
도 가능
SET @[변수명] := [초기값]
:=
은 대입 연산자, =
은 비교 연산자https://mozi.tistory.com/233 참고
CASE
WHEN
을 돌면서 참인 경우 THEN
에 해당하는 결과를 리턴, 모두가 거짓이면 ELSE
절을 리턴함.
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
WHEN conditionN THEN resultN
ELSE result
END;
SELECT
에 사용SELECT OrderID, Quantity,
CASE
WHEN Quantity > 30 THEN 'The quantity is greater than 30'
WHEN Quantity = 30 THEN 'The quantity is 30'
ELSE 'The quantity is under 30'
END AS QuantityText
FROM OrderDetails;
SELF JOIN
같은 테이블을 조인할 때 INNER JOIN
사용. 아래는 INNER JOIN
의 고전적인 방법이다. INNER JOIN
을 명시적으로 사용하는 경우와 큰 차이는 없어 보인다. 자세히 알고 싶다면 여길 참고하자.
SELECT column_name(s)
FROM table1 T1, table1 T2
WHERE condition;
WHERE
LIKE
WHERE ANIMAL_TYPE = "Dog" AND NAME LIKE "%EL%"
데이터에 원하는 값이 포함되어 있는지 조사할 때 WHERE
와 함께 사용
이때 원하는 값 앞 뒤로 _
혹은 %
를 사용한다.
_
는 임의의 문자가 하나 있다는 것.
예를 들어 __EL__
라고 하면 EL 앞 뒤로 임의의 두 글자가 있음.
%
는 글자수 상관없이 임의의 문자.
%EL
이라고 하면 끝자리가 EL인 데이터EL%
라고 하면 처음이 EL인 데이터%EL%
라고 하게된다면 어딘가에 EL이 들어만 있으면 됨.GROUP BY
HAVING
CONCAT
CONCAT(expression1, expression2, expression3,...)
두 개 이상의 표현을 합쳐서 한 컬럼에 표시할 때 사용한다.
SELECT CONCAT("SQL ", "Tutorial ", "is ", "fun!") AS ConcatenatedString;
SUBSTR
SUBSTR(string, start, length)
string에서 start(인덱스는 1부터 시작)로부터 length만큼의 문자열을 리턴한다.
IFNULL
IFNULL([컬럼명], [값])
컬럼의 값이 NULL
인 경우 출력되는 값을 [값]
으로 설정한다.
DATE_FORMAT
DATETIME FILED의 출력 포멧을 변경하고 싶을 때 사용한다.
https://www.w3schools.com/sql/func_mysql_date_format.asp
DATEDIFF
DATEDIFF(DATE1, DATE2)
DATE1 - DATE2
을 날짜 단위로 리턴.