[SQL] MySQL 기초
조회
- 컬럼별 순서
COL1 오름차순 정렬 후 COL2 내림차순 정렬
SELECT * FROM [TABLE] ORDER BY [COL1] ASC, [COL2] DESC
- pagination
SELECT * FROM [TABLE] LIMIT [SKIP] [COUNT]; SELECT * FROM [TABLE] LIMIT [COUNT];
연산자
- 사칙연산
+, -, *, /, %
SELECT 1 + 2; SELECT 'ABC' + 1; // MySQL이
‘ABC’는 0으로 인식
SELECT ‘1’ + 1; // MySQL이 숫자로 이루어진 문자열은 숫자로 인식
- 불 대수
TRUE, FALSE
SELECT TRUE, FALSE; // 1, 0 SELECT TRUE IS FALSE; // 0
-
논리 연산 AND(&&), OR(||), NOT(!)
- 그 외
BETWEEN, IN, LIKE
SELECT 5 BETWEEN 1 AND 10; SELECT 5 IN (1, 5, 7);
LIKE ‘..%..’ : - 0~N개 문자
LIKE ‘.._..’ : - _ 수만큼 문자
함수
-
숫자함수
CELL, FLOOR, ROUND, ABS, GREATEST, LEAST, POW, SQRT, TRUNCATE
-
그룹함수
MAX, MIN, COUNT, SUM, AVG
-
문자열
UCASE, LCASE, CONCAT, CONCAT_WS, SUBSTR, LEFT, RIGHT, LENGTH, CHAR_LENGTH, TRIM, LTRIM, RTRIM, LPAD, RPAD, REPLACE, INSTR
LENGTH : 바이트 길이
CHAR_LENGTH : 문자열 길이
-
날짜
CURDATE(), CURTIME(), NOW() DATE(date), TIME(time), YEAR(date), MONTH(date), DAY(date), HOUR(time), MINUTE(time), SECOND(time), DATE_DIFF, TIME_DIFF, DATE_FORMAT
-
조건
SELECT IF(1 > 2, TRUE, FALSE);
SELECT
CASE
WHEN 1 > 0 THEN '양수'
WHEN 1 = 0 THEN '0'
ELSE '음수'
END;
SELECT IFNULL(NULL, 'null');