- 문자형 함수
- CHAR_LENGTH(문자열)
- 문자의 개수 반환
- LENGTH(문자열)
- 문자열에 할당된 바이트 수 반환
- CONCAT(문자열들)
- 문자열들 연결
- CONCAT_WS(구분자, 문자열들)
- 구분자와 함께 문자열 연결
- GROUP_CONCAT(문자열)
- 자동으로 , 로 넣어서 구분하여 나열
- LEFT(문자열, 길이)/RIGHT(문자열, 길이)
- 문자열의 왼쪽/오른쪽부터 길이만큼 문자열 반환
- SUBSTR(문자열, 시작위치, 길이)
- 지정한 위치부터 길이만큼 문자열 반환
- SUBSTRING_INDEX(문자열, 구분자, 인덱스)
- 지정한 구분자를 기준으로 문자열 분리 후 가져오는 함수
- SQL은 인덱스가 1부터 시작한다.
- LPAD(문자열, 길이, 채울문자열)/RPAD(문자열, 길이, 채울문자열)
- 지정한 길이에서 문자열을 제외한 빈칸을 특정 문자열로 채울 때 사용
- LTRIM(문자열)/RTRIM(문자열)
- 왼쪽/오른쪽 공백 제거
- TRIM(문자열)
- 양쪽 공백 제거
- TRIM(제거할문자열의방향(BOTH/LEADING/TRAILING) 제거할문자열 FROM 문자열)
- 양쪽에 있는 동일 문자열 제거
- FIELD(찾을문자열, 문자열들)
- 문자열들 중에서 찾을 문자열이 있으면 해당 문자열의 위치 반환
- 찾는 문자열이 없으면 0 반환
- FIND_IN_SET(찾을문자열, 문자열리스트)
- 문자열 리스트에서 지정한 문자열을 찾아서 위치 인덱스 반환
- LOCATE(부분문자열, 기준문자열)
- 기준 문자열에서 부분 문자열을 찾아서 위치 값 반환
- INSTR(기준문자열, 부분문자열) 동일
- ELT(찾을문자열위치, 문자열들)
- 지정한 위치에 있는 문자열 반환
- 위치 인덱스 값을 넣어서 찾는다.
- REPEAT(문자열, 횟수)
- 문자열 해당 횟수만큼 반복
- REPLACE(문자열, 원래문자열, 바꿀문자열)
- 문자열의 일부를 다른 다른 문자열로 대체
- STUFF(문자열, 시작인덱스, 크기, 바꿀문자열)
- 시작 인덱스부터 해당 크만큼 다른 문자열로 치환
- REVERSE(문자열)
- 문자열을 거꾸로 뒤집을 때 사용
- CHAR_LENGTH(문자열)
- 숫자형 함수
- CEILING(숫자)
- 숫자 올림
- FLOOR(숫자)
- 숫자 내림
- ROUND(숫자[, 반올림할자릿수])
- 지정한 위치에서 반올림
- TRUNCATE(숫자[, 버림할자릿수])
- 지정한 위치에서 버림
- ABS(숫자)
- 절대값 반환
- SIGN(숫자)
- 양수면 1, 음수면 -1 반환
- MOD(숫자1, 숫자2)
- 나머지 반환
- POWER(숫자1, 숫자2)
- n 제곱승 값 반환
- SQRT(숫자)
- 제곱근 값 반환
- RAND() / RAND(숫자)
- 매개변수 넣지 않으면 0과 1 사이 임의의 실수 값 반환
- 매개변수에 숫자를 넣으면 매번 동일한 임의의 값을 얻을 수 있다.
- ROUND(), TRUNCATE() 등 함수 같이 사용시 임의의 정수를 만들 수 있다.
- SELECT ROUND(RAND() * n); → 0~n 값 반환
- SELECT ROUND(RAND() * n) + 1; → 1~n 값 반환
- CEILING(숫자)
- 날짜/시간 함수
- NOW(), SYSDATE()
- 현재 날짜와 시간 반환
- CURDATE()
- 현재의 날짜 반환
- CURTIME()
- 현재의 시간 반환
- YEAR(), QUARTER(), MONTH(), DAY(), HOUR(), MINUTE(), SECOND()
- 연도, 분가, 월, 일, 시, 분, 초 반환
- DATEDIFF(끝일자, 시작일자)
- 지정한 기간 반환
- 끝일자-시작일자 동작이다.
- TIMESTAMPDIFF(단위, 시작일자, 끝일자)
- 기간을 지정한 단위 기준으로 반환
- 단위: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, QUARTER, YEAR
- ADDDATE(날짜, 기간)
- 지정한 날짜를 기준으로 그 기간만큼 더한 날짜 반환
- SUBDATE(날짜, 기간)
- 기간만큼 뺀 날짜 반환
- LAST_DAY(날짜)
- 해당 월의 마지막 일자 반환
- DAYOFYEAR(날짜)
- 현재 연도에서 며칠이 지났는지 반환
- MONTHNAME(날짜)
- 월을 영문으로 반환
- WEEKDAY(날짜)
- 요일을 정수로 반환
- NOW(), SYSDATE()
- 형 변환 함수
- CONVERT(값, 데이터타입), CAST(값 AS 데이터타입)
- 원하는 데이터 타입으로 변경
- CONVERT(값, 데이터타입), CAST(값 AS 데이터타입)
- 제어 흐름 함수
- IF(조건, 수식1, 수식2)
- 조건의 결과가 참이면 수식1, 거짓이면 수식2 반환
- IFNULL(수식1, 수식2)
- 수식1이 NULL이 아니면 수식1의 값 반환, NULL이면 수식2의 값 반환
- NULLIF(수식1, 수식2)
- 두 수식의 값을 비교하여 값이 같으면 NULL 반환, 값이 다르면 수식1의 값 반환
- CASE문 (다중 조건)
-
CASE WHEN 조건식1 THEN 값 WHEN 조건식2 THEN 값 ELSE 값 END AS 별칭열
- 모든 조건을 만족하지 않으면 ELSE 다음에 값을 넣어준다.
- CASE 문은 마지막에 END로 닫아줘야 한다.
- 예시
-
SELECT 담당자명, 고객회사명, 도시, CASE WHEN 마일리지 >= 100000 THEN 'VVIP고객' WHEN 마일리지 >= 10000 THEN 'VIP고객' ELSE '일반고객' END AS 마일리지구분 FROM 고객;
-
-
- IF(조건, 수식1, 수식2)
'SQL' 카테고리의 다른 글
[SQL] JOIN (CROSS, INNER, OUTER, SELF) (0) | 2024.03.22 |
---|---|
[SQL] WHERE 문 (GROUP BY, HAVING), 집계 함수 (0) | 2024.03.22 |
[SQL] 연산자 (논리, 집합, NULL, IN/BETWEEN, LIKE) (0) | 2024.03.22 |
[SQL] SELECT 문 (ORDER BY, LIMIT, DISTINCT) (0) | 2024.03.22 |
[SQL] DB와 SQL의 기본 (0) | 2024.03.22 |