📚 WHERE 조건
✅ LIKE 에서 와일드 카드
• LIKE 사용 시 %는 매칭되는 문자의 수 상관없을 때, _ 는 1개의 문자에만 매칭해서 사용함
% | 0개 이상의 문자 (정확한 길이 알 수 없음) |
_ | 1개 |
__ | 2개 |
_% | 1개 이상의 문자 (정확한 길이 알 수 없음) |
📚데이터 정렬
✅ ORDER BY
📌컬럼 여러개 기준으로 정렬하는 경우
SELECT * FROM TMP_TABLE
WHERE ~~
ORDER BY 컬럼1 DESC, 컬럼2 ;
위와 같이 여러 개의 컬럼에 대해서 정렬하는 경우, 컬럼1을 기준으로 먼저 내림차순으로 정렬한 후에,
컬럼1의 값이 동일한 row에 대해서만 컬럼2 오름차순 기준으로 정렬한다.
✅ RANK
📌순위를 정해서 가져오는 경우
• 항상 ORDER BY랑 함께 사용함.
• SELECT 절에서 사용함. 테이블 실제 데이터에는 영향을 미치지 않음
• 값이 높은 순서대로 순위를 만들어서 가져오려면, ORDER BY 에서 DESC 사용해야 함
SELECT [col1], [col2],
RANK() OVER (ORDER BY col1 DESC) AS col1_rank
FROM [테이블];
✅ vs DENSE_RANK vs ROW_NUMBER
함수 | 설명 |
RANK | 공동 순위가 있으면 다음 순서로 건너뜀 |
DENSE_RANK | 공동순위가 있어도 다음 순위 안 건너뜀 |
ROW_NUMBER | 공동 순위 무시 |
📌예시
이름 | 성적 | rank_rank | rank_dense_rank | rank_row_number |
A | 90 | 1 | 1 | 1 |
B | 55 | 2 | 2 | 2 |
C | 55 | 2 | 2 | 3 |
D | 49 | 4 | 3 | 4 |
E | 30 | 5 | 4 | 5 |
📚문자형 데이터 다루기
📌문자열 관련 함수
함수 | 사용법 | 설명 |
LOCATE | LOCATE('A', 컬럼명) | • “ABC”컬럼에서“A”가 몇번째에 위치하는지 반환 • 문자가 여러개면 가장 먼저 찾은 문자의 위치 반환 • 찾는 문자 없으면 0 반환 |
SUBSTRING | SUBSTRING(컬럼명, 2) | • “ABC”에서 2번째 문자부터 반환 • 입력한 숫자 > 문자열 길이 : 아무것도 반환 안 함 |
RIGHT | RIGHT(컬럼명, 2) | • 컬럼에서 오른쪽 2번째 문자까지 반환 |
LEFT | LEFT(컬럼명, 2) | • 컬럼에서 왼쪽 2번째 문자까지 반환 |
UPPER | UPPER(컬럼) | • 컬럼을 모두 대문자로 바꿔 반환 |
LOWER | LOWER(컬럼) | • 컬럼을 모두 소문자로 바꿔 반환 |
LENGTH | LENGTH(컬럼) | • 컬럼의 글자 수 반환 |
CONCAT | CONCAT(컬럼1, 컬럼2) | • 두 개의 문자열을 합쳐서 반환 (컬럼도 가능) |
REPLACE | REPLACE(컬럼, 'A', 'B') | • 컬럼에서 A를 B로 바꿔서 반환 |
📚숫자 다루기
📌숫자 관련 함수
함수 | 사용법 | 설명 |
ABS | ABS(숫자) | • 절대값 반환 |
CEILING | CEILING(숫자) | • 정수로 올림 |
FLOOR | FLOOR(숫자) | • 정수로 내림 |
ROUND | ROUND(숫자, 자릿수) | • 숫자를 소수점 자릿수까지 반올림해서 반환 |
TRUNCATE | TRUNCATE(숫자, 자릿수) | • 숫자를 소수점 자릿수까지 버림해서 반환 |
POWER | POWER(숫자1, 숫자2) | • 숫자1의 숫자2 제곱 반환 |
MOD | MOD(숫자1, 숫자2) | • 숫자1을 숫자2로 나눈 후 나머지 반환 |
📚날짜 다루기
📌날짜 관련 함수
함수 | 사용법 | 설명 |
NOW | NOW() | 현재 날짜와 시간 반환 (입력값 없이 사용) |
CURRENT_DATE | CURRENT_DATE() | 현재 날짜 반환 |
CURRENT_TIME | CURRENT_TIME() | 현재 시간 반환 |
YEAR | YEAR(날짜) | 날짜의 연도반환 |
MONTH | MONTH(날짜) | 날짜의 월반환 |
MONTHNAME | MOTHNAME(날짜) | 날짜의 월을 영어로 반환 |
DAYNAME | DAYNAME(날짜) | 날짜의 요일을 영어로 반환 |
DAYOFMONTH | DAYOFMONTH(날짜) | 날짜의 일 반환 |
DAYOFWEEK | DAYOFWEEK(날짜) | 날짜의 요일을 숫자로 반환 일요일 = 1 / 월요일 = 2 |
WEEK | WEEK(날짜) | 날짜가 해당연도에 몇번째 주인지 반환 |
HOUR | HOUR(시간) | 시간의 시반환 |
MINUTE | MINUTE(시간) | 시간의 분반환 |
SECOND | SECOND(시간) | 시간의 초반환 |
DATE_FORMAT | DATEFORMAT(날짜/시간, 형식) | 날짜/시간의 형식을 '형식'으로 바꿔반환 |
DATEDIFF | DATEDIFF(날짜1, 날짜2) | 날짜1과 날짜2의 차이 반환 (날짜1 ‒날짜2) |
TIMEDIFF | TIMEDIFF(시간,1시간2) | 시간1과 시간2의 차이 반환 (시간1 ‒시간2) |
📌DATE_FORMAT 함수에 들어가는 형식 세부 분류
'SQL' 카테고리의 다른 글
[SQL] CASE WHEN / CREATE FUNCTION (0) | 2023.05.09 |
---|---|
[SQL] GROUP BY (0) | 2023.03.08 |
[SQL] 데이터베이스 다루기 (0) | 2023.02.28 |
[SQL] 서브쿼리 기본 개념 (0) | 2023.02.06 |
댓글