[MySQL] ALTER TABLE의 ADD와 DROP

2024. 12. 9. 17:01·Database/MySQL

데이터 정의어 DDL

DDL; Data Definition Language
생성, 변경, 삭제 등 데이터베이스 구조를 정의한다.

 

ALTER TABLE

테이블의 구조를 변경할 때 사용하는 ALTER TABLE 명령어. ADD, DROP, MODIFY, CHANGE, RENAME 속성을 추가, 삭제, 수정을 할 수 있다. add와 drop을 통해서 속성와 제약조건을 추가, 삭제하는 방법을 알아보고자 한다.

 

 

ADD 속성 추가

ALTER TABLE 테이블 ADD 속성 타입 [NOT NULL] [DEFAULT 기본값];

add와 함께 추가할 속성을 지정한다.

alter table guest add phone int;   <<   guest테이블에 int타입의 phone이라는 속성을 추가한다.

 

 

DROP 속성 삭제

ALTER TABLE 테이블 DROP COLUMN 속성;

속성은 하나의 열 → Column으로 속성 삭제 시 column을 작성해야 한다. 참조하는 다른 속성이 있으면 참조 속성을 먼저 제거하고, 관련된 제약조건이 있는 경우에도 제약조건을 먼저 제거해줘야 한다.

alter table guest drop column visit; <<   guest테이블에서 visit를 삭제한다.

 

 

ADD CONSTRAINT 제약조건 추가

ALTER TABLE 테이블 ADD CONSTRAINT 제약조건 내용;

제약조건을 추가한다. 추가할 제약조건의 이름과 해당 제약조건 내용을 작성한다.

alter table guest add constraint phone_number check (length(phone) = 8);
alter table guest add constraint age_check check (age >= 19);

 <<  guest테이블에서 phone의 길이는 11로 제한하고, 성인만 입력 가능하도록 age에 조건을 둔다.

 

 

DROP CONSTRAINT 제약조건 삭제

ALTER TABLE 테이블 DROP CONSTRAINT 제약조건;

명시한 제약조건 이름을 통해 테이블에서 제약조건을 삭제한다. 제약조건 이름을 명시해두면 이처럼 삭제에 도움이 된다.

alter table guest drop constraint age_check; << 성인 확인을 위한 age_check를 삭제한다.

 

 

DROP TABLE

DROP TABLE 테이블;

테이블을 삭제한다.

 


 

예시

create database hotel;
use hotel;

create table guest(
	name varchar(10) not null primary key,
    age int not null,
    visit date
);

 

 

create table을 통해 guest를 만들었다. name과 age, visit 속성을 추가한 테이블의 구조는 이와 같다.

위에서 작성해본 예시 코드를 이 테이블에 적용시키면 아래와 같다.

 

 

1. 속성과 제약조건 추가

alter table guest add phone int;
alter table guest add constraint phone_number check (length(phone) = 8);

 

2. 제약조건 삭제

alter table guest add constraint age_check check (age >= 19);
alter table guest drop constraint age_check;

성인 고객만 받기 위해 나이를 확인하는 제약조건을 두었지만(age_check), 모든 가족이 사용할 수 있도록 해당 제약조건을 삭제하였다.

 

3. column 삭제

alter table guest drop column visit;

고객의 방문 날짜는 고객 관리 테이블이 아닌 방문 테이블에서 관리하기 위해 삭제하였다.

 

 

저작자표시 (새창열림)

'Database > MySQL' 카테고리의 다른 글

[MySQL] 데이터 조작어 DML의 SELECT 기본 사용법  (0) 2025.01.09
[MySQL] 데이터 정의어 DDL의 CREATE  (2) 2024.12.03
'Database/MySQL' 카테고리의 다른 글
  • [MySQL] 데이터 조작어 DML의 SELECT 기본 사용법
  • [MySQL] 데이터 정의어 DDL의 CREATE
rvrlo
rvrlo
공부하는 공간
  • rvrlo
    Pale Blue Dot
    rvrlo
    • euuns
  • 전체
    오늘
    어제
    • 분류 전체보기 (103)
      • Language (21)
        • JAVA (18)
        • PYTHON (0)
        • HTML | CSS (3)
      • Knowledge (10)
        • 자료구조 (5)
        • 알고리즘 (4)
        • 디자인패턴 (1)
      • ComputerScience (5)
        • 운영체제 (1)
        • 컴퓨터구조 (0)
        • 네트워크 (4)
      • Database (10)
        • basic (3)
        • MySQL (3)
        • JPA (4)
      • CodingTest (17)
        • BOJ (10)
        • programmers (7)
      • Framework (18)
        • Spring (12)
        • SpringBoot (6)
      • AndroidStudio (1)
      • etc (5)
        • error (4)
        • Git (1)
      • 내일배움캠프 (13)
  • 최근 글

  • 태그

    DFS
    springboot
    데이터베이스
    프로그래머스
    Spring
    그래프
    db
    Algorithm
    스프링
    파이썬
    JPA
    자바스프링
    DataStructure
    자료구조
    Java
    자바
    Spring Boot
    BOJ
    백준
    알고리즘
  • hELLO· Designed By정상우.v4.10.3
rvrlo
[MySQL] ALTER TABLE의 ADD와 DROP
상단으로

티스토리툴바