DataBase/SQL

데이터 정의어(DDL)

하와이블루 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