DDL (Data Definition Language)
MySQL 데이터 타입


테이블 생성
1
2
3
4
5
6
7
| create table 테이블명(
필드명1 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT],
필드명2 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT],
필드명3 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT],
...........
PRIMARY KEY(필드명)
);
|
- 데이터 형 외에도 속성값의 빈 값 허용 여부는 NULL 또는 NOT NULL로 설정
- DEFAULT 키워드와 함께 입력하지 않았을 때의 초기값을 지정
- 입력하지 않고 자동으로 1씩 증가하는 번호를 위한 AUTO_INCREMENT
테이블 생성 실습
- EMPLOYEE와 같은 구조를 가진 EMPLOYEE2 테이블을 생성합니다.
1
2
3
4
5
6
7
8
9
| CREATE TABLE EMPLOYEE2(
empno INTEGER NOT NULL PRIMARY KEY,
name VARCHAR(10),
job VARCHAR(9),
boss INTEGER,
hiredate VARCHAR(12),
salary DECIMAL(7, 2),
comm DECIMAL(7, 2),
deptno INTEGER);
|
테이블 수정 (컬럼 추가 / 삭제)
1
2
3
4
5
| alter table 테이블명
add 필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table 테이블명
drop 필드명;
|
테이블 수정 실습 (컬럼 추가)
- EMPLOYEE2 테이블에 생일(birthdate)칼럼을 varchar(12)형식으로 추가합니다.
1
2
3
| alter table EMPLOYEE2
add birthdate varchar(12);
|
테이블 수정 실습 (컬럼 삭제)
- EMPLOYEE2 테이블의 생일(birthdate)칼럼을 삭제합니다.
1
2
3
| alter table EMPLOYEE2
drop birthdate;
|
테이블 수정 (컬럼 수정)
1
2
| alter table 테이블명
change 필드명 새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
|
- change 키워드를 사용하고 칼럼을 새롭게 재정의 합니다 (이름부터 속성까지 전부)
테이블 수정 실습 (컬럼 수정)
- EMPLOYEE2 테이블의 부서번호(deptno)를 dept_no로 수정합니다.
1
2
3
| alter table EMPLOYEE2
change deptno dept_no int(11);
|
테이블 이름 변경
1
| alter table 테이블명 rename 변경이름
|
테이블 이름 변경 실습
- EMPLOYEE2 테이블의 이름을 EMPLOYEE3로 변경합니다.
1
2
3
| alter table EMPLOYEE2
rename EMPLOYEE3;
|
테이블 삭제하기
- 참고로, 제약 조건이 있을 경우에는 drop table 명령으로도 테이블이 삭제되지 않을 수 있습니다. 그럴 경우는 테이블을 생성한 반대 순서로 삭제를 해야합니다.
테이블 삭제 실습
* 테이블 삭제 후 desc 명령을 수행하면, 존재하지 않는 테이블이라고 표시됩니다.
출처 : https://www.boostcourse.org/web326/lecture/58936