지난 포스팅에서 테이블 생성 · 삭제를 적용해 보았다.
이어서 테이블 수정 구문을 알아보자.
테이블 정보를 관리할 때는, ALTER TABLE 구문을 사용한다.
*alter : 바꾸다
테이블 이름 변경
지난 포스팅에서 테이블 삭제 후 재생성하는 방법을 배웠다.
하지만 테이블에 데이터가 있다고 가정했을 때,
삭제하는 방법보다는 이름만 수정하는 방법을 택해야 할 것이다.
테이블 이름을 수정하는 문법은 다음과 같다.
문법)
ALTER TABLE '변경 전 테이블 이름' RENAME '변경 후 테이블 이름';
예시)
ALTER TABLE user RENAME userinfo;
SHOW TABLES; 명령어를 통해 변경 전·후를 확인해보자.
테이블 이름이 'user' > 'userinfo' 로 변경되었다.
테이블에 컬럼 추가
이미 생성된 테이블에 새로운 컬럼을 추가해보자.
문법)
ALTER TABLE '테이블 이름' ADD '추가할 컬럼 이름' '제약 조건';
예시)
ALTER TABLE user ADD age INT(3) NOT NULL;
마찬가지로, 테이블 구조를 확인하는 문법을 통해 확인해보자.
age 컬럼이 추가되었다.
+ 새로운 컬럼을 추가할 때, 위치를 지정해 줄 수 있다.
● 테이블의 첫 번째 위치에 컬럼 추가
문법)
ALTER TABLE '테이블 이름' ADD '추가할 컬럼 이름' '제약 조건' FIRST;
예시)
ALTER TABLE user ADD type VARCHAR(30) NOT NULL FIRST;
새로 추가한 'type' 컬럼이 테이블 맨 위에 추가된 것을 확인할 수 있다.
● 지정한 컬럼 다음 순서에 컬럼 추가
문법)
ALTER TABLE '테이블 이름' ADD '추가할 컬럼 이름' '제약 조건' AFTER '지정 위치 컬럼 이름';
예시)
ALTER TABLE user ADD hobby VARCHAR(30) NOT NULL AFTER id;
'id' 컬럼의 위치를 지정했고, 'id' 컬럼 다음 순서로 'hobby' 컬럼이 추가되었다.
컬럼 수정
컬럼의 정보(제약 조건)를 수정해보자.
문법)
ALTER TABLE '테이블 이름' MODIFY '수정할 컬럼 이름' '제약 조건';
예시)
ALTER TABLE user MODIFY nickname VARCHAR(20);
30글자로 제한되있던 'nickname' 컬럼의 조건을 20글자 제한으로 수정하고,
NOT NULL 제약 조건을 삭제했다.
컬럼의 이름과 정보를 동시에 수정하는 방법이다.
문법)
ALTER TABLE '테이블 이름' CHANGE '변경 전 컬럼 이름' '변경 후 컬럼 이름' '제약 조건';
예시)
ALTER TABLE user CHANGE nickname name VARCHAR(20) NOT NULL;
'nickname' 컬럼의 이름을 'name' 으로 변경하고,
NOT NULL 제약 조건을 추가했다.
컬럼 삭제
해당 컬럼을 삭제하는 구문이다.
문법)
ALTER TABLE '테이블 이름' DROP '삭제할 컬럼 이름';
예시)
ALTER TABLE user DROP phone;
'phone' 컬럼이 삭제된 것을 확인할 수 있다.
여러 작업 동시 수행
SQL 구문을 작성할 때, 한 번에 여러 작업을 수행할 수 있다.
반점(,)을 이용하며 '테이블 이름' 뒤의 구문만 반복 작성해주면 된다.
● 2개의 컬럼 동시에 삭제
'type' 컬럼과 'age' 컬럼을 동시에 삭제했다.
● 컬럼 삭제와 동시에 추가
'hobby' 컬럼을 삭제함과 동시에, 'age' 컬럼을 추가했다.
ALTER TABLE 구문을 사용해 테이블을 수정하는 방법에 대해 알아보았다.
다음 포스팅에서는 테이블에 데이터를 넣어보며 본격적으로 DB를 사용해 보겠다.
+ MySQL 버전에 따라서 SQL 문법 적용이 안될 때가 있을 수 있다.
이 포스팅 당시 본인이 사용한 버전은 [MySQL 5.7.41] 이다.
'Web (웹), Server (서버)' 카테고리의 다른 글
[Web] HTTP, HTTPS, HTTP2 에 대해 알아보자 (0) | 2023.05.20 |
---|---|
[MySQL] 테이블에 데이터 생성 · 읽기 · 수정 · 삭제 / 데이터 CRUD - INSERT · SELECT · UPDATE · DELETE / PRIMARY KEY, AUTO_INCREMENT 초기화 (0) | 2023.03.28 |
[MySQL] 테이블 생성과 제약 조건 설정 / 테이블 삭제 - CREATE TABLE / DROP TABLE (1) | 2023.03.26 |
[MySQL] 데이터베이스 (DB) 생성 (2) | 2023.03.22 |
[WEB] 웹개발의 기초언어 HTML/CSS/JS/PHP (1) | 2022.06.04 |