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)
'DataBase > Oracle' 카테고리의 다른 글
[Oracle] 자릿수 채우기, 공백 채우기 - LPAD, RPAD (0) | 2022.11.20 |
---|---|
[Oracle] 조회 순번 매기기 - ROWNUM, ROW_NUMBER() (0) | 2022.11.20 |
[Oracle] NULL값을 치환해주는 함수 - NVL, NVL2, NULLIF (0) | 2022.11.20 |
[Oracle] Pro*C - 간단정리 (0) | 2022.10.10 |
[Oracle] 문자열 관련 함수 - SUBSTR, INSRT, REPLACE, TRANSLATE, CONCAT (0) | 2022.08.11 |