MySQL 기본 문법 - 데이터베이스 수정하기
데이터베이스 만들기에서 보았듯 데이터베이스를 수정할 때도 똑같은 경로로 데이터에 접근한다.
데이터베이스 안에 'USE' 명령어로 접속한 뒤에 수정해주면 된다.
수정할 때는 'ALTER' 명령어를 써준다.
ALTER 명령어 |
설명 |
ADD |
테이블에 필드를 추가한다. |
MODIFY |
테이블에 있는 필드의 타입들을 변경가능하다. |
DROP |
테이블에 있는 필드를 삭제한다. |
ALTER 명령어의 사용법
명령어의 사용법은 다음과 같다.
CREATE DATABASE TestDb; -- 데이터 베이스 생성
USE TestDb; -- 데이터 베이스 선택
CREATE TABLE Student( -- 테이블 생성
Num INT AUTO_INCREMENT PRIMARY KEY NOT NULL,
-- 숫자 / 정수형 / 자동 채움 / 고유키 / NULL 허용 안함
Name Varchar(5) NOT NULL,
-- 이름 / 스트링(5)자까지 / NULL 허용 안함
Age INT NOT NULL
-- 나이 / 정수형 / NULL 허용 안함
);
-- 테이블에 자료 삽입 / 테이블명(테이블 Column명) / Column명의 VALUES 값 / (Column의 VALUES에 들어갈 값)
INSERT INTO Student(Num, Name, Age) VALUES (NULL, "홍길동", 10);
INSERT INTO Student(Num, Name, Age) VALUES (NULL, "둘리", 12);
INSERT INTO Student(Num, Name, Age) VALUES (NULL, "고길동", 13);
INSERT INTO Student(Num, Name, Age) VALUES (NULL, "스벤슨", 10);
INSERT INTO Student(Num, Name, Age) VALUES (NULL, "김철수", 10);
만약 위와 같이 만들어진 데이터베이스와 테이블이라면 다음과 같이 수정하면 된다.
1. ADD (필드의 추가)
ALTER TABLE Student ADD Grade INT NOT NULL; -- 필드 수정하기
위 코드를 실행하여 필드를 수정하면 아래와 같이 테이블의 필드값이 변경된다.
필드가 3개뿐인 테이블에 코드내용대로 Grade 필드가 추가된 것을 볼 수 있다.
2. MODIFY (필드의 수정)
ALTER TABLE Student MODIFY Grade CHAR(5) NOT NULL; -- 필드 타입 수정하기
필드의 값을 수정하기 위해서는 ALTER와 더불어 MODIFY 명령어를 써주고 바꿀 내용을 써준다.
그럼 아래와 같이 변경되는 것을 확인할 수 있다.
3. DROP (필드의 삭제)
위와 같이 필드를 추가해줬다가 삭제해야할 수도 있다.
그럴 때는 DROP 명령어를 사용하면 된다.
DROP 명령어로 코드를 써서 실행하면 아래와 같이 된다.
DROP의 경우 테이블의 필드 값을 바꿔줄 뿐 아니라 ALTER가 아니라
단독으로 써서 데이터베이스와 테이블도 삭제해줄 수 있다.
4. 기타 add를 통해 추가할 수 있는 것들
위 예시에서는 'alter'를 통해 'column'만 추가해줬다.
하지만 'alter'를 이용하면 'column' 외에도 제약 조건이 추가 가능하다.
alter table student -- 테이블 변경
add constraint test_student_name -- 제약 조건 추가하는데 이름을 지정
primary key (name); -- primary key -- name 지정
위의 경우는 'student' 테이블에 있는 'name' 필드값에 'primary key'를 추가해준 것이다.
이 외에도 foreign key, default 등 여러 제약 조건 추가가 가능하다.