DB 25

OBJECT - SEQUENCE

SEQUENCE SEQUENCE는 오라클에서 제공하는 객체로 순차적으로 정수 값을 자동으로 생성한다. SEQUENCE 생성 SEQUENCE는 CREATE 구문을 사용해서 생성한다. CREATE SEQUENCE 시퀀스명 [START WITH 숫자] [INCREMENT BY 숫자] [MAXVALUE 숫자] [MINVALUE 숫자] [CYCLE | NOCYCLE] [CACHE | NOCACHE] VIEW 옵션 -- EMPLOYEE 테이블의 PK 값을 생성할 시퀀스 생성 CREATE SEQUENCE SEQ_EMPNO START WITH 300 -- 300부터 시작 INCREMENT BY 5 MAXVALUE 310 NOCYCLE NOCACHE; * 현재 계정이 가지고 있는 시퀀스들에 대한 정보를 조회하는 데이터 ..

DB/SQL 2022.09.08

OBJECT - VIEW

VIEW VIEW는 오라클에서 제공하는 SELECT문을 저장할 수 있는 객체로 가상의 테이블이다. 테이블과는 다르게 데이터를 저장하고 있진 않지만 사용자는 테이블을 사용하는 것과 동일하게 사용이 가능하다. 테이블에 대한 SQL만 저장되어 있어 VIEW에 접근할 때 SQL을 수행하고 결과값을 가져온다. 뷰는 데이터를 저장하고 있지 않은 가상 테이블이지만 DML(INSERT, UPDATE, DELETE) 작업이 가능하다. VIEW 생성 VIEW는 CREATE 구문을 사용해서 생성한다. 서브 쿼리의 SELECT 절에 함수가 사용된 경우 반드시 별칭을 지정해야 한다. CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW 뷰명 AS 서브 쿼리 [WITH CHECK OPTION] [WITH ..

DB/SQL 2022.09.07

DCL(Data Control Language)

DCL(Data Control Language) 데이터를 제어하는 구문으로 계정에게 시스템 권한 또는 객체에 대한 접근 권한을 부여(GRANT)하거나 회수(REVOKE)하는 구문이다. 시스템 권한 데이터베이스에 접근하는 권한, 오라클에서 제공하는 객체를 생성할 수 있는 권한 CREATE SESSION : 데이터베이스에 접속할 수 있는 권한 CREATE TABLE : 테이블을 생성할 수 있는 권한 CREATE VIEW : 뷰를 생성할 수 있는 권한 CREATE USER : 계정을 생성할 수 있는 권한 DROP USER : 계정을 삭제할 수 있는 권한 [표현법] GRANT 권한1, 권한2, ... TO 사용자계정; : 권한 부여 REVOKE 권한1, 권한2, ... FROM 사용자계정; : 권한 회수 ① S..

DB/SQL 2022.09.06

TCL(Transaction Control Language)

TCL(Transaction Control Language) 트랜잭션을 제어하는 언어이다. 데이터베이스는 데이터의 변경 사항(INSERT, UPDATE, DELETE)들을 묶어서 하나의 트랜잭션에 담아서 처리한다. DML(INSERT, UPDATE, DELETE)을 대상으로 진행이 된다. 트랜잭션 하나의 논리적인 작업 단위를 트랜잭션이라고 한다. ex) ATM에서 현금 출금 카드 삽입 메뉴 선택 금액 확인 및 인증 실제 계좌에서 금액만큼 인출 현금 인출 완료 각각의 업무들을 묶어서 하나의 작업 단위로 만드는 것을 트랜잭션이라고 한다. COMMIT 모든 작업들을 정상적으로 처리하겠다고 확정하는 구문이다. ROLLBACK 모든 작업들을 취소 처리하겠다고 확정하는 구문이다. (마지막 COMMIT 시점으로 돌아..

DB/SQL 2022.09.05

DML(Data Manipulation Language)

DML(Data Manipulation Language) 데이터 조작 언어로 테이블에 값을 삽입(INSERT), 수정(UPDATE), 삭제(DELETE)하는 구문이다. INSERT 테이블에 새로운 행을 추가하는 구문이다. -- 테스트에 사용할 테이블 생성 CREATE TABLE EMP_01 ( EMP_ID NUMBER PRIMARY KEY, EMP_NAME VARCHAR2(30) NOT NULL, DEPT_TITLE VARCHAR2(30), HIRE_DATE DATE DEFAULT SYSDATE ); 표현법 1) 1) INSERT INTO 테이블명 VALUES(값, 값, 값, ..., 값); - 테이블의 모든 컬럼에 대한 값을 INSERT 할 때 사용한다. - 컬럼 순번을 지켜서 VALUES에 값을 나열..

DB/SQL 2022.09.04

DDL(Data Definition Language)

DDL(Data Definition Language) 데이터 정의 언어로 객체(OBJECT)를 생성하고(CREATE), 수정하고(ALTER), 삭제(DROP)하는 구문이다. 오라클 객체 종류에는 테이블(TABLE), 뷰(VIEW), 시퀀스(SEQUENCE), 인덱스(INDEX), 패키지(PACKAGE), 프로시저(PROCEDUAL), 함수(FUNCTION), 트리거(TRIGGER), 동의어(SYNONYM), 사용자(USER) 등이 있다. CREATE 데이터베이스 객체(테이블, 뷰, 사용자 등)를 생성하는 구문이다. 1) 테이블 생성 테이블은 행과 열로 구성되는 가장 기본적인 데이터베이스 객체로 데이터베이스 내에서 모든 데이터는 테이블에 저장된다. CREATE TABLE 테이블명 ( 컬럼명 자료형(크기) ..

DB/SQL 2022.09.03

SUBQUERY

SUBQUERY SQL 문장 안에 포함되어 있는 또 다른 SQL 문장을 서브 쿼리라 하며, 메인 쿼리를 보조하는 역할을 하는 쿼리문이다. 서브 쿼리는 반드시 괄호 ( ) 안에 넣어 표현해야 하고 메인 쿼리가 실행되기 전 한 번만 실행된다. -- 서브 쿼리 예시 1) -- 1. 노옹철 사원과 같은 부서원들을 조회 -- 1-1) 노옹철 사원의 부서 코드 조회 (D9) -- SUBQUERY → 먼저 실행 SELECT DEPT_CODE FROM EMPLOYEE WHERE EMP_NAME = '노옹철'; -- D9 -- 1-2) 부서 코드가 노옹철 사원의 부서 코드와 동일한 사원들을 조회 - MAINQUERY SELECT EMP_NAME, DEPT_CODE FROM EMPLOYEE WHERE DEPT_CODE =..

DB/SQL 2022.09.02

INNER JOIN & OUTER JOIN

JOIN JOIN은 하나 이상의 테이블에서 데이터를 조회하기 위해 사용되는 구문이다. JOIN은 각 테이블 간에 특정 조건을 만족하는 데이터를 합쳐서 하나의 결과(Result Set)로 조회한다. INNER JOIN INNER JOIN은 조인하려는 테이블들에서 공통된 컬럼의 값이 일치되는 행들을 하나의 행으로 연결하여 결과(Result Set)를 조회한다. INNER JOIN은 공통된 컬럼에서 공통된 값이 없거나 컬럼에 값이 없는 행은 조회되지 않는다. 1) 오라클 전용 구문 SELECT 컬럼,...,컬럼 FROM 테이블1, 테이블2,... WHERE 테이블1.컬럼명 = 테이블2.컬럼명; FROM절에 조인하려는 테이블들을 콤마로(,) 구분하여 나열한다. WHERE절에 매칭 시킬 컬럼명에 대한 조건을 제시..

DB/SQL 2022.09.01

GROUP BY & HAVING

GROUP BY 그룹 함수는 전체 데이터를 대상으로 작업하기 때문에 단 한 개의 결과 값만 리턴한다. 그룹 함수와 여러 개의 컬럼과 함께 사용하면 출력하는 데이터의 개수가 맞지 않아 오류 발생한다. 여러 개의 그룹을 설정하고 그룹 별로 그룹 함수의 결과 값을 산출하기 위해서는 그룹 함수가 적용될 그룹의 기준을 GROUP BY 절에 기술하여 사용한다. GROUP BY 절은 WHERE와 ORDER BY 절 사이에 위치한다. GROUP BY 절에는 별칭을 사용할 수 없고 반드시 컬럼명을 적어 주어야 한다. SELECT DEPT_CODE FROM EMPLOYEE GROUP BY DEPT_CODE ORDER BY DEPT_CODE; -- 각 부서별 그룹으로 묶어서 부서별 총합을 구한 결과를 조회 SELECT DE..

DB/SQL 2022.08.30

함수(FUNCTION)

함수는 하나의 프로그램에서 반복적으로 사용되는 부분들을 분리하여 작성해 놓은 작은 서브프로그램이다. 함수는 호출하여 사용하고 호출하면서 값을 전달하고 결과를 리턴 받을 수도 있다. 함수는 SELECT, WHERE, ORDER BY, GROUP BY, HAVING 절에 기술할 수 있다. 단일 행 함수는 각 행마다 반복적으로 적용되어 입력받은 행의 개수만큼 결과 반환하는 함수이다. 그룹 함수는 특정 행들의 집합으로 그룹이 형성되어 적용된다. 각 그룹 당 1개의 결과 반환하는 함수이다. 단일 행 함수 1) 문자 처리 함수 LENGTH / LENGTHB LENGTH('문자값') : 글자 수 반환 LENGTHB('문자값') : 글자의 바이트 수 반환 한글 한 글자 → 3BYTE 영문자, 숫자, 특수문자 한 글자 ..

DB/SQL 2022.08.29