[DataBase] SQL의 데이터 정의어(DDL)

MINJEE·2023년 8월 25일

SMHRD_2_DataBase

목록 보기
5/9
post-thumbnail

데이터 정의어 (DDL)

: DDL(Data Definition Language) 는 데이터베이스 데이터를 보관하고 관리하기 위해 
제공되는 여러 객체(object)의 생성/변경/삭제 관련 기능을 수행
  • DDL 사용 시 유의점 : DDL 사용 시 자동으로 COMMIT 되므로, ROLLBACK을 통해 실행 취소 불가능 !

CREATE

  • 테이블 생성 : CREATE TABLE
    CREATE TABLE 테이블명(
    필드명1 데이터타입1 [not null],
    필드명2 데이터타입2 [not null],
    ...,
    CONSTRAINT pk_테이블명 PRIMARY KEY (필드명) --기본키 지정
    CONSTRAINT fk_참조테이블명 FOREIGN KEY (필드명) REFERENCES 참조한테이블명 (그 테이블의 기본키) --외래키 지정
    ); --pk_테이블명, fk_참조테이블명 은 제약사항 이름
    • NOT NULL : NULL값 불가능
    • 기존 테이블의 열 구조와 데이터 복사하여 새로운 테이블 생성하기
      CREATE TABLE 테이블명 AS SELECT;
      • as select문으로 테이블 구조와 데이터 복사하여 새로운 테이블 생성
      • select문 안에 where절을 사용하여 일부 데이터만 복사할 수 있음
      • where절에 FALSE 조건(ex. WHERE 1 <> 1)을 사용하여 데이터는 복사하지 않고 테이블 구조만 복사할 수 있음
        create table 새테이블명 as select * from 기존테이블명; --기존테이블의 열 구조와 모든 데이터 복사
        create table 새테이블명 as select * from 기존테이블명 where deptno=30; --기존테이블의 열 구조와 일부 데이터만(부서번호가 30인 것만) 복사
        create table 새테이블명 as select * from 기존테이블명 where 1<>1; --기본테이블의 열 구조만 복사

DROP / TRUNCATE

  • 테이블 삭제 : DROP TABLE
    DROP TABLE 테이블명; --테이블의 데이터와 구조 삭제
  • 테이블의 데이터 삭제 : TRUNCATE TABLE
    TRUNCATE TABLE 테이블명; --테이블의 전체 데이터 삭제(but DELETE와 달리 rollback불가능)

ALTER

  • 테이블 변경 : ALTER TABLE문
    ALTER TABLE 테이블명 ADD 추가할필드명 데이터타입;
    ALTER TABLE 테이블명 RENAME COLUMN 기존필드명 TO 새로운필드명;
    ALTER TABLE 테이블명 MODIFY 필드명 데이터타입;
    ALTER TABLE 테이블명 DROP COLUMN 필드명;
    • ADD : 테이블에 필드 추가
    • RENAME COLUMN ~ TO : 필드명 변경
    • MODIFY : 필드의 자료형 변경
    • DROP COLUMN : 필드 삭제

RENAME

  • 테이블 이름 변경 : RENAME
    RENAME 기존테이블명 TO 새로운테이블명;

DESC

  • 테이블 구조 확인 : DESC
    DESC 테이블명;
profile
개발, 분석 배운 내용 정리하기!

0개의 댓글