문자 함수
길이 | LENGTH(문자열) |
대문자로 변환 | UPPER(문자열) |
첫 글자만 대문자 | INITCAP(문자열) |
소문자로 변환 | LOWER(문자열) |
이어 붙이기 | CONCAT(문자열, 문자열, 문자열, · · · ) |
구분자를 넣어 이어붙기 | CONCAT_WS( 구분자, 문자열, 문자열, · · · ) |
뽑아내기 | SUBSTRING(문자열, 시작점, 범위) |
왼쪽부터 뽑아내기 | LEFT(문자열, 왼쪽부터 시작한 범위) |
오른쪽부터 뽑아내기 | RIGHT(문자열, 오른쪽부터 시작한 범위) |
날짜 함수
현재 날짜, 시간 | NOW() |
현재 날짜 | CURDATE(), SYSDATE() |
현재 시간 | CURTIME() |
날짜에 더함 | DATE_ADD(날짜값, INTERVAL 3 DAY), |
날짜에 뺌 | DATE_SUB(날짜값, INTERVAL 3 DAY) |
두 날짜의 차이를 뺌 | DATEDIFF( date2, date1 ) |
두 날짜의 차이 | TIMESTAMPDIFF(DAY, date1, date2) |
년 추출 (월 추출, 일 추출) | EXTRACT(YEAR FROM 테이블명), MONTH, DAY |
날짜 포맷 | DATE_FORMAT(날짜, 포맷형식) |
SELECT DATE_FORMAT("2021-10-24", "%Y-%M-%D");
%Y : 2021
%y : 21
%M : October
%m : 10
%D : 24th
%d : 24
숫자 함수
테이블 전체 행의 수를 셈 (NULL 값 여부와 상관없음) |
COUNT(*) |
해당 열의 값이 NULL이 아닌 행의 수를 셈 | COUNT(컬럼명) |
절대값 | ABS(숫자) |
ceiling천장, 소수점 무조건 올려버리기 | CEIL(숫자) |
floor바닥, 소수점 무조건 버리기 | FLOOR(숫자) |
특정 자릿수에서 버림 | TRUNCATE(숫자, 위치) * TRUNC는 오라클 |
유지점 위치 뒤로 반올림 | ROUND(숫자, 여기까지 유지점 뒤로 반올림) |
거듭제곱 | POWER(숫자, 제곱근) |
제곱근(루트) | SQRT(숫자) |
* square root
널 처리 방법
- COALESCE(컬럼, '치환')
- *덩어리로 합치다
- IFNULL(컬럼, '치환)
- CASE 표현식
*오라클 : NVL(컬럼, '치환')
윈도우 함수 Windon Function
특정 윈도우(또는 범위)에 대해 연산을 수행하고 결과를 반환하는 함수
특히 정렬된 데이터에 대한 집계나 분석 작업을 수행할 때 유용
- ROW_NUMBER(), RANK(), DENSE_RANK(), SUM(), AVG(), MIN(), MAX()
- OVER 절: 윈도우 함수는 OVER 절과 함께 사용되며, 이를 통해 윈도우의 범위를 지정하고 정렬 기준을 제공---OVER 절은 PARTITION BY와 ORDER BY 절로 구성
- PARTITION BY 절 : 전체 데이터를 특정 기준에 따라 여러 그룹으로 나누는 역할. 각 그룹은 독립적으로 처리되며, 윈도우 함수는 각 그룹에 대해 별도로 계산
- ORDER BY 절:
- OVER 절: 윈도우 함수는 OVER 절과 함께 사용되며, 이를 통해 윈도우의 범위를 지정하고 정렬 기준을 제공---OVER 절은 PARTITION BY와 ORDER BY 절로 구성
'기술스택 > SQL' 카테고리의 다른 글
MySQL VIEW / CTE WITH / CASE WHEN THEN (0) | 2023.10.11 |
---|---|
MySQL 연산자 우선순위, IN vs EXISTS (0) | 2023.10.11 |
MySQL INDEX 정리 (0) | 2023.10.08 |
MySQL 기본 완전 정리 (0) | 2023.10.05 |
SQL, JDBC, DBMS, DB란? (0) | 2023.09.04 |