Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Archives
Today
Total
관리 메뉴

dongdorodongdong

SQL-DDL 본문

SQLD

SQL-DDL

d5ngs 2019. 10. 23. 16:41

DDL (Data Definition Language)

  • CREATE
  • ALTER
  • DROP
  • RENAME
  • TRUNCATE

CREATE

  • 코드

  • 제약조건
    - NOT NULL : NULL 값은 허용하지 않는다.
    - PRIMARY KEY : 주키
    - UNIQUE : 해당 속성은 유일해야 한다.
    - FOREIGN KEY : 외래키
    - REFERENCES : 외래키를 참조하는 참조 릴레이션
    - CHECK : 입력할 수 있는 값의 범위 등을 제한

  • VIEW 생성 코드


학생 테이블에서 성별이 '여'인 데이터만 뷰로 생성하여 시스템 성능을 향상

  • 생성된 테이블 구조 확인
    - Oracle
    DESC 테이블명;
    - SQL Server
    exec s_hepl '테이블명' go

  • SELECT 문장을 통한 테이블 생성
    - 주의 점 : not null 제약조건만 적용되고, 다른 제약 조건은 없어진다. 따라서 ALTER TABLE 기능을 사용
    - Oracle
    CREATE TABLE 테이블명 AS SELECT * FROM 테이블명;
    - SQL Server
    SELECT * INTO 테이블명 FROM 테이블명;


ALTER

  • 코드

    - 학과 테이블에 연락처 속성을 추가
    학과 테이블에 학과명 속성을 제거


  • 고려사항
    - 컬럼의 크기를 늘릴 수는 있지만 줄이지는 못한다.
    - 컬럼의 NULL값만을 가지고 있으면 데이터 유형을 변경할 수 있다.
    - 컬럼의 DEFAULT 값을 바꾸면 변경 작업 이후에만 적용이 된다.
    - 컬럼의 NULL값이 없을 경우에만 NOT NULL 제약 조건을 추가할 수 있다.

  • RENAME COLUMN
    - Oracle
    ALTER TABLE 테이블명 RENAME COLUMN 기존컬럼명 TO 변경컬럼명;
    - SQL Server
    sp_rename 기존컬럼명, 변경컬럼명, 'COLUMN';

  • DROP CONSTRAINT
    - Oracle
    ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;
    - SQL Server
    ALTER TABLE 테이블명 DROP CONSTRAINT 제약조건명;

  • ADD CONSTRAINT
    - Oracle
    ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);
    - SQL Server
    ALTER TABLE 테이블명 ADD CONSTRAINT 제약조건명 제약조건(컬럼명);


DROP

  • 코드

    - 학과 테이블 삭제

  • 고려사항
    - CASCADE CONSTRAINT 옵션은 해당 테이블과 관계가 있었던 제약조건에 대해서도 삭제한다는 것을 의미
    - SQL Server는 CASCADE 옵션이 존재하지 않기 때문에 테이블을 삭제하기 전에 참조하는 제약 조건, 테이블을 먼저 삭제해야 한다.
  • CASCADE : 참조하는 테이블을 연쇄적으로 제거
  • RESTRICT : 참조하는 테이블이 있을 경우 제거 안 됨



RENAME

  • 코드
    RENAME 기존테이블명 TO 변경테이블명;

  • 고려사항
    - SQL Server
    sp_rename 기존테이블명, 변경테이블명;



TRUNCATE

  • 코드
    TRUNCATE TABLE 테이블명;

  • 특징
    - 해당 테이블에 들어있던 모든 행들이 제거되고 저장 공간을 재사용 가능하도록 해제
    - 테이블 구조를 완전히 삭제하기 위해서는 DROP TABLE을 실행하면 된다.


'SQLD' 카테고리의 다른 글

SQL-WHERE  (0) 2019.10.23
SQL-TCL  (0) 2019.10.23
SQL-DML  (0) 2019.10.23
관계형데이터베이스 개요  (0) 2019.10.23
데이터 모델의 이해*  (0) 2019.08.08