이직하고 나한테 여유의 시간을 주다 보니,
점점 공부했던 내용들을 머리속에서 지우는 것 같다.
바로 활용 할 수 있도록 스터디 재시작 - !
현업에서 ORACLE도 많이 사용하고 MY SQL과 문법이 조금씩 다르지만
일단 우선 MY SQL부터 도장 깨기
SQL 작성 순서
SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY - LIMIT
SQL 실행 순서
FROM - WHERE - GROUP BY - HAVING - SELECT - ORDER BY - LIMIT
컬럼이 NULL을 반환할 때, 다른 값으로 출력하는 함수
SELECT IFNULL(컬럼명, 대체값) FROM 테이블명
**MSSQL**
ISNULL(VALUE1, VALUE2)
**ORACLE**
NVL(VALUE1, VALUE2)
날짜를 지정한 형식으로 출력
SELECT DATE_FORMAT(컬럼명,'%Y-%m-%d') FROM 테이블명
# 2016년09월22일 17시00분05초
SELECT DATE_FORMAT(컬럼명,'%Y년%m월%d일 %H시%i분%S초') FROM 테이블명
형식 | 설명 |
---|---|
%Y | 연도 Year (4자리) ex) 1999, 2000, 2020 |
%y | 연도 Year (2자리) ex) 99, 00, 20 |
%M | 월 Month (영문/긴) ex) January, February ... |
%b | 월 Month (영문/짧은) ex) Jan, Feb ... |
%m | 월 Month (숫자/2자리) ex) 01, 02, 03 ... |
%c | 월 Month (숫자/1자리) ex) 1, 2, 3 ... |
%D | 월 Month ex) 1st, 2dn, 3rd ... |
%d | 일 Day (숫자/2자리) ex) 00, 01, 02 ... |
%e | 일 Day (숫자/1자리) ex) 0, 1, 2 ... |
%W | 요일 Day of Week ex) Sunday, Monday ... |
%a | 요일 Day of Week ex) Sun., Mon. ... |
%H | 시 Hour (24시간) ex) 00, 01,24 ... |
%h | 시 Hour (12시간) ex) 00, 06,12 ... |
%T | hh:mm:ss |
%p | AP, PM |
자료형 | 표기 형식 | 길이/크기 |
---|---|---|
DATE | YYYY-MM-DD | 3 Byte 참고 : varchar (8 Byte) |
DATETIME | YYYY-MM-DD HH:mm:ss | 8 Byte |
연산자들은 조건으로 필터링하는 역할이므로 WHERE절
에 위치
WHERE 절
WHERE 절에서는 단일 행 기준의 조건을 사용해야 하므로, 집계 함수를 직접 사용할 수 없습니다.
EX) WHERE MIN(DATETIME)
컬러명 IN ("")
#SELECT * FROM 테이블명 WHERE 컬럼명 = VALUE 1, 컬럼명 = VALUE 2, 컬럼명 = VALUE 3
SELECT * FROM 테이블명 WHERE 컬럼명 IN ("VALUE 1", "VALUE 2", "VALUE 3")
#SELECT * FROM 테이블명 WHERE 컬럼명 >= VALUE 1 AND Column <= VALUE 2
SELECT * FROM 테이블명 WHERE 컬럼명 BETWEEN VALUE 1 AND VALUE 2
컬럼명 LIKE ""
#A로 시작하는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A%'
#A로 끝나는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%A'
#A를 포함하는 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '%A%'
#A로 시작하는 두글자 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A_'
#A로 시작하는 두글자 문자 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE 'A_'
-----
#첫번째 문자가 'A''가 아닌 모든 문자열 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE'[^A]'
#첫번째 문자가 'A'또는'B'또는'C'인 문자열 찾기
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[ABC]'
SELECT * FROM 테이블명 WHERE 컬럼명 LIKE '[A-C]'
SELECT * FROM 테이블명 WHERE 컬럼명 IS NULL