[SQL] 4. DDL이란?

gyrud02·2021년 12월 28일
0

데이터베이스(DB)

목록 보기
6/8

4. DDL(Data Definition Language)

테이블 구조를 정의하는데 사용되는 명령어다. CREATE, ALTER, DROP, TRUNCATE 등이 DDL에 속한다.

1) 데이터 타입

  • TINYINT(M) : 부호 있는 수 -128~127, 부호 없는 수 0~255 / 1바이트
  • SMALLINT(M) : 부호 있는 수 -32768~32767, 부호 없는 수 0~65535 / 2바이트
  • MEDIUMINT(M) : 부호 있는 수 -8388608~8388607, 부호 없는 수 0~16777215 / 3바이트
  • INT(M) or INTEGER(M) : 부호 있는 수 -2147483648~2147483647, 부호 없는 수 0~4294967295 / 4바이트
  • BIGINT(M) : 부호 있는 수 -92233720036854775808~92233720036854775808, 부호 없는 수 0~18446744073709551615
  • FLOAT(M, D) : 부동 소수점, 항상 부호 있는 수 -3.402823466E+ 38~3.402823466E+ 38
  • DOUBLE(M, D) : 2배 정밀도를 가진 부동 소수점 -1.79769313486231517E+ 308~6931348623157E+ 308
  • DATE : 날짜를 표현하는 타입, '9999-12-31' / 3바이트
  • DATETIME : 날짜와 시간을 같이 나타내는 타입, '9999-12-31 23:59:59' / 8바이트
  • TIMESTAMP : '1970-01-01 00:00:00'부터 2037년까지 나타낼 수 있다. / 4바이트

2) 테이블

① 테이블 생성
// 예시
CREATE TABLE 테이블명(
	필드명1 데이터타입 [NULL / NOT NULL][Default][AUTO_INCREMENT],
	필드명2 데이터타입 [NULL / NOT NULL][Default][AUTO_INCREMENT],
    		    .
                    .
                    .
    PRIMARY KEY(필드명)
);


// 예제 - EMPLOYEE와 같은 구조를 가진 EMPLOYEE2 테이블을 생성하시오.
CREATE TABLE employee2(
	empno INT(11) NOT NULL PRIMARY KEY,
    name VARCHAR(10),
    job VARCHAR(9),
    boss INT(11),
    hiredate VARCHAR(12),
    salary DECIMAL(7, 2),
    comm DECIMAL(7, 2),
    deptno INT(11),
);
  • 데이터 형 외에도 속성 값의 빈 값 허용 여부는 NULL / NOT NULL로 설정한다.
  • Default 키워드와 함께 입력하지 않았을 때의 초기값을 지정할 수 있다.
  • 입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT
② 테이블 필드 수정
// 예시
ALTER TABLE 테이블명
ADD 필드명 데이터타입 [NULL / NOT NULL][Default][AUTO_INCREMENT]; // 필드명 추가

ALTER TABLE 테이블명
DROP 필드명; // 필드명 삭제


// 예제 - employee2 테이블에 생일(birthdate) 컬럼을 varchar(12) 형식으로 추가하라.

ALTER TABLE employee2
ADD birthdate varchar(12);


// 예제 - employee2 테이블의 생일(birthdate) 컬럼을 삭제하라.
ALTER TABLE employee2
DROP birthdate;
③ 테이블 컬럼 수정
// 예시
ALTER TABLE 테이블명
CHANGE 필드명 새필드명 데이터타입 [NULL / NOT NULL][Default][AUTO_INCREMENT];


// 예제 - employee2 테이블의 부서번호(deptno)를 dept_no로 수정하라
ALTER TABLE employee2
CHANGE deptno dept_no int(11);
  • CHANGE 키워드를 사용하고 컬럼을 새롭게 재정의한다. (이름부터 속성까지 전부)
④ 테이블명 변경
// 예시
ALTER TABLE 테이블명
RENAME 변경할 테이블명


// 예제 - employee2 테이블의 이름을 employee2으로 변경하라.
ALTER TABLE employee2
RENAME employee3;
  • RENAME 키워드를 사용하여 테이블명 변경을 할 수 있다.
⑤ 테이블 삭제
// 예시
DROP TABLE 테이블명;


// 예제 - employee2 테이블을 삭제하라.
DROP TABLE employee2;
  • 제약 조건이 있을 경우, DROP TABLE 명령으로도 테이블이 삭제되지 않을 수 있다. 그럴 경우에는 테이블을 생성한 반대 순서로 삭제를 한다.
profile
Back-End Engineer

0개의 댓글