전체 열 조회는 불필요한 열의 데이터를 포함하므로 CPU나 디스크에 많은 부담, 네트워크를 통해 전송되기 때문에 네트워크에도 부담
조회 시 정렬이 중요한 데이터는 ORDER BY 문을 사용하는 것이 좋음
논리 연산자
| 연산자 | 설명 |
|---|---|
| ALL | 모든 비교 집합이 참 |
| SOME | 비교 집합 중 일부가 참 |
| ANY | 하나라도 참 |
| EXISTS | 하위 쿼리에 행이 포함 |
| IN | 리스트 중 하나라도 포함 |
| LIKE | 패턴과 일치하는 경우 |
LIMIT
- SELECT * FROM 테이블명 ORDER BY 컬럼명 LIMIT n,m: n번째 행부터 m만큼 조회
LIMIT n OFFSET m : m개 건너뛰고 n 개수만큼 와일드 카드
- LIKE '%A%
- LIKE '%#%%' ESCAPE '#'
- LIKE '_A_', LIKE 'A___
정규 표현식 REGEXP
| 표현식 | 설명 |
|---|---|
| . | 임의의 한 문자 |
| * | 문자 패턴 0번 이상 반복 |
| + | 문자 패턴 1번 이상 반복 |
| ^ | 문자열의 처음 |
| $ | 문자열의 끝 |
| [...] | 대괄호 안에 있는 문자 |
| [^...] | 대괄호 안에 있지 않은 문자 |
| {n} | 반복 횟수 |
| {m,n} | 반복 횟수 최소-최대 |
ex1. K뒤에 R~T사이의 글자가 오는
REGEXP 'A[R-T]'
GROUP BY
- SELECT문에 사용된 열이 GROUP BY에 명시되어야함
DISTINCT
- 같은 열에 있는 중복 데이터 제거
- GROUP BY처럼 중복을 제거해주나 집계연산은 안됨. Ex. count연산
SELECT LAST_INSERT_ID();SET @AUTO_INCREMENT_INCREMENT = 5; : 두번째 insert부터 5씩 증가CREATE TABLE talbe_name AS (SELECT * FROM table2_name);col_latin1_general_ci ...)