본문 바로가기

전체 글112

[Oracle SQL] 시퀀스(SEQUENCE) 시퀀스는 호출될 때마다 자동으로 유일한 숫자를 생성하는 오라클 객체입니다. 예를 들어 게시판의 글 번호가 순차적으로 넘버링될 수 있도록 시퀀스를 사용합니다. 1. 시퀀스 생성 시퀀스를 생성하는 기본 문법입니다. CREATE SEQUENCE 시퀀스명 [START WITH n] [INCREMENT BY n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE] [CACHE n | NOCACHE] START WITH n 은 시작값을 지정할 때 사용하며, 생략시 1부터 시작합니다. INCREMENT BY n 은 증가값을 지정할 때 사용하며, 생략시 1부터 시작합니다. MAXVALUE n 은 최대값을 지정할 때 사용하며, 생략시 오라클이 자동.. 2022. 5. 15.
[Oracle SQL] DDL - 테이블 변경(ALTER) 및 삭제(DROP) 데이터베이스에서 테이블을 변경하고 삭제하는 방법을 알아보겠습니다. 테이블 삭제 (DROP) 앞서 dept02 테이블과 그 테이블을 참조하는 emp02 테이블을 생성했습니다. 다음과 같이 부모 테이블인 dept02 테이블을 삭제하면 오류가 발생합니다. DROP TABLE dept02; --> 오류 --> ORA-02449: unique/primary keys in table referenced by foreign keys 이때 CASCADE CONSTRAINTS 옵션을 사용해서 삭제하면, 자식 테이블의 외래키 제약 조건도 연쇄적으로 삭제되어 부모 테이블을 삭제할 수 있게 됩니다. DROP TABLE dept02 CASCADE CONSTRAINTS; 테이블 변경 (ALTER) 생성된 테이블의 구조를 변경할 .. 2022. 5. 15.
[Oracle SQL] DDL - 테이블 생성(CREATE), 제약 조건 DDL(Data Definition Language)은 데이터베이스의 구조를 생성(CREATE)하거나 수정(ALTER) 및 삭제(DROP)하는데 사용되는 데이터 정의어입니다. DML과 달리 DDL은 자동으로 COMMIT 되기 때문에 데이터베이스에 즉각 영향을 미치며 데이터베이스 사전(DATA DICTIONARY)에 정보가 저장됩니다. 오라클 데이터베이스는 테이블(table), 인덱스(index), 뷰(view), 시퀀스(sequence), 동의어(synonym)와 같은 여러 개의 데이터 구조를 가지고 있으며, 이를 오라클 객체라고 부릅니다. DDL은 이러한 오라클 객체를 생성하거나 수정 및 삭제할 때 사용합니다. 이 중 가장 중요한 객체인 테이블을 생성하고 수정 및 삭제하는 방법을 알아보겠습니다. 테이블.. 2022. 5. 14.
[Oracle SQL] DML - UPDATE문, DELETE문 이전 글에 이어서 DML에 대해 정리해 보겠습니다. UPDATE문과 DELETE문도 마찬가지로 DML이기 때문에 트랜잭션이 발생되며 반드시 COMMIT 혹은 ROLLBACK을 입력해 트랜잭션을 종료시켜야 합니다. UPDATE 문 데이터를 수정하기 위해 사용합니다. UPDATE 테이블명 SET 컬럼명=변경할값[, 컬럼명2=변경할값2] [WHERE 조건식]; 이전 글에서 만들었던 mydept 테이블에서 40번 부서의 부서명과 지역을 변경해 보겠습니다. 다음과 같이 WHERE절로 변경하고 싶은 레코드를 지정해 주어야 합니다. SELECT문을 사용해 변경된 테이블을 확인할 수 있습니다. UPDATE mydept SET dname='개발', loc='서울' WHERE deptno=40; 서브쿼리를 사용해 서브쿼리.. 2022. 5. 14.
[Oracle SQL] DML - INSERT문 앞서 배운 SELECT문은 DQL(Data Query Language), 질의어로서 데이터를 검색할 때 사용하는 SQL문이었습니다. 이번에는 실제 데이터를 입력(INSERT), 수정(UPDATE), 삭제(DELETE), 병합(MERGE)할 수 있는 DML(Data Manipulation Language), 조작어에 대해 알아보겠습니다. 먼저 데이터를 입력하기 위한 INSERT문입니다. INSERT 문 1. 단일행 INSERT 문 한 번에 하나의 행을 입력합니다. INSERT INTO 테이블명 [(컬럼명, 컬럼명2,...)] VALUES (값, 값2,...); INTO절에 명시한 컬럼의 순서대로 VALUES절에 컬럼값을 지정해야 합니다. INTO절의 컬럼명은 생략할 수 있으며, 생략하면 VALUES절에 모.. 2022. 5. 14.
[Oracle SQL] 서브쿼리 앞서 배운 조인은 하나 이상의 테이블에서 원하는 데이터를 조회할 때 사용하는 방법이었습니다. 이와 달리 서브쿼리는 하나의 SELECT문만으로 원하는 데이터를 조회할 수 없을 때 사용하는 방법으로, 여러 개의 SELECT문을 한 개의 문장으로 합쳐서 원하는 데이터를 조회할 수 있도록 합니다. 서브쿼리를 잘 활용하면 조인을 이용하지 않고도 조인을 한 것과 같은 결과를 출력할 수 있습니다. SMITH가 근무하는 부서와 같은 부서의 사원들을 찾고자 할 때, 기존에는 SELECT문이 두 개가 필요했습니다. SELECT deptno FROM emp WHERE ename='SMITH'; SMITH가 근무하는 부서가 20번임을 확인한 후, 다시 20번 부서에 근무하는 사원을 찾는 것입니다. SELECT ename,de.. 2022. 5. 12.