SELECT
WHERE
ORDER BY
, ASC|DESC
COUNT()
COUNT(DISTINCT column_name)
LIMIT
GROUP BY
GROUP BY
with HAVING()
SET @var_name
IFNULL()
or COALESCE()
MySQL 공부하면서 간단하게 내용 정리중입니다.
SELECT
SELECT column_name
FROM table_name;
WHERE
SELECT column_name
FROM table_name
WHERE condition;
ORDER BY
, ASC|DESC
SELECT column_name
FROM table_name
ORDER BY column_name ASC|DESC;
COUNT()
SELECT COUNT(column_name) # as `count` if labeling column
FROM table_name;
COUNT(DISTINCT column_name)
SELECT COUNT(DISTINCT column_name)
FROM table_name;
LIMIT
SELECT column_name
FROM table_name
WHERE condition
LIMIT number;
GROUP BY
SELECT column_name as c
FROM table_name
GROUP BY NAME
GROUP BY
with HAVING()
-- example : use count as criteria for output
SELECT column_name as c
FROM table_name
GROUP BY NAME
HAVING c>1
SET @var_name
SET @x=1; -- Define Variable
SET @x=-1;
SELECT @x:= @x+1; -- output : 0
IFNULL()
or COALESCE()
LIKE
OR REGEXP
SELECT column_name
FROM table_name
WHERE column_name LIKE '20__' # OR '%EL', '%EL%' etc.
LIKE BINARY
SELECT column_name
FROM table_name
WHERE column_name LIKE BINARY 'El%' # case sensitive\
SUBSTRING_INDEX
-- SUBSTRING_INDEX(column, 구분자, count)
SELECT SUBSTRING_INDEX(column_name, ' ',
JOIN
기본적으로 JOIN은 교집합이라고 생각하면 쉽다. 어느 한 쪽에만 있는 데이터는 모두 무시된다.
SELECT t1|t2.column_name
FROM table_name1 as t1
JOIN table_name2 as t2
ON t1.id = t2.id
LEFT JOIN
, RIGHT JOIN
어느 테이블을 기준으로 합칠 건지에 따라 결과가 달라진다. 이는 아무것도 적지 않은 JOIN
과는 다르게 OUTER JOIN이다. 교집합 이외의 기준 테이블의 내용을 가져간다.
기준 테이블 LEFT JOIN 기준에 따라가는 테이블 ON condition
기준에 따라가는 테이블 RIGHT JOIN 기준 테이블 ON condition
이 때 기준 테이블에는 있지만 기준에 따라가는 테이블에는 없다면 해당 레코드에는 NULL값이, 반대의 경우라면 무시된다.
--
과 #
--
의 경우 SQL 표준 주석 문법이고, MySQL에서는 #
도 사용 가능하다.
WHERE
와 HAVING
의 차이WHERE와 HAVING의 가장 큰 차이는 GROUP BY와 함께 사용되었을 때 나타난다. WHERE문은 GROUP BY 이전에 레코드를 거르는 역할을 하고, HAVING은 GROUP BY 이후에 레코드를 거르는 역할을 한다.
%
, _
기본적으로 패턴매칭시 case insensitive(대소문자 구별x)이다.
%
의 경우 0개 이상의 글자를 대체
LIKE '%ER'
: HER, STRONGER, ER, …
_
의 경우 1개의 글자만을 대체
LIKE '_ER'
: HER, MER, TER, … (ER의 경우 해당하지 않음)
대소문자 구분시 LIKE BINARY
를 사용할 수 있다.
ghleokim is a junior developer that tries to see things in a different way.