0. SQL query
SELECT col
FROM table
WHERE condition
1. ORDER BY col1 DESC, col2 ASC, ...
WHERE절 밑
2. LIMIT a, b : col [a, a+b]
WHERE절 밑
3. COUNT(col)
SELECT절 안에서 사용
EX) SELECT COUNT(col)
EX) SELECT COUNT(*) AS NEW_NAME
4. DISTINCT(col) OR DISTINCT col
SELECT절 안에서 사용
SELECT DISTINCT(col)
SELECT COUNT(DISTINCT(col))
5. GROUP BY
GROUP BY col1, col2... : 그룹화하기 전, 특정 col 명시
이때 col은 기존의 col 혹은 AS로 만든 별칭도 가능
* 그룹함수와 같이 쓰일 수 있다
EX) COUNT(), MAX(), MIN(), AVG()...
SELECT (보통)그룹화한 col, 그룹함수(the other col)
FROM TABLE
WHERE condition
GROUP BY 그룹화할 col
CF) SELECT 그룹화한 col, 그룹화한 col에 대해 여러가지 값을 가질 수 있는 col
로 SQL을 작성하면 2번째 col은 여러가지 값 중 한 가지만 리턴
때문에 그룹화 하지 않은 다른 col에 대해서는 그룹함수를 해야 의미를 갖는다.
6. HAVING
GROUP BY col
HAVING (그룹함수(col)) (포함 조건)
: 그룹화한 후, condition을 검, 반드시 GROUP BY절과 같이 쓰임
그룹함수에 들어가는 그룹화한 col외에 다른 col들어갈 수 있음
GROUP BY department
HAVING SUM(salary) < 7000;
CF) WHERE과 의미가 같으나 WHERE절에 그룹함수를 쓰면 ERROR, SELECT절은 OK
(반대로 HAVING에 일반 조건 기술은 가능하지만 지양한다)
7. AS : 이름 붙이기
CF) TABLE_NAME (이름) 으로 AS 안붙여도 가능
8. SET @변수이름 := 대입값
subquery로 반복아직..
9. IS (NOT) NULL
EX) WHERE col IS (NOT) NULL
10. IFNULL(col,"~")
col이 NULL이면 ~로 대체
SELECT IFNULL(col, "~")
11. JOIN
11-1) INNER JOIN : 일반적인 조인
=> JOIN table ON(WHERE) condition
11-2) RIGHT, LEFT JOIN
SELECT COL
FROM TABLE_A
LEFT JOIN TABLE_B
ON condition
: A에 B를 끼워 넣는다
즉 B의 값이 NULL이여도 B의 col을 A에 끼워 넣는다
== A의 row 중 B에 없는 row가 있다 => 해당 col의 값은 NULL
따라서 B RIGHT JOIN A와는 다를 수 있다
11-3) CROSS JOIN : 집합 곱 개념
11-4) NATURAL JOIN : col 이름이 같은 것을 INNER JOIN
11-5) SELF JOIN
12. LIKE 연산자
EX) WHERE col LIKE '%~%' : ~을 포함한 col, 기본적으로 대소문자를 구별하지 않는다
EX) WHRER BINARY col LIKE '%~%' : BINARY를 추가하면 대소문자 구별
13. CASE문
condition에 따라 return value를 생성해서 col 생성
SELECT col1, col2, // <--- ',' 표시 꼭, 즉 CASE문은 SELECT에 포함되어 있는 것
CASE
WHEN condition THEN value1
WHEN condition THEN value2
ELSE default value3
END AS (NAME)
FROM TABLE
14. DATE_FORMAT(dateFromData, '%y%m%d%t')
CF) DATETIME 변수끼리 연산 가능
15. (query1) UNION (query2)
두개의 쿼리 결과를 중복 제거해서 출력
(SELECT
FROM
WHERE)
UNION
(SELECT
FROM
WHERE)
16. 문자열 함수
16-1) CONCAT(문자열1, 문자열2, ...) : 문자열 합치기
16-2) SPLIT(문자열, pivot) : pivot으로 나누기
16-3) INSTR(문자열, '찾을문자') : 해당 idx 반환
16-4) REPLACE(문자열, "바뀔문자열", "바꿀문자열")
WHERE 절
16-5) WHERE col IN('문자열1', ...) : 같은 문자열이 있는지 확인
CF) LIKE 연산자
17. SubQuery
EX) 특정 col 중 최소값 가진 row 구하기
SELECT col
FROM TABLE
WHERE target_col = (
SELECT min(target_col)
FROM table
)
18. LIMIT
LIMIT (개수)
'알고리즘 > 알고리즘풀면서...' 카테고리의 다른 글
다시 풀어볼만한 문제 모음 (1) | 2021.10.03 |
---|---|
최단경로 알고리즘 정리 : 다익스트라, 벨만포드, 플로이드-와샬 (0) | 2021.08.29 |
C/C++ 팁 (0) | 2020.11.04 |
구현 팁 (0) | 2020.10.31 |
JAVA 팁(1) (0) | 2020.10.13 |