테이블의 생성과 변경

테이블 만들기

(형식)

CREATE CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name (
    컬럼 정의,
    ...)
    [테이블 옵션 지정]

TEMPORARY를 지정하면 1회용 테이블로 만들어져서 현재 연결이 유지되는 동안만 사용이 가능합니다. 현재 연결을 종료하면 자동으로 삭제됩니다. IF NOT EXISTS 지정은 이미 동일한 이름의 테이블이 존재할 경우 에러없이 문장의 실행을 중지시킵니다. 배치처리를 위해 사용합니다. 테이블 옵션 중 "ENGINE"은 "MyISAM"과 "InnoDB" 등이 사용되며 MyISAM의 경우 트랜젝션을 지원하지 않는대신 빠르고 안정적인 속도를 보장받을 수 있습니다. 반면 InnoDB의 경우 MyISAM에 비해 늦은 속도대신 트랜젝션을 지원합니다.

(사용예)

-- 테이블 생성
CREATE TABLE tab_sample (
    seq SERIAL, -- BIGINT UNSIGNED NOT NULL AUTO_INCREMENT UNIQUE 정의의 별칭(alias)
    name VARCHAR(8) NOT NULL,
    gender ENUM('남', '여') NOT NULL,
    age TINYINT(3) UNSIGNED NOT NULL,
    habby SET('독서', '낚시', '등산', '바둑', '헬스', '기타') NOT NULL,
    etc VARCHAR(50),
    PRIMARY KEY (seq) -- 테이블 제약으로 기본키 지정
    ) ENGINE = MyISAM; -- Storage Engine을 MyISAM으로 지정

-- 데이터 추가
INSERT INTO tab_sample (name, gender, age, habby)
VALUES ('홍길동', '남', '17', '독서,낚시'); -- SET값을 입력할 경우 띄어쓰기하면 안됩니다.

-- 테이터 추출
SELECT * FROM tab_sample;

테이블 변경하기

(형식)

ALTER [IGNORE] TABLE tbl_name
    alter_specification [, alter_specification] ...

ALTER TABLE 명령은 테이블의 컬럼의 추가, 변경, 삭제와 컬럼의 타입 변경, 제약 변경, 테이블의 이름 변경 및 컬럼 이름 변경 등 다양한 작업을 할 수 있습니다.

테이블 컬럼 추가

ALTER TABLE tab_sample
ADD COLUMN address VARCHAR(255) NOT NULL;

-- 컬럼을 시작 위치에 추가, "AFTER 컬럼명"을 이용하여 특정 컬럼 앞에 위치 가능
ALTER TABLE tab_sample
ADD COLUMN code VARCHAR(3) NOT NULL FIRST;

테이블 컬럼 변경

-- 컬럼 타입 변경
ALTER TABLE tab_sample
MODIFY COLUMN habby SET('독서', '낚시', '등산', '바둑', '헬스', '조깅', '기타') NOT NULL;

-- 컬럼 이름 변경 및 타입 변경
ALTER TABLE tab_sample
CHANGE COLUMN address addr VARCHAR(255) NOT NULL;

테이블 컬럼 삭제

-- 컬럼 삭제
ALTER TABLE tab_sample
DROP COLUMN etc;

테이블 옵션 변경

-- 저장 엔진 변경
ALTER TABLE tab_sample
ENGINE = InnoDB;

테이블 이름 변경

ALTER TABLE tab_sample
RENAME sample;

테이블 삭제하기

(형식)

DROP TABLE [IF EXISTS] tbl_name;

+ Recent posts