본문 바로가기
Dev/DataBase

『DataBase』 Oracle SQL 기초 문법

by 세대교체 2024. 11. 18.

MySQL, MariaDB만 사용해 왔는데 어쩌다 보니 Oracle을 사용하게 되었다.

다음에 진행할 프로젝트에서 ORM을 사용할지 Mapper를 사용할지 결정된 게 없기 때문에 우선 Oracle 기초 문법부터 살펴보자.

 

 

SELECT문과 별칭 사용

  • DISTINCT 키워드를 사용하여 조회 결과에서 중복된 행을 제거할 수 있다.
  • AS 키워드를 사용하여 열이나 테이블에 별칭을 지정할 수 있다.

 

 

날짜 함수

  • NEXT_DAY(date, char): 주어진 날짜 이후의 다음 특정 요일의 날짜를 반환한다.
  • ADD_MONTHS(date, n): 주어진 날짜에 n개월을 더하거나 뺀다.
  • MONTHS_BETWEEN(date1, date2): 두 날짜 사이의 개월 수를 계산한다.

 

 

조건문(CASE) 사용

CASE 문은 SQL에서 조건에 따라 다른 값을 반환한다. 프로그래밍 언어의 if-else 문과 유사하다.

구조는 두 가지가 존재하는데 다음과 같다.

 

1. 단순 CASE 표현식

 

2. 검색 CASE 표현식

 

예시

  • job_id에 따라 다른 보너스율을 적용, ELSE는 위의 조건에 모두 해당하지 않을 때 적용된다.

 

 

문자열 함수

Oracle SQL은 문자열을 조작하기 위한 다양한 함수를 제공한다.

  • CHR(n): ASCII 코드 n에 해당하는 문자를 반환한다.
  • ASCII(char): 문자 char에 해당하는 ASCII 코드를 반환한다.
  • LOWER(string), UPPER(string): 문자열을 소문자나 대문자로 변환한다.
  • INITCAP(string): 문자열의 각 단어의 첫 글자를 대문자로 변환한다.
  • LPAD(string, length, pad_string): 문자열의 왼쪽을 pad_string으로 채워 length 길이의 문자열을 만든다.
  • RPAD(string, length, pad_string): 문자열의 오른쪽을 채운다.

 

 

숫자 함수

  • ROUNDTRUNC 함수는 소수점 이하의 숫자를 처리할 때 사용한다.
  • CEIL(n): n보다 크거나 같은 최소 정수를 반환한다.
  • FLOOR(n): n보다 작거나 같은 최대 정수를 반환한다.
  • MOD(n, m): n을 m으로 나눈 나머지를 반환한다.
  • POWER(n, m): n의 m 제곱을 계산한다.

 

 

데이터 형 변환 함수

데이터 타입을 변환하거나 형식을 지정할 때 함수를 사용할 수 있다.

 

TO_CHAR 함수에서 포맷 문자열을 사용하여 숫자의 표시 형식을 지정한다.

  • 9: 숫자 자리 표시
  • ,: 천 단위 구분자
  • .: 소수점

 

 

날짜를 문자열로 변환할 때도 포맷을 지정할 수 있다.

 

 

NULL 관련 함수

데이터베이스에서 NULL 값"알 수 없음"을 의미하며 이를 처리하기 위한 함수들이 있다.

  • NVL(expr1, expr2): expr1이 NULL이면 expr2를 반환하고, 아니면 expr1을 반환한다.
  • NVL2(expr1, expr2, expr3): expr1이 NULL이 아니면 expr2를, NULL이면 expr3을 반환한다.
  • COALESCE(expr1, expr2, ..., exprn): 가장 왼쪽부터 NULL이 아닌 첫 번째 표현식을 반환한다.
  • NULLIF(expr1, expr2): expr1과 expr2가 같으면 NULL, 다르면 expr1을 반환한다.

 

 

DUMP 함수

표현식의 내부 데이터를 문자열로 반환한다.

ex) salary 열의 데이터 타입, 길이, 내부 표현 등을 보여준다.

 

 

시스템 정보 조회 (SYS_CONTEXT)

SYS_CONTEXT 함수데이터베이스 환경과 세션 정보를 조회하는 데 사용된다.

  • 구문: SYS_CONTEXT('namespace', 'parameter')

 

 

ORDER BY로 데이터 정렬

조회 결과를 특정 열이나 표현식을 기준으로 정렬한다.

  • 기본적으로 오름차순(ASC)이며, 내림차순은 DESC를 사용한다.
  • 여러 개의 정렬 기준을 지정할 수 있다.
  • NULLS FIRST 또는 NULLS LAST를 사용하여 NULL 값의 정렬 위치를 지정한다.

 

 

집계 함수