Database
-
[ SQL ] 패키지 선언Database/SQL (oracle, mysql) 2019. 6. 4. 14:34
패키지 - 동일한 프로시저명 또는 함수명을 구분한다 (NameSpace개념) 패키지 선언! CREATE OR REPLACE PACKAGE 패키지명 IS 정의될 저장프로시저와 저장함수 END; / 패키지 실행! BODY CREATE OR REPLACE PACKAGE BODY 패키지명 IS 정의될 저장 프뢰시저와 저장함수 END; / 실행) EXEC 패키지명.저장프로시저명 트리거 trigger - 이벤트 처리 ~ 했을때 수반되는 처리 - 특정테이블에 이벤트(insert, delete, update)가 발생 했을 시 다른테이블에 연관된 내용을 변경하도록 하는일을 의미한다. 형식) CREATE OR REPLACE TRIGGER 트리거명 ( BEFORE | AFTER ) (INSERT | DELETE | UPDA..
-
[SQL] PL/ SQLDatabase/SQL (oracle, mysql) 2019. 5. 31. 18:56
PL / SQL - SQL 의 장점은 잘만든 쿼리문 하나로 원하는 데이터를 검색 조작할 수 있다는 점인데, SQL문 자체는 비 절차적 언어이기 때문에 몇개의 쿼리문 사이에 어떠한 연결 및 절차성이 있어야 하는 경우는 사용할 수 없다. - IF문, FOR문 안에 SQL를 사용할 수 있다. - 이 점을 극복하기 위해서 SQL언어에 절차적인 프로그래밍 언어를 추가해서 만든 것이 PL/SQL이다. PL / SQL 구조 DECLARE SECTION (선언부) - PL / SQL에서 사용하는 모든 변수나 상수를 선언 ex. b emp.empno%type;
-
[SQL] SEQUENCE 시퀀스Database/SQL (oracle, mysql) 2019. 5. 31. 15:41
[SQL] SEQUENCE 시퀀스 - 자동번호 부여 - 숫자값이 일정한 규칙에 의해서 연속적으로 자동증가. - 테이블에 종속적이지 않다(테이블과 독립적) 형식) CREATE SEQUENCE sequence_name [INCREMENT BY] 증가치 [START WITH] 초기값 [MAXVALUE n|NOMAXVALUE] [MINVALUE|NOMINVALUE] [CYCLE|NOCYCLE] [CACHE|NOCACHE]; maxvalue: 시퀀스가 가질 수 있는 최대값 지정. nomaxvalue일 경우 ascending순서일 경우 10의 27승 descending일 경우 -1 minvalue: 시퀀스가 가질 수 있는 최대값 지정. nominvalue일 경우 ascending 1 descending 10의 26..
-
[SQL] VIEW 란?Database/SQL (oracle, mysql) 2019. 5. 31. 14:36
VIEW 테이블이 없다면 뷰가 만들어질 수 없다. - SELECT를 지칭한다. - 기본테이블에 대한 하나의 쿼리문 (TEXT를 저장하는 객체) - 자주 사용되는 복잡하고 긴 쿼리문을 저장하는 객체 - 특정컬럼만 보여지게끔 하여 보안을 목적으로 사용한다. - 수정을 불가능하게 read only를 설정할 수 있다. CREATE VIEW 뷰이름 AS SELECT문 권한부여 1. 관리자 계정 연결 conn system/oracle 2. 권한 부여 GRANT SYSTEM_PRIVILIEGE TO USER_NAME; 관한 회수 REVOKE SYSTEM_PRIVAILIEGE FROM USER_NAME; VIEW생성시 원본데이터 변경시에 생성된 테이블의 데이터가 반영된다. 한마디로 자주 조회하는 부분들을 객체화 하는 ..
-
[SQL] 참조 CASCADE관한 설명Database/SQL (oracle, mysql) 2019. 5. 30. 19:55
※ 참고) create table emp5 ( deptno number(2) references 참조테이블명(참조컬럼명) on delete cascade --------- 부모 (부서)테이블에서 특정 번호(예:10번부서)를 삭제했을때 자식 (사원)테이블에서 10번 부서에 근무하는 사원들을 삭제!! ); create table emp5 ( deptno number(2) references 참조테이블명(참조컬럼명) on delete set null --------- 부모 (부서)테이블에서 특정 번호(예:10번부서)를 삭제했을때 자식 (사원)테이블에서 10번 부서에 근무하는 사원들의 deptno를 null값으로 변경!! ); 테스트1) drop table dept5; create table dept5 as s..
-
[SQL] 무결성 제약조건Database/SQL (oracle, mysql) 2019. 5. 30. 19:55
무결성 제약조건 - Data integrity constraint rule 무결성을 보장해 주는 것 테이블에 부적절한 자료가 입력(INSERT, UPDATE) 되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러가지 규칙 ( 테이블 생성후 컬럼에 규칙 정의하는 것도 가능 ) 1. NOT NULL EMPNO NUMBER(4) CONSTRAINT EMP2_EMPNO_NN NOT NULL, - 해당 컬럼값으로 NULL을 허용하지 않는다. - (행단위) 입력시 데이터를 무조건 받겠다! 2. UNIQUE CONSTRAINT EMP2_EMPNO_UK UNIQUE(EMPNO) - NULL의 중복은 방지하지 못한다. - 테이블에서 해당 컬럼값은 항상 유일 무이한 값을 가진다. NULL 허용 -..
-
[SQL] TCL - ROLLBACK, COMMIT, SAVEPOINTDatabase/SQL (oracle, mysql) 2019. 5. 30. 11:34
[SQL] TCL - ROLLBACK, COMMIT, SAVEPOINT - TRANSACTION - 데이터 처리의 한 단위 - 처음부터 commit까지의 작업 - 오라클에서 발생하는 DML들을 하나의 논리적인 작업 단위(트랜잭션)로 처리한다. ( commit 이나 rollback이 사용되기 전까지 계속 처리한다. ) - 하나의 트랜잭션은 ALL - or -Nothing 방식으로 처리된다. - savepoint는 특정지점으로 작업을 취소해서 rollback하는 것이다. rollback to sp2; - SP2지점으로 롤백해줘! 목적 - 데이터의 일관성을 유지하면서 안정적으로 데이터를 복구한다. 1. COMMIT - 저장되지 않은 모든 데이터를 데베에 저장하고 현재의 트랜잭션을 종료하라는 명령어 - comm..