[부스트코스] 웹 프로그래밍 강의를 수강한 학습 내용입니다.
– 출처 : 웹 프로그래밍 > 2.3) DDL(create, drop)
1. 테이블 생성 (CREATE)
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 : 값을 입력하지 않은 속성의 기본값을 지정
- AUTO_INCREMENT : 입력하지 않고 자동으로 1씩 증가하는 번호
◇ 예제
– 테이블명 EMPLOYEE2 를 아래와 같이 생성한다.
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
);
– 생성한 테이블 구조를 확인한다.
DESC EMPLOYEE2;
2. 테이블 수정 (ALTER)
1) 컬럼 추가
ALTER TABLE 테이블명
ADD 필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
◇ 예제
– EMPLOYEE2 테이블에 생일(birthdate) 컬럼을 VARCHAR(12) 형식으로 추가한다.
ALTER TABLE EMPLOYEE2
ADD birthdate VARCHAR(12);
2) 컬럼 삭제
ALTER TABLE 테이블명
DROP 필드명;
◇ 예제
– EMPLOYE2 테이블에 생일(birthdate) 컬럼을 삭제한다.
ALTER TABLE EMPLOYEE2
DROP birthdate;
3) 컬럼 수정
ALTER TABLE 테이블명
CHANGE 필드명 새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
◇ 예제
– EMPLOYEE2 테이블의 부서번호(deptno) 컬럼명을 dept_no 로 수정한다.
ALTER TABLE EMPLOYEE2
CHANGE deptno dept_no INT(11);
4) 테이블명 수정
ALTER TABLE 테이블명 RENAME 변경이름;
◇ 예제
– EMPLOYEE2 테이블의 이름을 EMPLOYEE3 으로 변경한다.
ALTER TABLE EMPLOYEE2 RENAME EMPLOYEE3;
3. 테이블 삭제 (DROP)
DROP TABLE 테이블명;
- 제약조건이 있는 경우 테이블이 삭제되지 않을 수 있다.
– 예를 들어, FOREIGN KEY 관계로 다른 테이블에서 NOT NULL 제약조건으로 설정된 테이블을 삭제할 경우 ‘a foreign key constraint fails’ 오류가 발생한다.
◇ 예제
– EMPLOYEE2 테이블을 삭제한다.
DROP TABLE EMPLOYEE2;