ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • SQL - 데이터 정의어 (DDL)
    DataBase/Oracle 2023. 9. 4. 15:22

     

    1. 객체를 생성, 변경, 삭제하는 데이터 정의어 

     

     - 데이터 정의어는 데이터 베이스 데이터를 보관하고 관리하기 위해 제공되는 여러 객체의 생성 변경 삭제와 관련 기능 수행

     

    1.1 데이터 정의 사용시 유의점

     

     - 데이터 정의어 실행시 자동으로 COMMIT되기 때문에 이전에 사용한 조작어가 영구 반영된다. 

     - 따라서 사용시 주의를 기울여야 한다.

     

    CREATE: 객체 생성

    ALTER : 객체 변경

    DROP : 객체 삭제

     

    2. 테이블을 생성하는 CREATE

     

     - CREATE는 테이블 뿐 아니라 여러 객체를 생성할 수 있다.

    CREATE TABLE 소유계정.테이블이름(
    	
        열이름 열자료형,
        열이름 열자료형,
        열이름 열자료형
    
    )

     - 소유계정을 생략하고 테이블을 생성하면, 현재 접속한 계정 소유의 테이블이 만들어진다.

     

    * 테이블 이름 및 열 이름 생성 규칭 참고(312P ~ 313P)

     

    2.1 자료형 각각 정의하여 새 테이블 생성하기 

     

    CREATE TABLE EMP_DDL(
    
    	EMPNO NUMBER(4),
        ENAME VARCHAR2(10),
        JOB   VARCHAR2(9),
        MGR   NUMBER(4),
        HIREDATE DATE,
        SAL NUMBER(7,2),
        COMM NUMBER(7,2),
        DEPTNO NUMBER(2)
    
    );

     

    2.2 기존 테이블 열 구조와 데이터 복사하여 새 테이블 생성하기 

    CREATE TABLE DEPT_DDL
    AS SELECT * FROM DEPT;

     

    2.3 기존 테이블 열 구조와 일부 데이터만 복사하여 새 테이블 생성하기 

    CREATE TABLE EMP_DDL_30
    AS SELECT * FROM EMP WHERE DEPTNO = 30;

    2.4 기존 테이블의 열 구조만 복사하여 새 테이블 생성하기 

    -- DEPT와 EMP 조인한 결과로 테이블을 생성하는 CREATE문
    CREATE TABLE EMPDEPT_DDL
    AS SELECT E.EMPNO, E.ENAME, E,JOB, E.MGR, E.HIREDATE, E.SAL, C.COMM,
    D.DEPTNO, D.DNAME, D.LOC
        FROM EMP E, DEPT D
        WHERE 1 <> 1;

     

    * sql 디벨로퍼에 특정 테이블에 들어가서 sql탭을 클릭하면, 테이블 생성관련 sql이 있으니, 

      기존 테이블에서 조금 변경된 테이블을 생성해야할 때 써먹자 

     

    **  CREATE로 테이블을 하나씩 만드는 경우는 엄청 많지는 않다. 하지만,

        SQL 디벨로퍼 PC |(방화벽)| -> DB(AWS) <->자바(서버) [DB와 자바는 서로 소통가능]

       - 간혹 DB가 SQL 디벨로퍼 같은 클라이언트 프로그램의 접속을 막아두는 경우가 있다.

       - 이때는 1521포트가 아니라, DB(SSH)에 직접 접속하여 작업해야하는 경우가 있다. 이때는 하나씩 타이핑해서 테이블 만들어야 한다고 한다 (참고)

     

    3. 테이블을 변경하는 ALTER

     

     - ALTER 명령어는 이미 생성된 객체를 변경할 때 사용한다.

     - 테이블에 새 열을 추가 또는 삭제하거나 열의 자료형 또는 길이 변경 등 테이블 구조 변경과 관련 기능 수행 

     

    3.1 ALTER를 이용한 테이블 열 변경 

    --테이블에 열추가
    ALTER TABLE EMP_ALTER ADD HP VARCHAR2(20);
    --테이블 열 이름 변경
    ALTER TABLE EMP_ALTER RENAME COLUMN HP TO TEL;
    --테이블 열 속성 변경
    ALTER TABLE EMP_ALTER MODIFY EMPNO NUMBER(5);
    --테이블 열 삭제
    ALTER TABLE EMP_ALTER DROP COLUMN TEL;

     * ALTER를 통한 열변경은 툴을 통해 간단하게 해결할 수 있다.

     

    3.2  테이블 변경 

    --테이블 이름변경
    RENAME EMP_ALTER TO EMP_RENAME;
    --테이블 데이터 삭제
    TRUNCATE TABLE EMP_RENAME;
    --테이블 삭제 
    DROP TABLE EMP_RENAME;

     

    - TRUNCATE는 WHERE절을 명시하지않은 DELETE와 같은 결과가 나온다. 

       DDL이기때문에 롤백이 안된다는 차이점이 있다.

    - DROP는 데이터베이스 객체를 삭제하는 데 사용한다. 테이블에 적용하면, 테이블이 삭제되므로, 저장된 데이터도 모두 삭제 된다.

     

     

    'DataBase > Oracle' 카테고리의 다른 글

    SQL 사용자,권한,롤 관리  (0) 2023.09.05
    SQL - 제약 조건  (0) 2023.09.05
    SQL - 트랜잭션 제어와 세션  (0) 2023.09.04
    SQL - DML  (0) 2023.09.01
    오라클 sql - 인라인 뷰를 사용한 TOP-N SQL  (0) 2023.09.01
Designed by Tistory.