MySQL { DDL 데이터 정의어, 컬럼 데이터 타입, CREATE, ALTER ADD&DROP, DROP }
Ben의 프로그램2023. 7. 19. 23:15
728x90
DDL 데이터 정의어 (Data definition language) 이란?
데이터 정의어는 DB의 스키마 객체를 생성하고 변경하고 제거하는 일들을 수행합니다. 현재 우리 강의에서는 테이블만 다루고 있지만 테이블 뿐만 아니라 View, index 등 다양한 객체들을 생성 변경 제거 하는 일을 수행하는 것이 데이터 정의어 입니다. 일단 우리는 테이블을 먼저 고려할 것이기 때문에 테이블을 정의할 때 필드들의 데이터 타입으로는 어떤 것들이 올 수 있는지 보아야 합니다.
MySQL 데이터 타입
MySQL 에서 사용되는 데이터 타입에는 어떤 것들이 있는지 살펴보겠습니다.
TINYINT, SMALLINT, MEDIUMINT, INT, INTEGER, BIGINT, FLOAT, DOUBLE, DATE, DATETIME, TIMESTAMP, TIME, YEAR, CHAR, VARCHAR, TINYBLOB, TINYTEXT, BLOB, TEXT, MEDIUMBLOB, MEDIUMTEXT, LONGBLOB, LONGTEXT 등이 있습니다.
테이블 생성 CREATE
테이블 생성할 때 사용하는 CREATE DDL 을 살펴보겠습니다. Create table 할 때는 필드들의 타입, 조건, 초기값 등을 설정할 수 있습니다. employee2 테이블을 만드는 create 쿼리를 생성하였습니다. Book 테이블을 생성해 보았습니다.
테이블 수정 ALTER { add, drop, rename
생성한 테이블을 수정하는 ALTER 에 대해서 배워보겠습니다. 필드를 추가하는 것은 add 를 사용하고 삭제하는 것은 drop 을 사용합니다.
테이블을 삭제하는 것은 컬럼을 삭제하는 것과 마찬가지로 drop 을 사용합니다. 가끔 제약조건 때문에 삭제가 되지 않는 경우가 발생합니다. 어떤 경우나면 예를 들어 부서와 사원 테이블이 있다고 했을 때 부서 테이블이 먼저 생성된 다음 사원 테이블이 생성되었는데요. 두 테이블은 공통된 컬럼을 가지면서 포링키 관계를 갖고 있습니다. 말이 어려운데요. 두 테이블이 참조 관계를 가질 때 참조 하는 테이블이 먼저 삭제되어야 하는 것을 의미합니다. 아무튼 drop table 을 할 때는 생성된 역순으로 삭제를 진행해야 합니다.