ABOUT ME

더 많은 경험으로 더 넓은 세상으로

Today
Yesterday
Total
  • 데이터 정의어(DDL)
    DataBase/SQL 2022. 11. 10. 21:51
    728x90

     

     

    데이터 정의어(DDL : Data Definition Language)

    데이터를 정의하는 언어로서 데이터를 담는 그릇을 의미한다. 데이터 베이스를 정의하고 테이블을 생성하는 등 데이터를 담을 수 있는 골격을 결정하는 역할을 한다.

     

     

     

    명령어

    - CREATE(생성) : 데이터 베이스, 테이블을 생성한다.

    - ALTER(수정) : 테이블을 수정한다.

    - DROP(삭제) : 데이터 베이스, 테이블을 삭제한다. 

    - TRUNCATE(초기화) : 테이블 내 데이터를 초기화한다.

     

     


     

     

    테이블 생성

    create table 테이블명(
        컬럼명1 데이터타입 [제약조건],
        컬럼명2 데이터타입 [제약조건],
        컬럼명3 데이터타입 [제약조건],
        ...
        컬럼명n 데이터타입 [제약조건]
    );

     

     

    * 데이터타입

    1. 숫자타입
       정수 : tinyint, smallint,meduimint, int, bigint ..
       실수 : float, double
       
    2. 문자열타입
       텍스트 : char, varchar, text
        - char(10) : 1byte 만 저장하더라도 총 10byte 를 소모함
        - varchar(10) : 1byte 만 저장하면 총 1byte 를 소모함, 총 65535byte 까지 저장 가능
          바이너리 : binary, varbinary
          열거 : enum
          enum('남자','여자')
          
    3. 날짜와 시간타입
       날짜 : date
       날짜와 시간타입 : datetime, timestamp
       timestamp : 1970년 1월 1일 0시 0분 0초 부터, 밀리세컨드 단위로 증가 

     

     

     

    * 제약조건

    종류 설명
    not null 컬럼에 null 을 저장할 수 없을 의미
    unique 중복된 값을 저장할 수 없음, 그 대신 null 값을 허용
    default 기본값을 설정
    auto_increment 자동으로 숫자가 증가되어 추가, 중복값이 저장되지 않음, 직접 데이터를 추가할 수 없음
    primary key 제약과 not null 제약을 동시에 가짐, 테이블에 오직 하나의 컬럼에만 적용됨.
    데이터를 쉽고 빠르게 찾을 수 있게 설정(색인), 외래키가 참조할 수 있도록 설정
    foreign key 다른 테이블과 연결해주는 역할, 기준이 되는 테이블의 내용을 참조해서 레코드를 입력.
    primary key 를 참조 

     

     

    -- 예시)
    create table member(
        idx int auto_increment primary key,
        userid varchar(20) unique not null,
        name varchar(20) not null,
        password varchar(20) not null,
        regdate datetime default now()
    );

     

     


     

     

    테이블 수정

    ALTER TABLE 테이블명 ADD 컬럼명 데이터타입[제약조건]; -- *추가
    ALTER TABLE 테이블명 MODIFY 컬럼명 데이터타입[제약조건]; -- *수정
    ALTER TABLE 테이블명 DROP 컬럼명 데이터타입[제약조건]; -- *삭제

     

     


     

     

    테이블 삭제

    테이블 자체를 모두 지우는 것으로 인덱스도 같이 지워진다.

    DROP TABLE 테이블명 [CASCADE | RESTRICT]; 
    -- *CASCADE : 연쇄제거, RESTRICT : 참조중 제거하지않음

     

     


     

     

    데이터 삭제

    테이블의 데이터를 전부 삭제하고 사용하고 있던 공간을 반납한다. 테이블 자제가 지워지는 것이 아니며, 인덱스 또한 TRUNCATE 된다.

    TRUNCATE TABLE 테이블명;

     

     

     

     

    728x90

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

    댓글

Designed by Tistory.