DB/SQL 20

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

DQL - 연산자

1. 연결 연산자 ||를 사용하여 여러 컬럼을 하나의 컬럼인 것처럼 연결하거나 컬럼과 리터럴을 연결할 수 있다. -- EMPLOYEE 테이블에서 사번, 직원명, 급여를 연결해서 조회 SELECT EMP_ID || EMP_NAME || SALARY AS "사번 직원명 급여" -- 하나의 컬럼인 것처럼 출력 FROM EMPLOYEE; -- EMPLOYEE 테이블에서 직원명, 급여를 리터럴과 연결해서 조회 -- '' : 문자열 "" : 별칭 SELECT EMP_NAME || '의 월급은 ' || SALARY || '원 입니다.' AS "급여 정보" FROM EMPLOYEE; 2. 논리 연산자 여러 개의 제한 조건 결과를 하나의 논리 결과로 만들어준다. AND는 여러 조건이 동시에 TRUE 일 경우에 TRUE를..

DB/SQL 2022.08.28

DQL - SELECT

1. SELECT SELECT 문은 테이블에서 데이터를 조회하기 위한 SQL 구문이다. SELECT 문을 사용하여 테이블의 특정 컬럼, 특정 행 또는 여러 테이블의 특정 컬럼과 행을 조회할 수 있다. 데이터를 조회한 결과를 Result Set이라고 한다. Result Set은 테이블 형태로 값을 반환하고 0개 이상의 행이 포함될 수 있다. 모든 컬럼을 조회할 경우 컬럼명 대신 기호 사용할 수 있다. -- 모든 컬럼 조회 시 컬럼 명 대신 '*' 기호 사용 가능 SELECT 컬럼 명 [, 컬럼명, ...] FROM 테이블 명 WHERE 조건식 ORDER BY 컬럼명 | 별칭 | 컬럼 순번 [ASC/DESC] [NULLS FIRST | LAST]; -- EMPLOYEE 테이블에서 전체 사원들의 사원, 이름,..

DB/SQL 2022.08.26

실습 환경 구축

실습 환경 설정 1. 사용자 계정 생성 ① SQL Developer에서 관리자 계정으로 DB에 접속한다. ② 아래의 sql 구문을 관리자 계정으로 실행한다. -- 사용자 계정 생성하는 구문 -- [표현법] CREATE USER 계정명 IDENTIFIED BY 비밀번호; CREATE USER KH IDENTIFIED BY KH; CREATE USER STUDY IDENTIFIED BY STUDY; SELECT * FROM DBA_USERS; -- 생성한 사용자 계정에게 최소한의 권한(데이터관리, 접속) 부여 GRANT RESOURCE, CONNECT TO KH; GRANT RESOURCE, CONNECT TO STUDY; 2. 실습 환경 스크립트 실행 ① SQL Developer에서 생성한 사용자 계정으로..

DB/SQL 2022.08.25