SQL TIL

succeeding·2022년 3월 28일
0

PIVOTING

아래 문제 참고
https://www.hackerrank.com/challenges/occupations/problem?isFullScreen=true

Not Equal

<> 이 표준.
MySql에선!= 도 지원.
NOT ~ = ~ 도 가능

변수 선언

SET @[변수명] := [초기값]

  • := 은 대입 연산자, = 은 비교 연산자

SubQuery

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

  • WHERE 절에서는 집계함수(aggregate functions)를 사용 할 수 없다.
  • HAVING 절은 집계함수를 가지고 조건비교를 할 때 사용한다.
  • HAVING절은 GROUP BY절과 함께 사용이 된다.



FUNCTIONS


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


DATE_FORMAT

DATETIME FILED의 출력 포멧을 변경하고 싶을 때 사용한다.
https://www.w3schools.com/sql/func_mysql_date_format.asp

DATEDIFF

DATEDIFF(DATE1, DATE2)
DATE1 - DATE2을 날짜 단위로 리턴.


0개의 댓글