SELECT 문 기본 문법
- 구성요소 : 키워드(예약어), 속성(칼럼) 이름, 테이블 이름, 검색 조건
- 사용 : 키워드(예약어)는 대문자로 칼럼명이나 테이블명 등 다른 것들은 소문자로
SELECT [AlL | DISTINCT] 속성이름(들)
FROM 테이블이름(들)
[WHERE 검색조건(들)]
[GROUP BY 속성 이름]
[HAVING 검색조건(들)]
[ORDER BY 속성이름 [ASC | DESC]
WHERE 절에 조건으로 사용할 수 있는 술어
- 비교 :
=, <>(같지 않다), <, <=, >, ≥
- 범위 :
BETWEEN a AND b (a와 b 그 사이, 앞뒤 조건도 포함!)
- 집합 :
IN, NOT IN(제외하고 싶은 것 지정)
- 패턴 :
LIKE, NOT LIKE
- 결측 :
IS NULL, IS NOT NULL(비어 있지 않은 모든 값을 가져오겠다)
(NULL은 결측치, 비어있는 값)
- 복합 :
AND, OR, NOT
LIKE와 함께 쓰이는 와일드 문자의 종류
- % : 0개 이상의 문자열과 일치 ex) '%축구% : 축구를 포함하는 문자열 - 앞뒤로 뭐가 나와도 상관 없다
- : 특정 위치의 1개의 문자와 일치 ex) '구%' : 두 번째 위치에 '구'가 들어가는 문자열
- [] : 1개의 문자와 일치 ex) '[0-5]%' : 0-5 사이의 숫자 하나로 시작하는 문자열
- [^] : 1개의 문자와 불일치 =
NOT ex) '[^0-5]%' : 0-5 사이 숫자로 시작하지 않는 문자열
REGEXP와 함께 쓰이는 정규식 기호 종류
- ^…$ : Starts and ends
- . : 문자 하나
- .* : 뒤에 어떤 문자가 와도 상관 없다
- [] : 괄호 안의 문자열 일치를 확인한다
- [abc] : Only a, b, or c
- [^abc] : Not a, b, nor c
- [a-z] : Characters a to z
- [0-9] : Numbers 0 to 9
- {} : 반복을 나타낸다
- | : or 를 나타낸다
- 참고 : MySQL 공식문서, regexone
집계함수
- 집계함수의 종류 :
SUM(), AVG(), COUNT(), MAX(), MIN()
COUNT() : 기본적으로 행의 갯수를 세어주며, 값이 비어있는 행은 제외된다.
GROUP BY와 집계함수
GROUP BY 사용할 때, SELECT에는 사용한 속성(칼럼)과 집계함수만 올 수 있다!
- 의미 있는 열 이름을 출력하고 싶으면
SELECT에 속성이름의 별칭을 지칭하는 AS 키워드를 사용해 열 이름을 부여한다. ex) SELECT SUM(saleprice) AS 총매축
HAVING은 반드시 GROUP BY와 같이 작성해야하고! WHERE보다 뒤에 나와야 한다! 그리고집계함수를 반드시 사용한다!
WHERE절에는 집계함수를 바로 사용할 수 없다!
ORDER BY의 내림차순과 오름차순
ASC 오름차순 : ㄱ - ㅎ, 1 - 10
DESC 내림차순 : ㅎ - ㄱ, 10 - 1