(SQL 문법) DDL (CREATE, DROP, ALTER)

    728x90

    DDL

    DDL은 자동으로 커밋되어서 롤백이 안되므로 주의해야한다. 가급적 DROP 대신 DELETE

    CREATE

    출처 : https://gent.tistory.com/322

    테이블 만들기
    CREATE TABLE emp 
    ( 
        empno       NUMBER(4)	PRIMARY KEY NOT NULL,
        ename       VARCHAR2(10),
        job         VARCHAR2(9),
        mgr         NUMBER(4),
        hiredate    DATE,
        sal         NUMBER(7,2),
        comm        NUMBER(7,2),
        deptno      NUMBER(2)
    );
    
    테이블 복제 (테이블 생성 후 데이터 까지 입력)
    
    CREATE TABLE EMP_HISTORY 
    AS 
    (SELECT * FROM EMP WHERE DEPTNO = 10);
    
    CREATE TABLE 테이블명
    AS
    (SELECT * FROM 복제하고싶은_테이블명 WHERE 조건);
    
    
    서브쿼리의 where조건을 이용해서 원하는 값만 복제할 수 있음

     

    DROP

    테이블 삭제 3가지 방법
    DELETE FROM 테이블명;   -- 테이블 남아있다 , 데이터만 삭제, 백업로그가 있다
    truncate table 테이블명; -- 테이블 남아있다 , 데이터만 삭제
    DROP TABLE 테이블명;    -- 테이블(데이터 포함) 삭제 --자동커밋 롤백불가

    ALTER

    컬럼이름변경
    ALTER TABLE EMP_HISTORY2 RENAME COLUMN JOB TO JOB222;
    desc EMP_HISTORY2;
    
    컬럼 크기, 타입 수정   ename varchar2(10) --> varchar2(5)
    ALTER TABLE EMP_HISTORY MODIFY ENAME VARCHAR2(5);
    ALTER TABLE EMP_HISTORY MODIFY ENAME NUMBER(10);
    
    컬럼 추가
    ALTER TABLE EMP_HISTORY2 ADD FNAME VARCHAR2(10);
    desc EMP_HISTORY2;
    
    컬럼 삭제
    ALTER TABLE EMP_HISTORY2  DROP COLUMN COMM;
    desc EMP_HISTORY2;
    
    테이블 이름 변경
    ALTER TABLE EMP_HISTORY2 RENAME TO EMP_HISTORY22222;

     

    'SQL' 카테고리의 다른 글

    (SQL 문법) 뷰, 시퀀스, 인덱스  (0) 2022.01.05
    (SQL 문법) DML (INSERT, UPDATE, DELETE)  (0) 2022.01.05
    (SQL 문법) 집합 연산  (0) 2022.01.05
    (SQL 문법) 서브 쿼리 (단일행, 다중행)  (0) 2022.01.05
    (SQL 문법) JOIN  (0) 2022.01.05

    댓글