ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 학원 day33. 데이터 정의어(DDL)
    기록 2022. 10. 22. 18:08

    데이터 정의어(DDL) 

    - 오라클 데이터베이스 객체 생성, 변경, 삭제에 사용되는 명령어

    - Create, Alter, Drop(삭제), Truncate(절단)

     

    주요 데이터베이스 객체

    • 테이블 - 데이터의 기본 저장단위, 행과 열로 구성되어 있다.
    • - 하나 이상의 테이블을 사용해서 만든 가상의 테이블
    • 시퀀스 - 일련번호 생성기 (예매번호, 주문번호 등에 사용됨)
    • 인덱스 - 검색성능을 향상시키기 위해서 데이터에 대한 색인을 갖고 있다. (모든 행을 실행시키지 않고, 색인을 사용해서 찾는다. 내부적으로 트리라는 형태로 저장되어 있다.)
    • 동의어 - 객체에 대한 다른 이름을 제공한다. (다른 계정에 있는 데이터를 조회해야 할 때, 계정명.테이블명을 모두 적으면 길어지니까 동의어를 만들어 사용한다.)

     

    인라인뷰와 뷰의 차이점

    : 인라인뷰는 영구적이지 않고 해당 SQL이 실행되는 동안만 생겼다가 사라짐. 

    반면에, 뷰는 영구적으로 남아있어 재활용이 가능하다. 

    (* 참고 : https://m.blog.naver.com/jiruchi/10044561030)

     

    테이블

    테이블과 컬럼의 이름규칙

      - 문자로 시작, 30자까지 가능, A-Z a-z 0-9 _$#만 허용

      - 오라클 예약어 사용 금지 

    (* 오라클 예약어 참고 : https://dmz7881.tistory.com/5007721)

     

    테이블 생성하기

     CREATE TABLE 테이블명 (
        컬럼명 데이터타입(크기) [DEFAULT 기본값],
        ...
      )

    테이블 삭제하기

     DROP TABLE 테이블명

    테이블 변경

    • 컬럼추가
      ALTER TABLE 테이블명 ADD (컬럼명 데이터타입(크기) [DEFAULT 기본값]);	
    • 컬럼수정
      ALTER TABLE 테이블명 MODIFY (컬럼명 테이터타입(크기) [DEFAULT 기본값]);
    • 컬럼삭제
      ALTER TABLE 테이블명 DROP 컬럼명;
    • 테이블 이름 변경
      RENAME 테이블명 TO 새테이블명
    • 테이블 절단하기
      TRUNCATE TABLE 테이블명;
      
      -- truncate는 테이블에서 모든 행을 제거한다.
      -- 해당 테이블이 사용하는 저장공간을 해제한다.
      -- truncate로 제거된 행은 rollback할 수 없다.
    --------------------------------------------------------------------------------
    -- 테이블
    --------------------------------------------------------------------------------
    -- 테이블 생성하기
    CREATE TABLE SAMPLE_PRODUCTS (
    --  컬럼명                   데이터타입(사이즈)    제약조건        기본값
        PRODUCT_NO              NUMBER(6)           PRIMARY KEY,
        PRODUCT_NAME            VARCHAR2(255)       NOT NULL,
        PRODUCT_MAKER           VARCHAR2(255)       NOT NULL,
        PRODUCT_PRICE           NUMBER(8)           NOT NULL,
        PRODUCT_DISCOUNT_PRICE  NUMBER(8),
        PRODUCT_STOCK           NUMBER(4),
        PRODUCT_ON_SELL         CHAR(1)                             DEFAULT 'Y',
        PRODUCT_CREATED_DATE    DATE                                DEFAULT SYSDATE,
        PRODUCT_UPDATED_DATE    DATE                                DEFAULT SYSDATE
    );
    
    -- 테이블의 모든 행 삭제하기
    DELETE FROM SAMPLE_PRODUCTS;
    
    -- 변경사항을 테이블에 영구적으로 반영시키기
    commit;

    시퀀스

    - 일련번호를 자동으로 생성하는 데이터베이스 객체다.

    - 기본키 값(행을 대표하는 값)을 생성하는데 주로 사용됩니다.

    --------------------------------------------------------------------------------
    -- 시퀀스
    --------------------------------------------------------------------------------
    
    -- 시퀀스 생성하기 (1부터 1씩 증가하는 번호가 발행된다.)
    -- CREATE SEQUENCE 시퀀스명;
    CREATE SEQUENCE SAMPLE_PRODUCTS_SEQ;
    
    -- 시퀀스에서 새로운 일련번호 발행하기
    -- 시퀀스명.NEXTVAL
    -- NEXTVAL은 새로운 일련번호를 발행시킨다. 시퀀스의 내장함수임.
    SELECT SAMPLE_PRODUCTS_SEQ.NEXTVAL FROM DUAL;
    
    -- 테이블에 데이터 추가시 시퀀스 사용하기
    INSERT INTO SAMPLE_PRODUCTS
    (PRODUCT_NO, PRODUCT_NAME, PRODUCT_MAKER, PRODUCT_PRICE, PRODUCT_STOCK)
    VALUES
    (SAMPLE_PRODUCTS_SEQ.NEXTVAL, 'IPHONE 14 PRO MAX', '애플', 2000000, 10);

    댓글

Designed by Tistory.