Today I Learned (TIL)/SQL

[TIL] SQL 베이직 - 4회차

신짜린 2024. 7. 25. 21:07

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