SELECTWHEREORDER BY, ASC|DESCCOUNT()COUNT(DISTINCT column_name)LIMITGROUP BYGROUP BY with HAVING()SET @var_nameIFNULL() or COALESCE()MySQL 공부하면서 간단하게 내용 정리중입니다.
SELECTSELECT column_name
FROM table_name;WHERESELECT column_name
FROM table_name
WHERE condition;ORDER BY, ASC|DESCSELECT 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;LIMITSELECT column_name
FROM table_name
WHERE condition
LIMIT number;GROUP BYSELECT 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>1SET @var_nameSET @x=1; -- Define VariableSET @x=-1;
SELECT @x:= @x+1; -- output : 0IFNULL() or COALESCE()LIKE OR REGEXPSELECT column_name
FROM table_name
WHERE column_name LIKE '20__' # OR '%EL', '%EL%' etc.LIKE BINARYSELECT 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.idLEFT 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.