1. 산술 연산자
수학에서 사용하는 사칙연산의 기능을 가진 연산자이다.
연산자 | 의미 | 우선순위 |
( ) | 우선순위 조정 | 1 |
* | 곱하기 | 2 |
/ | 나누기(0으로 나누면 NULL) | 2 |
+ | 더하기 | 3 |
- | 빼기 | 3 |
% | 나머지(0으로 나눌경우 NULL) | 3 |
2. 함수
- 문자 함수
구분 | 설명 |
ASCII(문자열) | 문자열의 가장 왼쪽 문자의 아스키 코드 값을 반환하는 함수 ASCII코드는 총 128개의 문자를 숫자로 표현할 수 있도록 정의해 놓은 코드 |
LOWER(문자열) | 문자열을 소문자로 변환 |
UPPER(문자열) | 문자열을 대문자로 변환 |
LTRIM(문자열) | 문자열의 왼쪽 공백 제거 |
RTRIM(문자열) | 문자열의 오른쪽 공백 제거 |
TRIM(문자열) | 문자열의 왼쪽과 오른쪽 공백 제거 |
SUBSTR(문자열, 시작점, [길이]) | 문자열의 원하는 부분만 잘라서 반환 길이를 명시하지 않았을 경우 문자열의 시작점부터 끝까지 반환 |
LENGTH(문자열) | 문자열의 길이 반환 |
REPLACE(문자열, 변경 전 문자열, 변경 후 문자열) | 문자열에서 변경 전 문자열을 찾아 변경 후 문자열로 바꿔주는 함수 |
LPAD(문자열, 길이, 문자) | 문자열이 설정한 길이가 될 때까지 왼쪽을 특정 문자로 채우는 함수 |
CONCAT(문자열1, 문자열2 [, 문자열3, …]) | 둘 이상의 문자열을 하나로 합쳐서 반환해주는 함 |
CONCAT_WS(구분값, 문자열1, 문자열2 [, 문자열3]) | 둘 이상의 문자열을 하나로 합쳐서 반환해주는 함수 문자 사이에 구분 값을 넣어 반환해줌 각 컬럼의 값을 구분값을 기준으로 합쳐서 하나의 컬럼의 값 처럼 사용하고 싶을 때 사용 |
-- ASCII(문자열)
SELECT ASCII("A"); --> 65
SELECT char(65); --> A
-----------------------------------------------------------------------------------------------
-- REPLACE(문자열, 변경 전 문자열, 변경 후 문자열)
SELECT REPLACE ("안녕하세요", "하세요", "ㅎㅎ"); --> 안녕ㅎㅎ
-----------------------------------------------------------------------------------------------
-- LPAD(문자열, 길이, 문자)
SELECT LPAD ("123", 5, "0"); --> 00123
-----------------------------------------------------------------------------------------------
-- CONCAT(문자열1, 문자열2 [, 문자열3, …])
SELECT CONCAT("A", "b", "C"); --> AbC
-----------------------------------------------------------------------------------------------
-- CONCAT_WS(구분값, 문자열1, 문자열2 [, 문자열3])
SELECT CONCAT_WS(",", "A", "b", "C");] --> A,b,C
- 숫자 함수
구분 | 설명 |
ABS(수) | 수의 절댓값을 반환 |
SIGN(수) | 수의 부호를 반환(양수면 1, 음수면 -1, 0이면 0) |
ROUND(수, 자릿수) | 수를 지정된 소수점 자릿수까지 반올림(자릿수를 지정하지 않으면 0) |
TRUNCATE(수, 자릿수) | 수를 지정된 소수점 자리수까지 버림(자릿수를 지정하지 않으면 문법 오류 발생) |
CEIL(수) | 소수점 이하의 수를 올림한 정수를 반환하여 자릿수를 지정할 필요가 없음 |
FLOOR(수) | 소수점 이하희 수를 버림한 정수를 반환하여 자릿수를 지정할 필요가 없음 |
MOD(수1, 수2) | 수1을 수2로 나눈 나머지를 반환(수2가 0일 경우 NULL 반환) |
- 날짜 함수
구분 | 설명 |
SYSDATE() | 현재의 연, 월, 일, 시, 분, 초를 반환 SELECT NOW()도 사용 가능 |
EXTRACE(특정단위 FROM 날짜데이터) | YEAR, MONTH, DAY, HOUR, MINUTE, SECOUND |
DATE_ADD(기준날짜, INTERVAL) | 기준 날짜에서 간격 만큼을 더함 |
DATE_SUB(기준날짜, INTERVAL) | 기준 날짜에 간격 만큼을 뺌 |
-- DATE_ADD(기준날짜, INTERVAL), DATE_SUB(기준날짜, INTERVAL)
SELECT DATE_ADD(SYSDATE(), INTERVAL 1 HOUR); -- 현재 시간에 한 시간 더하기
SELECT DATE_ADD(SYSDATE(), INTERVAL -1 HOUR); -- 현재 시간에 한 시간 빼기
SELECT DATE_sub(SYSDATE(), INTERVAL 1 HOUR); -- 현재 시간에 한 시간 빼기
- NULL 관련 함수
구분 | 설명 |
IFNULL(인수1, 인수2) | 첫번째 인수가 NULL이 아니면 첫번째 인수를 반환하고, 첫번재 인수가 NULL이면 두번째 인수를 반환 |
NULLIF(인수1, 인수2) | 인수1과 인수2가 같으면 NULL을 반환하고, 다르면 인수1 반환 |
COALESCE(인수1, 인수2, …) | NULL이 아닌 최초의 인수를 반환 |
-- IFNULL(인수1, 인수2)
SELECT IFNULL("1", "2"); --> 1
SELECT IFNULL(NULL, "2"); --> 2
-----------------------------------------------------------------------------------------------
-- NULLIF(인수1, 인수2)
SELECT NULLIF("A", "A"); --> NULL
SELECT NULLIF("A", "B"); --> "A"
-----------------------------------------------------------------------------------------------
-- COALESCE(인수1, 인수2, …)
SELECT COALESCE(NULL, NULL, 1, 100); --> 1
'Today I Learned (TIL) > SQL' 카테고리의 다른 글
[TIL] SQL 챌린지 - 6회차 (0) | 2024.07.29 |
---|---|
[TIL] SQL 챌린지 - 5회차 (0) | 2024.07.26 |
[TIL] SQL 베이직 - 3회차 (0) | 2024.07.25 |
[TIL] SQL 챌린지 - 4회차 (0) | 2024.07.24 |
[TIL] SQL 챌린지 - 3회차 (0) | 2024.07.22 |