아래 문제 참고
https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true
Not Equal<> 이 표준.
MySql에선!= 도 지원.
NOT ~ = ~ 도 가능
SET @[변수명] := [초기값]
:= 은 대입 연산자, = 은 비교 연산자https://mozi.tistory.com/233 참고
CASEWHEN을 돌면서 참인 경우 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;
WHERELIKEWHERE ANIMAL_TYPE = "Dog" AND NAME LIKE "%EL%" 데이터에 원하는 값이 포함되어 있는지 조사할 때 WHERE와 함께 사용
이때 원하는 값 앞 뒤로 _ 혹은 %를 사용한다.
_는 임의의 문자가 하나 있다는 것.
예를 들어 __EL__ 라고 하면 EL 앞 뒤로 임의의 두 글자가 있음.
%는 글자수 상관없이 임의의 문자.
%EL 이라고 하면 끝자리가 EL인 데이터EL%라고 하면 처음이 EL인 데이터%EL%라고 하게된다면 어딘가에 EL이 들어만 있으면 됨.GROUP BYHAVING
CONCATCONCAT(expression1, expression2, expression3,...)
두 개 이상의 표현을 합쳐서 한 컬럼에 표시할 때 사용한다.
SELECT CONCAT("SQL ", "Tutorial ", "is ", "fun!") AS ConcatenatedString;
SUBSTRSUBSTR(string, start, length)
string에서 start(인덱스는 1부터 시작)로부터 length만큼의 문자열을 리턴한다.
IFNULLIFNULL([컬럼명], [값])
컬럼의 값이 NULL인 경우 출력되는 값을 [값]으로 설정한다.
DATE_FORMATDATETIME FILED의 출력 포멧을 변경하고 싶을 때 사용한다.
https://www.w3schools.com/sql/func_mysql_date_format.asp
DATEDIFFDATEDIFF(DATE1, DATE2)
DATE1 - DATE2을 날짜 단위로 리턴.