DB

    [DB] TRIGGER

    ✍TRIGGER(트리거) : 테이블이나 뷰가 INSERT, UPDATE, DELETE 등의 DML문에 의해 변경될 경우(테이블 이벤트 발생 시) 자동으로(묵시적으로) 실행될 내용을 정의하여 저장하는 객체(PROCEDURE) 1. 트리거 종류 1) SQL문의 실행 시기에 따른 분류 BEFORE TRIGGER : SQL문 실행 전 트리거 실행 AFTER TRIGGER : SQL문 실행 후 트리거 실행 2) SQL문의 의해 영향을 받는 각 ROW에 따른 분류 ROW TRIGGER : SQL문 각 ROW에 대해 한번씩 실행 트리거 생성 시 FOR EACH ROW 옵션 작성 - FOR EACH ROW 안에 아래 두개를 작성할 수 있는데 :OLD : 참조 전 열의 값 (INSERT: 입력 전 자료, UPDATE :..

    [DB] PL/SQL , (타입,레퍼런스)변수, 조건문, CASE문, 반복문, FOR , 예외처리

    ✍ PL/SQL (Procedural Language extension to SQL) : 오라클 자체에 내장되어있는 절차적 언어(Procedual Language) - SQL 문장 내에서 변수의 정의, 조건처리(IF), 반복처리(LOOP, FOR, WHILE)등을 지원하여 SQL의 단점을 보완 1. PL/SQL 구조 ⭐ 선언부(DECLARE SECTION) : DECLARE로 시작, 변수나 상수를 선언하는 부분 ⭐ 실행부(EXECUTABLE SECTION) : BEGIN으로 시작, 제어문, 반복문, 함수 정의등 로직 기술 ⭐ 예외처리부(EXCEOTION SECTIOIN) : EXCEPTION으로 시작, 예외사항 발생 시 해결하기 위한 문장 기술 2. PL/SQL의 장점 PL/SQL문은 BLOCK 구조로 ..

    [DB] VIEW, SEQUENCE, INDEX

    [DB] VIEW, SEQUENCE, INDEX

    ✍VIEW : SELECT문의 실행 결과(RESULT SET)을 저장하는 객체 논리적 가상 테이블 (실행결과는 진짜 테이블이 아닌 조회 결과이다.) ➡ 테이블의 모양을 하고 있지만 실제 값을 저장하고 있진 않는다. 1. VIEW 사용 목적 - 대체로 조회 용도로만 사용(노출은 되어도 악의적인 이용은 못하게 ) 1) 복잡한 SELECT 문의 쉬운 재사용 : 이렇게 길게 쓸 필요 없이 VIEW 이름만 정해주면된다 VIEW ➡ SELECT * FROM VIEW 이름; SELECT~ FROM ~ JOIN ~ JOIN ~ WHERE ~ (SELECT) GROUP BY ~ HAVING ~ ORDER BY ~ 2) 테이블의 진짜 모습을 감출 수 있어 보안상 유리 : 테이블의 진짜 이름을 감춰서 바이러스 프로그램으로부..

    [DB] DCL :: 권한, 사용자 계정 생성하는 법

    ✍DCL(Data Control Language) : 데이터 제어 언어 데이터 베이스, 데이터베이스 내의 객체에 대한 접근 권한을 제어(부여, 회수)하는 언어 GRANT : 권한 부여 REVOKE : 권환 회수, 취소 조작 ex) 시험 성적 조작(점수라는 데이터를 바꿈) 제어 : 자동차 제어(자동차라는 물체의 움직임을 바꿈) 🚩1. 시스템 권한 부여 사용자에게 시스템 권한을 부여할 때 사용 표기법 GRANT 권한1, 권한2, ... -- TO 사용자 이름; [ 시스템 권한 종류 ] CRETAE SESSION 데이터베이스 접속 권한 CREATE TABLE 테이블 생성 권한 CREATE VIEW 뷰 생성 권한 CREATE SEQUENCE 시퀀스 생성 권한 CREATE PROCEDURE 함수(프로시져) 생성 ..

    [DB] DDL :: ALTER , DROP

    ✍ALTER : 객체를 수정하는 구문 표현식 테이블 객체 수정 ALTER TABLE 테이블명 수정할 내용; 👉수정할 내용 컬럼 추가/수정/삭제, 제약조건 추가/삭제 컬럼 자료형 변경, DEFAULT값 변경 테이블명 변경, 컬럼명, 제약조건 이름 변경 🚩 1. 컬럼 추가, 수정, 삭제 1) 컬럼 추가(ADD) ALTER TABLE 테이블명 ADD (새로운컬럼명 데이터타입(크기)) ➡ ADD 뒤에 COLUMN 생략가능 ➡ 새로운 컬럼이 추가되었지만 데이터는 없기 때문에 값이 NULL이다. 1-1) 컬럼 추가 시 DEFAULT값 지정 ALTER TABLE 테이블명 ADD (새로운컬럼명 데이터타입(크기) DEFAULT 기본값) 2) 컬럼 수정(MODIFY) 데이터 타입, 기본값(DEFAULT) 수정 ALTER ..

    [DB] DML (INSERT, UPDATE, MERGE, DELETE)

    더보기 목차 1. INSERT 2. UPDATE 3. MERGE 4. DELETE ✍DML(Data Manipulation Language) : 데이터 조작 언어 테이블에 값을 삽입하거나(INSERT), 수정하거나(UPDATE), 삭제(DELETE)하는 구문 COMMIT, ROLLBACK 할 때 주의❗ 종류 SELECT INSERT UPDATE DELETE 🚩 INSERT 테이블에 새로운 행을 추가하는 구문 1) ⭐ INSERT INTO 테이블명 VALUES(데이터, 데이터, ...)⭐ : 테이블에 모든 컬럼에 대한 값을 추가할 때 사용하는데 INSERT하고자 하는 컬럼이 모든 컬럼인 경우 컬럼명 생략 가능하다. INSERT INTO 테이블명 VALUES(데이터1, 데이터2, 데이터3); 결과) 1 행 ..

    [DB] SUBQUERY

    더보기 목차 1. 단일행 (+ 단일열) 서브쿼리 (SINGLE ROW SUBQUERY) 2. 다중행 서브쿼리 (MULTI ROW SUBQUERY) 3.(단일행) 다중열 서브쿼리 4. 다중행 다중열 서브쿼리 5. 상[호연]관 서브쿼리 6. 스칼라 서브쿼리 7. 인라인 뷰(INLINE-VIEW) 8. WITH 9. RANK() OVER / DENSE_RANK() OVER ✍SUBQUERY( 서브쿼리) 하나의 SQL문 안에 포함된 또다른 SQL문 메인쿼리(기존쿼리)를 위해 보조 역할을 하는 쿼리문 SELECT, FROM, WHERE, HAVGIN 절에서 사용가능 : SELECT 문장 안에 포함된 또 다른 SELECT 문장으로 메인 쿼리가 실행되기 전 한 번만 실행된다. 비교 연산자의 오른쪽(WHERE절,GRO..

    [DB] JOIN

    더보기 목차 1. INNER JOIN (내부조인) 2. OUTER JOIN (외부조인) 1) LEFT [OUTER] JOIN 2) RIGHT [OUTER] JOIN 3) FULL [OUTER] JOIN 3. CROSS JOIN (교차 조인) 4. NON EQUAL JOIN (비등가 조인) 5. SELF JOIN (자체 조인) 6. NATURAL JOIN (자연 조인) 7. 다중 조인 [ JOIN 용어 정리 ] 오라클 SQL : 1999표준(ANSI) 등가 조인 (= 을 사용하기 때문에) 내부 조인(INNER JOIN), JOIN USING / ON + 자연 조인(NATURAL JOIN, 등가 조인 방법 중 하나) 포괄 조인 왼쪽 외부 조인(LEFT OUTER), 오른쪽 외부 조인(RIGHT OUTER) ..

    [DB] SELECT문 해석 순서 | GROUP BY, ORDER BY,HAVING, 집계 함수

    [DB] SELECT문 해석 순서 | GROUP BY, ORDER BY,HAVING, 집계 함수

    ⭐ SELECT문 해석 순서 ⭐ 5: SELECT 컬럼명 | 계산식 | 함수 AS 별칭 1: FROM 참조할 테이블명 2: WHERE 컬럼명 | 함수식 비교연산자 비교값 3: GROUP BY 그룹으로 묶을 컬럼명 4: HAVING 그룹함수식 비교연산자 비교값 6: ORDER BY 컬럼명 | 별칭 | 컬럼순서 [ASC|DESC] [NULLS FIRST | LAST]; 확인필요) SELECT, WHERE, GROUP BY, HAVING 에는 서브쿼리가 들어갈 수 있다. 예제. EMPLOYEE 테이블에서 부서별 급여 합, 급여 평균(소수점 아래 둘째 자리 반올림), 인원 수를 부서코드 오름차순으로 조회 SELECT DEPT_CODE, SUM(SALARY) "급여 합", ROUND( AVG(SALARY) ,1 ..

    [DB] 함수(Function)_단일행, 그룹

    [DB] 함수(Function)_단일행, 그룹

    ✍함수(Function) : 하나의 큰 프로그램에서 반복적으로 사용되는 부분들을 분리하여 작성해 놓은 작은 서브 프로그램 호출하며 값을 전달하면 결과를 리턴하는 방식으로 사용 데이터가 모여지는 기반으로 데이터를 한 곳에 모은다. 단일행 함수(SINGLE ROW) : 컬럼에 기록된 N개의 값을 읽어 N개의 결과를 반환 각 행마다 반복적으로 적용되어 입력 받은 행의 개수만큼 결과 반환 그룹 함수(SINGLE ROW) : 컬럼에 기록된 N개의 값을 읽어 1개의 결과를 반환 특정 행들의 집합으로 그룹이 형성되어 적용됨 그룹 당 1개의 결과 반환 함수가 적용될 수 있는 위치 : SELECT절, WHERE절, ORDER BY절, GROUP BY절, HAVING절 단일행 함수 🚩 문자처리 함수 1. LENGTH 주어..