Oracle 테이블 생성, 수정 및 삭제

박현우·2024년 1월 18일
0

1. DDL(Data Definition Language)

  • 데이터의 구조를 정의하기 위한 테이블 생성, 삭제 같은 명령어

  • create : 테이블 생성

  • drop : 테이블 삭제

  • alter : 테이블 수정

  • truncate : 테이블에 있는 모든 데이터 삭제

    	CREATE TABLE EMPLOYEES2(
    		employee_id		number(10),
    		name			varchar(20),
    		salary			NUMBER(7,2)
    	);
    
    	CREATE TABLE sample (
    		deptNO  number(10),
    		deptName varchar2(15),
    		deptLoc  varchar2(15),
    		deptManager varchar2(15)
    	);

-- 기존 테이블과 동일하게 작성. 복사.

CREATE TABLE EMPLOYEES3
AS 
SELECT * FROM EMPLOYEES2;

-- employeee2 테이블에 컬럼을 추가

ALTER TABLE EMPLOYEES2 add(
	manager_id	varchar(10)
);

-- 컬럼 데이터 타입을 수정

ALTER TABLE EMPLOYEES2 MODIFY (
	manager_id	varchar2(20)
);

-- 컬럼을 삭제

ALTER TABLE EMPLOYEES2 
DROP COLUMN manager_id;

-- 테이블 삭제

DROP TABLE EMPLOYEES3 ;
SELECT * FROM EMPLOYEES2 e ;

2. 데이터 조작어(DML)

  • select : 데이터 조회(R)
  • insert : 데이터 입력(C)
  • update : 데이터 수정(U)
  • delete : 데이터 삭제(D)

2-1. insert

  • 특정 컬럼

    	insert into 테이블명 (컬럼1, 컬럼2, ...)
    	values (값1, 값2, ...)
  • 전체 컬럼

    	insert into 테이블명 values (값1, 값2, ...)
    
    	INSERT INTO sample
    	VALUES (1, '박현우', '의왕', '매니저');
    
    	INSERT INTO SAMPLE s 
    	VALUES (2, '김석재', '강동', '매니저');
    
    	INSERT INTO SAMPLE s 
    	VALUES (3, '김성훈', '인덕원', '매니저');
    
    	INSERT INTO SAMPLE s 
    	VALUES (10, '기획실', '서울', '홍길동');
    
    	INSERT INTO SAMPLE s 
    	VALUES (20, '전산실', '부산','김자바');
    
    	INSERT INTO SAMPLE s 
    	VALUES (30, '영업부', '광주', null);

2-2. update

update 테이블명
set 컬럼1 = 값, 컬럼2 = 값, ...
where 조건..;

-- update
-- 부서번호가 30번인 부서의 부서번호를 50번으로 수정

UPDATE SAMPLE 
SET DEPTNO = 50
WHERE DEPTNO = 30;

-- 부서명이 '영업부'인 부서의 위치를 '인천'으로 수정

UPDATE SAMPLE 
SET DEPTLOC = '인천'
WHERE DEPTNAME = '영업부';

2-3. delete

delete (from) 테이블명
where 조건;

-- 영업부를 삭제

DELETE sample WHERE deptName = '영업부';
SELECT * FROM SAMPLE;

3. Drop VS Truncate VS Delete
3-1. Drop

  • 만들었던 테이블이 싹 다 삭제된다. 존재 자체가 삭제.
  • 복구가 불가능

3-2. Truncate

  • 데이터만 통 삭제

  • 테이블 안에 들어있던 모든 레코드들을 제거하는 명령어

  • table 구조를 삭제하는 게 아니다.

  • 테이블을 drop했다가 create 한다.

  • 모든 행을 삭제하는데에는 가장 빠르고 효율적인 방법이다.

  • 복구가 불가능

    	TRUNCATE TABLE EMPLOYEES2 ;

3-3. delete

  • 데이터를 골라서 삭제
  • truncate처럼 테이블의 구조는 남기고 안의 데이터만 삭제한다.
  • delete는 조건에 해당하는 것만 지울 수도 있고 전체를 지울 수도 있는 이육가 한 줄 한 줄 삭제를 하기 때문이다.
  • 데이터가 삭제되어도 빈 테이블이나 클러스터에 그대로 남아있기 때문에 복구가 가능하다.

0개의 댓글

관련 채용 정보