본문 바로가기

DataBase/Oracle

[Oracle] DML과 DECODE, CASE

SQL문의 종류

DDL(Data Definition Language) - 데이터 정의 언어

데이터와 그 구조를 정의

  • CREATE : 데이터베이스 객체를 생성합니다.
  • DROP : 데이터베이스 객체를 삭제합니다.
  • ALTER : 기존에 존재하는 데이터베이스 객체를 다시 정의하는 역할을 합니다.

 

DML(Data Manipulation Language) - 데이터 조작 언어

데이터의 검색과 수정등의 처리

  • INSERT : 데이터베이스 객체에 데이터를 입력
  • DELETE : 데이터베이스 객체에 데이터를 삭제
  • UPDATE : 기존에 존재하는 데이터베이스 객체안에 데이터 수정
  • SELECT : 데이터베이스 객체로부터 데이터를 검색

 

DCL(Data Control Language) - 데이터 제어 언어

데이터베이스 사용자의 권한을 제어

  • GRANT : 데이터베이스 객체에 권한을 부여
  • REVOKE : 이미 부여된 데이터베이스객체의 권한을 취소

 

 

 

DML

INSERT

테이블 안에 데이터를 삽입하는 역할을 한다.

INSERT INTO table_name(column1, column2, ...)
VALUES (데이터, '데이터', ...)

--테이블의 모든 컬럼에 데이터를 삽입할 경우 컬럼명을 생략할 수 있음(모든 컬럼의 순서대로 데이터를 입력)
INSERT INTO table_name
VALUES (데이터, '데이터', ...)
  • 실제 데이터는 VALUES괄호 () 안에 입력하고 문자열은 단일 따옴표 ( ' ' ) 로 둘러싼다.
  • 테이블 이름 옆에 괄호를 생략할 경우 모든 컬럼을 VALUES()안에 입력한다.

SELECT문장을 이용한 INSERT

INSERT INTO DEPT
SELECT * FROM SCOTT>DEPT;

 

 

UPDATE

테이블 안의 데이터를 수정

UPDATE table_name
SET column1=값(고칠내용), column2=값, ...
WHERE 조건

 

 

DELETE

테이블 안의 데이터를 삭제

DELETE FROM table_name
WHERE 조건;

--테이블의 모든 행 삭제
DELETE FROM table_name

 

 

SELECT

데이터베이스로부터 저장되어있는 데이터를 검색하는데 사용

SELECT [DISTINCT] {*, column [alias], ...}
FROM table_name
[WHERE condition]
[ORDER BY {column, expression} [ASC|DESC];
  • DISTINCT : 중복되는 행을 제거
  • * : 해당 테이블의 모든 column을 출력5
  • ORDER BY : 질의 결과 정렬을 위한 옵션(ASC : 오름차순, DESC : 내림차순)

 

 

 

CASE

조건이나 값에 해당하는 결과값을 return하는데 사용한다.

CASE 대상값 
  WHEN 값1 THEN 결과1
  WHEN 값2 THEN 결과2
  ELSE 결과3
END

 

 

DECODE

SELECT 구문으로 IF-ELSE누리를 제한적으로 구현한 오라클 DBMS 전용 함수

DECODE(컬럼, 조건1, 결과1, 조건2, 결과2, ...)

함수 프로그래밍에서의 if else와 비슷한 기능을 수행

DECODE(GENDER, 'M', '남자', 'F', '여자', '기타')

if(GENDER == 'M') return '남자';
else if (GENDER == 'F') return '여자';
else return '기타';

와 의미가 동일

 

+추가

 

DCODE 함수는 파라미터 개수에 따라 함수 사용법이 다르다

 

DECODE(A, B, C)

A가 B값과 일치할경우 C를 출력하고 그렇지 않으면 NULL을 출력

 

DECODE(A, B, C, D)

A가 B값과 일치하면 C를 출력하고 그렇지 않으면 D를 출력

 

DECODE(A, B, C, D, E)

A가 B와 일치하면 C를 출력하고 A가 D와 일치하면 E를 출력하고 그렇지 않으면 NULL을 출력

 

DECODE(A, B, C, D, E, F)

A가 B와 일치하면 C를 출력하고 A가 D와 일치하면 E를 출력하고 그렇지 않으면 F를 출력

 

 

 

 


[ORACLE] 파라미터 개수에 따른 DECODE 함수 사용법 (garimoo.github.io)

 

MOVED TO MEDIUM

moved to medium

garimoo.github.io