본문 바로가기
programming/DataManage

MySQL 테이블 수정 컬럼 추가 쿼리 만들기 ALTER TABLE ADD

by 개코 - 개발과 코딩 2021. 4. 18.

MySQL 을 이용해 테이블을 만들었다면 컬럼을 추가할 일이 있다. 이미 만들어진 테이블에 컬럼을 추가하는 것이기 떄문에 테이블의 형태는 수정상태가 되며, 컬럼은 추가하는 명령어를 사용한다. 툴을 사용하는 것보다 만들어진 쿼리 텍스트가 많다면 좀 더 유연히 활용할 수 있다.

테이블 수정

이미 만들어진 테이블을 수정하려면 ALTER TABLE table명 을 사용한다.

ALTER TABLE 명령어는 테이블을 수정하는 mysql 명령어이다.

테이블의 속성을 변경하는 것이기 때문에 이 같은 명령어를 사용한다.

ALTER TABLE 테이블명

 

컬럼 추가

만들어진 테이블에 컬럼을 추가하는 것은 ADD 명령어를 사용한다.

없는 컬럼을 추가하는 것이기 때문에 ADD 명령어를 주고 컬럼을 추가하게 된다.

컬럼을 추가할 때 컬럼명과 컬럼의 데이터타입은 필수로 기재해야 한다.

ADD 컬럼명 컬럼데이터타입

 

테이블 수정 컬럼 추가 하기

위에 있는 구문을 연결하면 컬럼을 추가하는 테이블을 수정하는 작업을 하게 된다.

테이블에 컬럼을 추가하는 작업을 하는 수정을 한다.

ALTER TABLE 테이블명 ADD 컬럼명 컬럼_데이터타입
;

 

MySQL 의 전체 데이터타입에 대한 컬럼을 추가해 보자

연습삼아 MySQL 에서 제공하는 데이터타입에 대한 컬럼을 전부 추가해 보도록 하자.

아래의 쿼리를 보면 그리 어려운 것은 없다.

/** 테이블 정수형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_tinyint TINYINT;
ALTER TABLE tb_test ADD COLUMN tc_smallint SMALLINT;
ALTER TABLE tb_test ADD COLUMN tc_mediumint MEDIUMINT;
ALTER TABLE tb_test ADD COLUMN tc_int INT;
ALTER TABLE tb_test ADD COLUMN tc_bigint BIGINT;
ALTER TABLE tb_test ADD COLUMN tc_bit BIT;

/** 테이블 실수형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_float FLOAT;
ALTER TABLE tb_test ADD COLUMN tc_double DOUBLE;
ALTER TABLE tb_test ADD COLUMN tc_decimal DECIMAL;

/** 테이블 문자형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_char CHAR(10);
ALTER TABLE tb_test ADD COLUMN tc_varchar VARCHAR(10);
ALTER TABLE tb_test ADD COLUMN tc_tinytext TINYTEXT;
ALTER TABLE tb_test ADD COLUMN tc_text TEXT;
ALTER TABLE tb_test ADD COLUMN tc_mediumtext MEDIUMTEXT;
ALTER TABLE tb_test ADD COLUMN tc_longtext LONGTEXT;
ALTER TABLE tb_test ADD COLUMN tc_json JSON;

/** 테이블 바이너리형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_binary BINARY;
ALTER TABLE tb_test ADD COLUMN tc_varbinary VARBINARY(10);
ALTER TABLE tb_test ADD COLUMN tc_tinyblob TINYBLOB;
ALTER TABLE tb_test ADD COLUMN tc_blob BLOB;
ALTER TABLE tb_test ADD COLUMN tc_mediumblob MEDIUMBLOB;
ALTER TABLE tb_test ADD COLUMN tc_longblob LONGBLOB;

/** 테이블 시간형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_date DATE;
ALTER TABLE tb_test ADD COLUMN tc_time TIME;
ALTER TABLE tb_test ADD COLUMN tc_year YEAR;
ALTER TABLE tb_test ADD COLUMN tc_datetime DATETIME;
ALTER TABLE tb_test ADD COLUMN tc_timestamp TIMESTAMP;

/** 테이블 공간,기하학형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_point POINT;
ALTER TABLE tb_test ADD COLUMN tc_linestring LINESTRING;
ALTER TABLE tb_test ADD COLUMN tc_polygon POLYGON;
ALTER TABLE tb_test ADD COLUMN tc_geometry GEOMETRY;
ALTER TABLE tb_test ADD COLUMN tc_multipoint MULTIPOINT;
ALTER TABLE tb_test ADD COLUMN tc_multilinestring MULTILINESTRING;
ALTER TABLE tb_test ADD COLUMN tc_multipolygon MULTIPOLYGON;
ALTER TABLE tb_test ADD COLUMN tc_geometrycollection GEOMETRYCOLLECTION;

/** 테이블 기타형 컬럼 추가하기 */ 
ALTER TABLE tb_test ADD COLUMN tc_enum ENUM('A','B','C');
ALTER TABLE tb_test ADD COLUMN tc_set SET('A','B','C');
반응형

댓글