본문으로 건너뛰기

6장_SQL 연산자와 함수

SQL 연산자

|| - 두 문자를 결합함

SELECT 'A' || 'B'
FROM dual; // 임시 테이블

SQL 함수

built-in 함수 - 이미 만들어둔 함수

숫자형 함수

함수명기능사용예결과 값
ABS절대값을 반환합니다.SELECT ABS(-123);123
ROUND숫자를 반올림합니다.SELECT ROUND(123.4567, 2);123.46
CEIL숫자를 올림합니다.SELECT CEIL(123.4567);124
FLOOR숫자를 내림합니다.SELECT FLOOR(123.4567);123
POWER숫자의 거듭제곱 값을 반환합니다.SELECT POWER(2, 3);8
SQRT숫자의 제곱근을 반환합니다.SELECT SQRT(16);4
MOD나머지 값을 반환합니다.SELECT MOD(10, 3);1

문자형 함수

함수명기능사용예결과 값
UPPER문자열을 대문자로 변환합니다.SELECT UPPER('Hello');'HELLO'
LOWER문자열을 소문자로 변환합니다.SELECT LOWER('HELLO');'hello'
TRIM문자열의 앞뒤 공백을 제거합니다.SELECT TRIM(' Hello ');'Hello'
SUBSTR문자열의 일부를 추출합니다.SELECT SUBSTR('Hello', 2, 3);'ell'
CONCAT하나 이상의 문자열을 결합합니다.SELECT CONCAT('Hello', ' ', 'World');'Hello World'
  • CONCAT, SUBSTR, TRIM을 많이씀
    • 그중 SUBSTR을 가장 많이 사용

숫자형 데이터를 반환하는 문자형 함수

  • LENGTH, INSTR 함수 많이 사용
함수명기능사용예결과 값
ASCII문자의 ASCII 코드 값을 반환합니다.SELECT ASCII('A') FROM DUAL;65
CHAR_LENGTH문자열의 길이를 반환합니다.SELECT CHAR_LENGTH('Hello') FROM DUAL;5
LENGTH문자열의 길이를 반환합니다.SELECT LENGTH('Hello') FROM DUAL;5
INSTR하나의 문자열 내에서 다른 문자열의 위치를 반환합니다.SELECT INSTR('Hello', 'e') FROM DUAL;2

날짜형 함수

함수명기능사용예결과 값
NOW현재 날짜와 시간을 반환합니다.SELECT NOW();현재 날짜와 시간
CURDATE현재 날짜를 반환합니다.SELECT CURDATE();현재 날짜
DATE_ADD날짜에 특정 기간을 더합니다.SELECT DATE_ADD('2020-01-01', INTERVAL 1 DAY);2020-01-02

형변환 함수

함수명기능사용예결과 값
TO_NUMBER문자열을 숫자로 변환합니다.SELECT TO_NUMBER('123.45', '999.99') FROM DUAL;123.45
TO_CHAR숫자나 날짜를 문자열로 변환합니다.SELECT TO_CHAR(123.45, '999.99') FROM DUAL;'123.45'
TO_DATE문자열을 날짜로 변환합니다.SELECT TO_DATE('2023-01-01', 'YYYY-MM-DD') FROM DUAL;2023-01-01

CASE 표현식

SELECT emp_name, age
,CASE WHEN age BETWEEN 0 AND 19 THEN '10대'
WHEN age BETWEEN 20 AND 29 THEN '20대'
WHEN age BETWEEN 30 AND 39 THEN '30대'
WHEN age BETWEEN 40 AND 49 THEN '40대'
WHEN age BETWEEN 50 AND 59 THEN '50대'
ELSE '60대 이상'
END ages
FROM EMP03;