ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MySQL 기본 문법 - 데이터베이스 수정하기
    데이터베이스/MySQL 2020. 9. 25. 01:19

    데이터베이스 만들기에서 보았듯 데이터베이스를 수정할 때도 똑같은 경로로 데이터에 접근한다.

     

    데이터베이스 안에 '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 등 여러 제약 조건 추가가 가능하다.

Designed by Tistory.