회사 코딩테스트를 대비해서 한번 정리했다. 하지만 코딩테스트의 결과는 좋지 않았다. 그래도 매번 귀찮게 찾아보는 것보다 한번에 보는 것이 나아서 정리했다.
WHERE 함수
OR
SELECT * FROM 테이블명 WHERE 조건1 OR 조건2
테이블명의 테이블에서 조건1과 조건2 중 어떤 하나라도 만족하는 행의 모든 열을 선택
AND
SELECT * FROM 테이블명 WHERE 조건1 AND 조건2
테이블명의 테이블에서 조건1과 조건2 둘다 만족하는 행의 모든 열을 선택
BETWEEN
SELECT * FROM 테이블명 WHERE 속성1 BETWEEN 값1 AND 값2
테이블명의 테이블에서 속성1의 값이 값1과 값2의 사이인 행의 모든 열을 선택
IN
SELECT * FROM 테이블명 WHERE 속성1 IN (조건1, 조건2, ...)
테이블명의 테이블에서 속성의 값이 조건1이거나 조건2인 행의 모든 열을 선택
NOT
SELECT * FROM 테이블명 WHERE NOT 조건1
테이블명의 테이블에서 조건1을 만족하지 않는 행의 모든열을 선택
LIKE
SELECT * FROM 테이블명 WHERE 속성1 LIKE 'A_'
테이블명의 테이블에서 속성1 중 ‘A+1글자’값을 가진 행의 모든 열을 선택
SELECT * FROM 테이블명 WHERE 속성1 LIKE 'A%'
테이블명의 테이블에서 속성1 중 ‘A’로 시작하는 행의 모든 열을 선택
ORDER BY
SELECT * FROM 테이블명 ORDER BY 속성1 순서
테이블명의 테이블을 속성1의 순서에 따라 모든 열을 출력
순서에는 DESC(내림차순), ASC(오름차순)이 있음
GROUP BY
HAVING
SELECT * FROM 테이블명 WHERE 조건 GROUP BY 컬럼명 HAVING 조건
GROUP BY는 보통 집합 함수(Aggregate function, [AVG, SUM, COUNT, …])와 많이 쓰이며 다음과 같은 형식을 지님
SELECT
c1, c2, ... ,cn, aggregate_function(ci)
FROM
테이블명
WHERE
조건
GROUP BY c1, c2, ...
HAVING aggregate_function(ci) # (ex COUNT(*) > 1)
MYSQL 실행순서
- FROM : 조회 테이블 확인
- WHERE : 데이터 추출 조건 확인
- GROUP BY : 컬럼 그룹화
- HAVING : 그룹화 조건
- SELECT : 데이터 추출
- ORDER BY : 데이터 순서 정렬
DISTINCT
SELECT DISTINCT 속성1 FROM 테이블명
테이블명의 테이블에서 속성1이 중복되지 않는 행을 출력
LIMIT
SELECT * FROM 테이블명 LIMIT N
테이블명의 테이블에서 N개의 행을 선택
Aggregate function
함수 | 설명 |
---|---|
COUNT() | 행의수 반환 |
SUM() | 합계 반환 |
MAX() | 최대값 반환 |
MIN() | 최소값 반환 |
AVG() | 평균 반환 |
STDDEV() | 표준편차 반환 |
VARIANT() | 분산 반환 |
숫자 함수
함수 | 설명 |
---|---|
ABS() | 절대값 |
CEILING() | 소수점 올림 |
FLOOR() | 소수점 버림 |
ROUND(숫자, 자릿수) | 자릿수 이하를 반올림 |
TRUNCATE(숫자, 자릿수) | 자릿수 이하를 버림 |
POW() | 제곱 |
MOD() | 나머지 |
GRAEATEST(숫자1, 숫자2, …) | 주어진 수 중 가장 큰 수를 가져옴 |
LEAST(숫자1, 숫자2, …) | 주어진 수 중 가장 작은 수를 가져옴 |
문자열 함수
함수 | 설명 |
---|---|
ASCII(t) | t의 아스키 코드값 리턴 |
CONCAT(t1, t2, …) | t1t2 형식의 문자열 |
LENGTH(t) | 문자열 t의 길이 |
CHAR_LENGTH(t) | 문자열 t의 길이 single-byte, multi-byte 미구별 |
RIGHT(t, x) | 문자열 t의 오른쪽 x개 |
LEFT(t, x) | 문자열 t의 왼쪽 x개 |
MID(t, x, y) | 문자열 t의 x위치부터 y개수만큼 출력 |
TRIM() | 양쪽 공백 제거 |
LTRIM() | 왼쪽 공백 제거 |
RTRIM() | 오른쪽 공백 제거 |
UPPER() | 대문자 |
LOWER() | 소문자 |
SUBSTRING(t, x, y) | 문자열 t의 x번째에서 y개의 문자열 |
SUBSTRING_INDEX(문자열, 구분자, n) | 문자열을 구분자로 나눈 후 n번째 요소를 가져옴 |