데이터베이스 6주차
create table 도서 (
번호 int,
제목 varchar(30),
가격 int );
테이블 변경
열 추가/삭제
열 추가
ALTER TABLE 도서
ADD 구입일자 DATETIME DEFAULT '2009-11-01';
열 삭제
alter table 도서
drop 구입일자
기본키 추가
- 기본 키 추가
ALTER TABLE 도서
ADD [CONSTRAINT [이름]] PRIMARY KEY(번호);
- 기본 키 삭제
ALTER TABLE 도서
DROP PRIMARY KEY;
- 기본키는 테이블당 하나밖에 존재하지않기때문에 그냥 써도 괜찮다.
- 외래키 추가
ALTER TABLE 도서
ADD [CONSTRAINT [fk_name]] FOREIGN KEY(...) ...;
- 테이블 생성 시 외래키를 정의하는 방식으로 정의
- 외래키 삭제
ALTER TABLE 도서
DROP FOREIGN KEY fk_name;
- 데이터 무결성 제약조건 추가
ALTER TABLE 도서
ADD [CONSTRAINT [chk_price]] CHECK(가격>=0);
- 테이블 생성 시 데이터 무결성 제약조건을 정의하는 방식으로 정의
- 데이터 무결성 제약조건 삭제
ALTER TABLE 도서
DROP CONSTRAINT chk_price;
열 정의 변경
- 열 정의만 변경
ALTER TABLE 테이블_이름
MODIFY 열_이름 새_열_정의;
- 초기 테이블 생성 시 칼럼 정의하는 방식으로 정의
- 열 이름과 정의 동시 변경
ALTER TABLE 테이블_이름
CHANGE 이전_열_이름 새_열_이름 새_열_정의;
- 새_열_정의는 생략할 수 없음
열 정의 변경
ALTER TABLE 도서
MODIFY 구입일자 DATE;
ALTER TABLE 도서
CHANGE 번호 도서코드 INT NOT NULL;
• 이전 정의에 포함되었지만 신규 정의에 명시되지않은 사항은 무시됨
– 인덱스 관련 설정(PRIMARY KEY, UNIQUE)은 유지됨
• 데이터 타입을 변경하면 기존 데이터들은 MySQL이 자동으로 변환함