본문 바로가기

Back-End/Database17

[SQL] PL/SQL(PROCEDUAL LANGUAGE / SQL) PL/SQL(PROCEDUAL LANGUAGE / SQL) - SQL 만으로는 구현이 어렵거나 구현 불가능한 작업을 수행하기 위해 오라클에서 제공하는 프로그래밍 언어 - 일반 프로그래밍 언어적인 요소들을 다 가지고 있으며 데이터베이스 업무를 처리하기 위한 최적화된 언어. - 변수, 조건 처리, 반복 처리 등 다양한 기능을 사용할 수 있음. 기본 구조 1) 선언부(DECLARE) : 모든 변수나 상수를 선언하는 부분. 2) 실행부(EXCUTABLE) : 실제 로직이 실행되는 부분. 제어문(조건문), 반복문, 함수정의 등의 로직을 기술하는 부분. 3) 예외처리부(EXCEPTION) : 실행 도중 예외가 발생 시 해결하기 위한 명령들을 기술하는 부분. 위 기본 구조 중에서 선언부와 예외처리부는 생략이 가능하지.. 2021. 10. 5.
[SQL] 트랜잭션(transaction) 트랜잭션(transaction) - 데이터 처리의 한 단위를 말함 - 오라클에서 발생하는 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는 것 - ALL OR NOTHING 방식으로 처리. - 명령어 여러 개의 집합이 정상적으로 처리가 되면 종료. - 여러 개의 명령어 중에서 하나의 명령이라도 잘못되면 전체 취소. - 트랙잭션 사용 이유 : 데이터의 일관성을 유지하면서 데이터의 안정성을 보장하기 위해 사용. 트랙잭션 사용 시 트랜잭션 제어하기 위한 명령어 1) COMMIT : 모든 작업을 정상적으로 처리하겠다고 확정하는 명령어. - 트랜잭션(INSERT, UPDATE, DELETE) 작업 내용을 실제 DB에 반영. 이전에 있던 데이터에 UPDATE 현상 발생. - 모든 사용자가 변경된 데.. 2021. 10. 5.
[SQL] GROUP BY 절 / HAVING절 GROUP BY 절 - 특정컬럼이나 값을 기준으로 해당 레코드를 묶어서 자료를 관리할 때 사용 - 보통은 특정 컬럼을 기준으로 집계를 구하는데 많이 사용 - 보통은 그룹함수와 함게 사용하면 효과적으로 사용이 가능 -- emp 테이블에서 부서별로 각 부서의 인원을 확인하고 싶은 경우 select deptno, count(*) from emp group by deptno order by deptno; -- [문제1] emp 테이블에서 각 부서별 인원, 평균급여, 최대급여, 최소 급여를 표시하시오 select sum(sal), count(*) "부서별 인원", avg(sal) "부서별 평균 급여", max(sal) "부서별 최대 급여", min(sal) "부서별 최소 급여" from emp group by d.. 2021. 10. 5.
[SQL] 서브 쿼리 서브 쿼리 - 하나의 쿼리문 안에 포함되어 있는 또 하나의 쿼리문을 말함. - 서브쿼리는 메인쿼리가 서브쿼리를 포함하는 종속적인 관계임. - 여러번 쿼리를 실행해서 얻을수 있는 결과를 하나의 중첩된 쿼리 문장으로 결과를 얻을 수 있게 해줌. 주의사항 1) 서브쿼리는 괄호로 묶어서 사용해야함. 2) 서브쿼리 안에서는 ORDER BY 절은 사용할 수 없음. 3) 연산자 오른쪽에 사용해야 함. 사용방법 우선은 안쪽에 있는 쿼리문을 실행 후, 그 결과값을 가지고 바깥쪽 쿼리문을 실행 -- emp 테이블에서 이름이 'SCOTT'인 사원의 급여보다 더 많은 급여를 받는 -- 사원의 사번, 이름, 담당업무, 급여를 화면에 보여주세요. select empno, ename, job, sal from emp where s.. 2021. 10. 5.
[SQL] 컬럼 속성(제약 조건) 컬럼 속성(제약 조건) 테이블에 부적합한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 정한 것. 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 values.. 2021. 10. 5.
[SQL] view View - 물리적인 테이블에 근거한 논리적인 가상의 테이블을 말함. - View는 실질적으로 데이터를 저장하고 있지 않음. - View를 만들면 데이터베이스에 질의 시 실제 테이블에 접근하여 데이터를 불러오게 됨. - 간단하게 말하면 필요한 내용들만 추출해서 사용하는 것. - 주로 데이터를 조회할 때 가장 많이 사용됨. - View는 테이블과 유사하며, 테이블처럼 사용이 가능함. - View는 테이블에 저장하기 위한 물리적인 공간이 필요가 없음. - 테이블과 마찬가지로 insert, update, delete, select 명령이 가능함. View를 사용하는 이유 1) 보안 관리를 위해 사용함(중요함) ==> 보안 등급에 맞추어 컬럼의 범위를 정해서 조회가 가능하도록 할 수 있음. view 생성하는 방.. 2021. 10. 5.