본문 바로가기

Back/Database11

PL/SQL(PROCEDUAL LANGUAGE / SQL) PL/SQL(PROCEDUAL LANGUAGE / SQL) - SQL 만으로는 구현이 어렵거나 구현 불가능한 작업을 수행하기 위해 오라클에서 제공하는 프로그래밍 언어 - 일반 프로그래밍 언어적인 요소들을 다 가지고 있으며 데이터베이스 업무를 처리하기 위한 최적화된 언어. - 변수, 조건 처리, 반복 처리 등 다양한 기능을 사용할 수 있음. 기본 구조 1) 선언부(DECLARE) : 모든 변수나 상수를 선언하는 부분. 2) 실행부(EXCUTABLE) : 실제 로직이 실행되는 부분. 제어문(조건문), 반복문, 함수정의 등의 로직을 기술하는 부분. 3) 예외처리부(EXCEPTION) : 실행 도중 예외가 발생 시 해결하기 위한 명령들을 기술하는 부분. 위 기본 구조 중에서 선언부와 예외처리부는 생략이 가능하지.. 2021. 4. 7.
트랜잭션(TRANSACTION) 트랜잭션(transaction) - 데이터 처리의 한 단위를 말함 - 오라클에서 발생하는 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는 것 - ALL OR NOTHING 방식으로 처리. - 명령어 여러 개의 집합이 정상적으로 처리가 되면 종료. - 여러 개의 명령어 중에서 하나의 명령이라도 잘못되면 전체 취소. - 트랙잭션 사용 이유 : 데이터의 일관성을 유지하면서 데이터의 안정성을 보장하기 위해 사용. 트랙잭션 사용 시 트랜잭션 제어하기 위한 명령어. 1) COMMIT : 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어. - 트랜잭션(INSERT, UPDATE, DELETE) 작업 내용을 실제 DB에 반영. 이전에 있던 데이터에 UPDATE 현상 발생. - 모든 사용자가 변경된 .. 2021. 4. 7.
시퀀스(SEQUENCE) 시퀀스(SEQUENCE) - 연속적인 번호를 만들어 주는 기능. 형식) create sequence 시퀀스이름 start with n (시작번호 설정 - 기본적으로 기본값은 1) increment by n (증가 번호 설정 - 기본적으로 증가값은 1) maxvalue n (시퀀스 최대 번호 설정) minvalue n (시퀀스 최소 번호 설정) cache / nocache (시퀀스의 값을 빠르게 설정하기 위해 캐쉬 메모리 사용여부) 1) cache : 시퀀스를 빨리 제공하기 위해서 미리 캐쉬 메모리에 시퀀스를 넣어 두고 준비하고 있다가 시퀀스 작업이 필요할 때 사용. 디폴트로는 20개의 시퀀스를 캐쉬 메모리에 보관하게 됨. 하지만 만약 시스템이 비정상적으로 종료를 하게 되면 캐쉬 메모리에 존재하던 남은 시.. 2021. 4. 7.
제약 조건(RESTRICTION) 컬럼 속성(제약 조건) - 테이블에 부적합한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 정한 것. 1) not null 2) unique 3) primary key : not null + unique 제약 조건 4) foreign key 5) check 1) not null 제약 조건 - null 값이 입력되지 못하게 하는 제약 조건. - 특정 열에 데이터의 중복 여부와는 상관없이 null 값을 허용하지 않는 제약 조건. create table null_test( col1 varchar2(10) not null, col2 varchar2(10) not null, col3 varchar2(10) ); insert into null_test valu.. 2021. 4. 7.
VIEW(뷰) View - 물리적인 테이블에 근거한 논리적인 가상의 테이블을 말함. - View는 실질적으로 데이터를 저장하고 있지 않음. - View를 만들면 데이터베이스에 질의 시 실제 테이블에 접근하여 데이터를 불러오게 됨. - 간단하게 말하면 필요한 내용들만 추출해서 사용하는 것. - 주로 데이터를 조회할 때 가장 많이 사용됨. - View는 테이블과 유사하며, 테이블처럼 사용이 가능함. - View는 테이블에 저장하기 위한 물리적인 공간이 필요가 없음. - 테이블과 마찬가지로 insert, update, delete, select 명령이 가능함. View를 사용하는 이유 1) 보안 관리를 위해 사용함(중요함) ==> 보안 등급에 맞추어 컬럼의 범위를 정해서 조회가 가능하도록 할 수 있음. 2) 사용자의 편의성.. 2021. 4. 7.
GROPU BY GROUP BY 절 - 특정컬럼이나 값을 기준으로 해당 레코드를 묶어서 자료를 관리할 때 사용 - 보통은 특정 컬럼을 기준으로 집계를 구하는데 많이 사용 - 보통은 그룹함수와 함게 사용하면 효과적으로 사용이 가능 [예제 테이블] -- EMP 테이블에서 부서별로 각 부서의 인원을 확인하고 싶은 경우 SELECT DEPTNO, COUNT(*) FROM EMP GROUP BY DEPTNO ORDER BY DEPTNO; -- EMP 테이블에서 부서별로 급여의 합계를 화면에 보여주세요. SELECT DEPTNO, SUM(SAL) "급여 합계" FROM EMP GROUP BY DEPTNO ORDER BY SUM(SAL) DESC; -- [문제] EMP 테이블에서 부서별로 그룹을 지어서 부서의 급여 합계와 -- 부서.. 2021. 4. 7.