목록데이터베이스 (26)
개인공부
시퀀스란? 테이블 내의 유일한 숫자를 자동으로 생성하는 자동 번호 발생기 CREATE SEQUENCE sequence_name [START WITH n] ① [INCREMENT BY n] ② [{MAXVALUE n | NOMAXVALUE}] ③ [{MINVALUE n | NOMINVALUE}] ④ [{CYCLE | NOCYCLE}] ⑤ [{CACHE n | NOCACHE}] ⑥ ① START WITH 시퀀스 번호의 시작값을 지정할 때 사용됩니다. 만일 1부터 시작되는 시퀀스를 생성하려면 START WITH 1이라고 기술하면 됩니다. ② INCREMENT BY 연속적인 시퀀스 번호의 증가치를 지정할 때 사용됩니다. 만일 1씩 증가하는 시퀀스를 생성하려면 INCREMENT BY 1이라고 기술하면 됩니다. ③..
복합 뷰 - 두 개 이상의 기본 테이블에 의해 정의된 뷰 뷰를 사용하는 이유 중의 하나가 복잡하고 자주 사용하는 질의를 보다 쉽고 간단하게 사용하기 위해서라고 했습니다. 이를 살펴보기 위해서 사원 테이블과 부서 테이블을 자주 조인한다고 합시다. SELECT E.EMPNO, E.ENAME, E.SAL, E.DEPTNO, D.DNAME, D.LOC FROM EMP E, DEPT DWHERE E.DEPTNO = D.DEPTNOORDER BY EMPNO DESC; 뷰를 사용하는 이유 중의 하나가 복잡하고 자주 사용하는 질의를 보다 쉽고 간단하게 사용하기 위해서라고 했습니다. 위에 작성한 조인문에 "CREATE VIEW EMP_VIEW_DEPT AS" 만 추가해서 뷰로 작성해 놓으면 “SELECT * FROM E..
뷰(View)의 개념 - 뷰는 한마디로 물리적인 테이블을 근거한 논리적인 가상 테이블이라고 정의할 수 있습니다. - 뷰란 ‘보다’란 의미를 갖고 있는 점을 감안해 보면 알 수 있듯이 실제 테이블에 저장된 데이터를 뷰를 통해서 볼 수 있도록 합니다. - 뷰는 이미 존재하고 있는 테이블에 제한적으로 접근하도록 합니다. - 뷰를 생성하기 위해서는 실질적으로 데이터를 저장하고 있는 물리적인 테이블이 존재해야 하는데 이 테이블을 기본 테이블이라고 합니다. CREATE [OR REPLACE] [FORCE | NOFORCE] VIEW view_name[(alias, alias, alias, ...)]AS subquery[WITH CHECK OPTION] [WITH READ ONLY]; CREATE VIEW EMP_V..
PRIMARY KEY 제약 조건 UNIQUE 제약 조건과 NOT NULL 제약 조건을 모두 갖고 있는 기본키 테이블 한 개의 기본키를 갖을 수 있습니다. CREATE TABLE EMP05( EMPNO NUMBER(4) CONSTRAINT EMP05_EMPNO_PK PRIMARY KEY , ENAME VARCHAR2(10) CONSTRAINT EMP05_ENAME_NN NOT NULL, JOB VARCHAR2(9), DEPTNO NUMBER(2) ); FOREIGN KEY 제약 조건 외래 키(외부 키, Foreign Key)는 한 테이블의 필드 중 다른 테이블의 행을 식별할 수 있는 키를말합니다. 먼저 정의되어야 하는 테이블이 부모 테이블이고 나중에 정의되어야 하는 테이블이 자식 테이블이 됩니다. 이때 주..
데이터 무결성 제약조건이란 ? 데이터 무결성 제약 조건(Data Integrity Constraint Rule)이란 테이블에 부적절한 자료가 입력되는 것을 방지하기 위해서 테이블을 생성할 때 각 컬럼에 대해서 정의하는 여러 가지 규칙을 말합니다. 제약 조건 확인하기 DESC USER_CONSTRAINTS; CONSTRAINT_TYPE는 제약 조건 유형을 저장하는 컬럼입니다. CONSTRAINT_TYPE은 P, R, U, C 4가지 값 중에 하나를 갖습니다 NOT NULL 제약조건 설정 CREATE TABLE EMP02( EMPNO NUMBER(4) NOT NULL, ENAME VARCHAR2(10) NOT NULL, JOB VARCHAR2(9),DEPTNO NUMBER(2) ); UNIQUE 제약 조건 ..
트랜잭션이란 ? - 데이터베이스에서 트랜잭션(Transaction)은 데이터 처리의 한 단위입니다. - 오라클에서 발생하는 여러 개의 SQL 명령문들을 하나의 논리적인 작업 단위로 처리하는데 이를 트랜잭션이라고 합니다. - 트랜잭션은 마지막으로 실행한 커밋(혹은 롤백) 명령 이후부터 새로운 커밋(혹은 롤백) 명령을 실행하는 시점까지 수행된 모든 DML 명령들을 의미합니다. COMMIT 아래 그림에서 UPDATE 문으로 데이터를 갱신하고(③), DELETE 문으로 데이터를 삭제하고(④), INSERT 문을 사용해 데이터를 삽입(⑤)합니다. 만약 이 모든 과정이 오류 없이 수행되었다면 지금까지 실행한 모든 작업(③, ④, ⑤)을 "데이터베이스에 영구 저장하라"는 명령으로 커밋을 수행합니다. ROLLBACK ..
INSERT - 테이블에 새로운 행을 추가 INSERT INTO table_name(column_name, …)VALUES(column_value, …); INSERT INTO DEPT01(DEPTNO, DNAME, LOC)VALUES(10, 'ACCOUNTING', 'NEW YORK'); INSERT INTO DEPT01 VALUES (20, 'RESEARCH', 'DALLAS'); 서브쿼리로 데이터 삽입하기INSERT INTO DEPT02SELECT * FROM DEPT; INSERT ALL - 다중 테이블에 다중 행 입력하기 INSERT ALL 명령문은 서브 쿼리의 결과 집합을 조건 없이 여러 테이블에 동시에 입력하기 위한 명령문입니다. 이때 주의할 점은 서브 쿼리의 컬럼명과 데이터가 입력되는 테이..
CREATE 테이블 생성 CREATE TABLE table_name(column_name data_type expr, …); CREATE TABLE EMP01( EMPNO NUMBER(4), ENAME VARCHAR2(20), SAL NUMBER(7, 2)); 테이블 복사CREATE TABLE EMP02 AS SELECT * FROM EMP; 원하는 행을 선택해 테이블 복사CREATE TABLE EMP05ASSELECT * FROM EMPWHERE DEPTNO=10; 테이블 구조만 복사 CREATE TABLE EMP06AS SELECT * FROM EMP WHERE 1=0; ALTER TABLE - 테이블 변경 ALTER TABLE 명령문은 기존 테이블의 구조를 변경하기 위한 DDL 명령문입니다. 테이블..
서브쿼리의 기본 개념 서브 쿼리는 하나의 SQL 문장의 절 안에 포함된 또 하나의 SELECT 문장입니다. 그렇기에 서브 쿼리를 포함하고 있는 쿼리문을 메인 쿼리, 포함된 또 하나의 쿼리를 서브 쿼리라 합니다. 서브 쿼리는 비교 연산자의 오른쪽에 기술해야 하고 반드시 괄호로 둘러쌓아야 합니다. 서브 쿼리는 메인 쿼리가 실행되기 이전에 한번만 실행이 됩니다. 서브쿼리의 위치 - SELECT , DELETE의 FROM절, WHERE 절- INSERT 문장의 INTO절- UPDATE 문장의 SET절, WHERE절 UNION - 두 테이블의 결합을 나타내며, 결합시키는 두 테이블의 중복 데이터는 제거한다. - SELECT 문장의 열의 개수가 반드시 같아야 한다. - 결합시 반드시 같은 자료형이어야 한다. - 중..
조인이란 관계형 데이터베이스에서는 테이블 간의 관계가 중요하기 때문에 하나 이상의 테이블을 빈번히 결합하여 사용한다.한 개 이상의 테이블에서 데이터를 조회하기 위해 사용되는 것을 조인이라고 한다. 조인의 종류 Equi Join : 동일 칼럼을 기준으로 조인합니다.Non-Equi Join : 동일 칼럼이 없이 다른 조건을 사용하여 조인합니다.Outer Join : 조인 조건에 만족하지 않는 행도 나타낸다.Self Join : 한 테이블 내에서 조인합니다. ANSI JOIN 지금까지는 살펴본 조인문은 SQL/86에서 정의된 조인 구문 현재는 ANSI(미국 표준 협회)에서 제시한 표준 기능을 준수 ANSI Inner Join USING을 이용한 조인 조건 지정하기 두 테이블에 각각 조인을 정의한 컬럼의 이름이..