Ex) 아래와 같은 구조를 가진 EMPLOYEE2 테이블을 생성하시오.
<2. DB 연결 웹 애플리케이션 - DDL>
[boostcourse full-stack] http://www.edwith.org/boostcourse-web
* 데이터 정의어
데이터베이스에 스키마 객체를 생성하거나 변경, 제거하는 일들을 수행한다.
MySQL 데이터 타입
테이블 생성 - 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씩 증가하는 번호 설정
테이블 수정 (컬럼 추가, 삭제) - alter
alter table 테이블명
add 필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
alter table 테이블명
drop 필드명;
Ex) EMPLOYEE2 테이블에 생일(birthdate)칼럼을 varchar(12)형식으로 추가하시오.
alter table EMPLOYEE2
add birthdate varchar(12);
Ex) EMPLOYEE2 테이블의 생일(birthdate)칼럼을 삭제하시오.
alter table EMPLOYEE2
drop birthdate;
테이블 이름 변경 - alter
alter table 테이블명 rename 변경이름
Ex) EMPLOYEE2 테이블의 이름을 EMPLOYEE3로 변경하시오.
alter table EMPLOYEE2
rename EMPLOYEE3;
테이블 컬럼 수정 - change
alter table 테이블명
change 필드명 새필드명 타입 [NULL | NOT NULL][DEFAULT ][AUTO_INCREMENT];
change 키워드를 사용하고 칼럼을 새롭게 재정의 (이름부터 속성까지 전부)
Ex) EMPLOYEE2 테이블의 부서번호(deptno)를 dept_no로 수정하시오.
alter table EMPLOYEE2
change deptno dept_no int(11);
테이블 삭제 - drop
drop table 테이블이름;
제약조건이 있을 경우 drop table 명령어로 삭제되지 않을 수 있다. (외래키 관계일 경우)
이럴 경우 테이블을 생성한 반대 순서로 삭제를 진행해야 한다.
'BoostCource > MySQL' 카테고리의 다른 글
[MySQL] 터미널을 통해 SQL 불러오기 (0) | 2018.11.24 |
---|---|
[MySQL] 데이터 조작어 DML (0) | 2018.07.15 |
[MySQL] MySQL 사용하기 (0) | 2018.07.15 |