ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [SQL DDL] SQL 테이블 생성CREATE, 수정ALTER, 삭제DROP
    직접 해보기/SQL 2024. 8. 7. 21:12
    728x90
    반응형

     

    0️⃣  DDL (Data Definition Language, 데이터 정의어)

    • 관계형 데이터베이스(RDB; Relation Database)는 릴레이션(Relation)에 데이터를 저장, 관리합니다.
      릴레이션은 데이터베이스 관리시스템(DBMS)에서 테이블(Table)로 생성되며,
      이 때 테이블을 생성, 변경, 삭제할 때 사용하는 명령어를 통틀어 DDL 이라고 부릅니다.
    • 다시 말해, DDL은 RDB의 구조를 정의하는 명령어 = 데이터를 저장하는 테이블을 생성, 변경, 삭제하기 위한 명령어 입니다.
    • 예를 들면, 새로운 테이블 생성, 열 추가, 열 데이터타입 변경, 열 이름 변경, 테이블 이름 변경, 테이블 삭제 등이 있습니다.
    테이블 생성 테이블 변경 테이블 삭제
    CREATE TABLE ALTER TABLE DROP TABLE
    - 새로운 테이블 생성
    - 기본키(PK), 외래키(FK), 제약사항 설정
    - 열 추가, 변경, 삭제
    - 이름 변경 등
    - 테이블 삭제
    - 데이터 구조, 저장된 데이터 모두 삭제

    1️⃣  테이블 생성 :: CREATE TABLE

    • CREATE TABLE 명령어를 사용하여 테이블을 생성할 수 있습니다.
    • 테이블을 생성할 때, 각각의 열은 반드시 1가지의 데이터타입으로 정의되어야 합니다.
      데이터타입은 크게 숫자형, 문자형, 날짜형으로 지정할 수 있습니다.
    • 아래 예시에서 회원번호는 정수, 회원이름은 가변길이 문자형, 가입날짜는 날짜형, 문자수신동의는 논리형으로 지정했습니다.
    숫자형 문자형 날짜형
    BIT 논리형 (0 or 1 or NULL) CHAR(n) 고정길이 문자형 DATETIME 년-월-일 시:분:초
    INT 정수 (4byte) NCHAR(n) 유니코드 고정길이 문자형 DATE 년-월-일
    BIGINT 정수 (8byte) VARCHAR(n) 가변길이 문자형 TIME 시:분:초
    FLOAT 실수 (4byte) NVARCHAR(n) 유니코드 가변길이 문자형    
    DOUBLE 실수 (8byte)        
    • 또한 각 열마다 제한조건을 정의할 수 있습니다.
      아래 예시에서 회원번호 열은 기본키(PK)로 지정했으며, 가입날짜 열은 Null값을 허용하지 않도록 제약조건을 걸었습니다.
    • 기본키(PK)는 엔터티를 대표할 수 있는 주식별자를 말합니다. PK로 지정된 열에는 중복값이나 Null값이 있으면 안됩니다.

    (MySQL) 테이블 생성 예시

     

     

     

     


    2️⃣  테이블 변경/수정 :: ALTER TABLE

    • ALTER TABLE 명령어를 사용하여 테이블을 변경 및 수정할 수 있습니다.
    새로운 열 추가 열 데이터타입 변경 열 이름 변경 테이블 이름 변경
    ADD MODIFY CHANGE RENAME

     

    • 새로운 열을 추가하려면, 아래와 같이 ADD 를 활용합니다.
      테이블을 확인하니 새로 추가한 열 "성"이 맨 끝에 추가된 모습을 확인할 수 있습니다.

     

    • 기존 열의 데이터타입을 변경하려면, MODIFY  를 활용합니다.

     

    • 기존 열의 이름을 변경하려면, CHANGE 를 활용합니다.

     

    • 기존 테이블의 이름을 변경하고 싶다면, RENAME 을 활용합니다.


    3️⃣  테이블 삭제 :: DROP TABLE

    • DROP TABLE 명령어로 테이블 구조와 데이터를 모두 삭제할 수 있습니다.


    참고1: boostcourse 강좌 (기초 데이터 분석을 위한 핵심 SQL)

    참고2: https://buly.kr/DwCTC3z

     

    728x90
    반응형