본문 바로가기
Programming/Oracle SQL

DDL (Data Definition Language)

주의점: 모든 명령어는 AUTO COMMIT(ROLLBACK 불가)

 

CREATE  테이블 생성

 

 

 

다른 테이블 전체를 가져와서 생성할 수 있다.
일부만 가져와서 만들려면 서브쿼리 내 조건을 지정한다.

 

 

 

 

 

 

 

 

ALTER  테이블 변경

 

 

 

 

ADD: 테이블 열 추가

 

 

 

 

 

 

 

 

RENAME   테이블 이름 변경

 

 

 

 

 

 

MODIFY: 열 길이 조정(늘리는 것은 자유로우나 줄이는 것은 기존 입력된 데이터 최대 길이 이하로는 불가.)

 

 

 

 

 

 

TRUNCATE   데이터 삭제 (형태만 남김)

* DELETE는 하나하나 지우는거고 commit 필요. TRUNCATE는 한번에 표 형태만 두고 내용만 지움

ROLLBACK 불가. DELETE로 했다면 ROLLBACK 可

 

 

 

 

DROP  테이블 삭제

 

ROLLBACK 사용 불가능하지만 FLASHBACK 기능으로 可 (구글링 참조) 

                                                   FLASHBACK은 매우 특수한 경우에만 사용함 (잘 안씀)

 

 

DROP TABLE EMP_HW;   -- 혹시 이전에 생성된 것이 있다면 삭제

CREATE TABLE EMP_HW(
   EMPNO      NUMBER(4),
   ENAME      VARCHAR2(10),
   JOB        VARCHAR2(9),
    MG        NUMBER(4),
   HIREDATE   DATE,
   SAL        NUMBER(7,2),       -- 소숫점 표현 위해 뒤에 ,2 표시
   COMM       NUMBER(7,2),
   DEPTNO     NUMBER(2)
);                            --문제 요구사항대로 작성

DESC EMP_HW;      -- 구성문 확인

SELECT *          -- 내용 확인(내용이 비어있고 껍데기만 있음)
FROM   EMP_HW;

[Q2]
ALTER TABLE EMP_HW
ADD BIGO VARCHAR(20);  -- ADD 사용; 열 추가시 이름에 '' 필요없음.

SELECT *       -- 결과 확인
FROM EMP_HW;
[Q3]
ALTER TABLE EMP_HW
MODIFY BIGO VARCHAR(30);      -- ADD자리에 MODIFY쓰고 거기에서 내용 조정

DESC EMP_HW;         -- 구성 길이 확인
[Q4]
ALTER TABLE EMP_HW
RENAME COLUMN BIGO TO REMARK;   -- RENAME COLUMN 대상 TO 새 이름

DESC EMP_HW;

DROP TABLE EMP_HW;  -- 이전 것을 지우고 다시하는 버전
CREATE TABLE EMP_HW AS (SELECT * FROM EMP);  -- 서브쿼리로 한 번에 부르기

ALTER TABLE EMP_HW -- REMARK 따로 추가하기
ADD REMARK VARCHAR(20);
INSERT INTO EMP_HW   -- 이전 것을 그대로 두고 넣기만 하기.
SELECT EMPNO, ENAME, JOB, MGR, HIREDATE, SAL, COMM, DEPTNO, NULL
  FROM EMP;

DROP TABLE EMP_HW;

 

728x90
반응형

'Programming > Oracle SQL' 카테고리의 다른 글

CONSTRAINT(제약 조건)  (0) 2023.08.28
실무에서 많이 쓰는 VIEW  (0) 2023.08.28
IMPORT and EXPORT DATA, 끄적임  (0) 2023.08.25
DML and DCL (Data Manipulation, Control Language)  (0) 2023.08.25
Subquery  (0) 2023.08.25