MYSQL – ALTER, DROP, RENAME, MODIFY
ALTER 명령이란 무엇입니까?
라는 말이 있듯이 변화는 계속된다
시간이 지남에 따라 비즈니스 요구 사항도 변경됩니다. 비즈니스 요구 사항이 변화함에 따라 데이터베이스 설계도 변경되어야 합니다.
MySQL 제공 바꾸다 우리에게 도움이 되는 기능 기존 데이터베이스 디자인에 변경 사항을 통합합니다..
alter 명령은 데이터베이스 수명 주기 동안 변경해야 할 수 있는 기존 데이터베이스, 테이블, 뷰 또는 기타 데이터베이스 개체를 수정하는 데 사용됩니다.
데이터베이스 설계를 완료하고 구현했다고 가정해 보겠습니다. 우리 데이터베이스 사용자는 이를 사용하다가 설계 단계에서 중요한 정보 중 일부가 누락되었음을 깨달았습니다. 그들은 기존 데이터를 잃고 싶지 않고 단지 새로운 정보를 통합하고 싶어합니다. 이러한 상황에서는 alter 명령이 유용합니다. alter 명령을 사용하여 필드의 데이터 유형을 문자열에서 숫자로 변경하거나 필드 이름을 새 이름으로 변경하거나 테이블에 새 열을 추가할 수도 있습니다.
변경 – 구문
이미 존재하는 테이블에 열을 추가하는 데 사용되는 기본 구문은 다음과 같습니다.
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
여기를 클릭하십시오.
- "ALTER TABLE `테이블_이름`" 알려주는 명령이다 MySQL 서버에서 `table_name`이라는 테이블을 수정합니다.
- "컬럼 `열_이름` `데이터_유형` 추가" 알려주는 명령이다 MySQL 'data_type' 데이터 유형을 사용하여 'column_name'이라는 새 열을 추가합니다.
Myflix에서 온라인 청구 및 지불을 도입했다고 가정해 보겠습니다. 그러한 목적을 위해 우리는 멤버 테이블에 신용 카드 번호 필드를 추가하라는 요청을 받았습니다. ALTER 명령을 사용하여 이를 수행할 수 있습니다. 수정하기 전에 먼저 멤버 테이블의 구조를 살펴보겠습니다. 아래에 표시된 스크립트는 이를 수행하는 데 도움이 됩니다.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
아래 표시된 스크립트를 사용하여 구성원 테이블에 새 필드를 추가할 수 있습니다.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
위 스크립트를 실행하면 MySQL Myflixdb에 대해 VARCHAR를 데이터 유형으로 하여 멤버 테이블에 신용카드 번호라는 새 열을 추가합니다. show columns 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
SHOW COLUMNS FROM `members`;
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL | |||
credit_card_number | varchar(25) | YES |
반환된 결과에서 볼 수 있듯이 회원 테이블에 신용카드 번호가 추가되었습니다. 구성원의 데이터에 포함된 데이터는 새 열을 추가해도 영향을 받지 않습니다.
드롭 명령은 무엇입니까?
DROP 명령은 다음과 같이 사용됩니다.
- 다음에서 데이터베이스 삭제 MySQL 섬기는 사람
- 데이터베이스에서 개체(예: 테이블, 열)를 삭제합니다.
이제 DROP 명령을 사용하는 실제 예를 살펴보겠습니다.
Alter 명령에 대한 이전 예에서는 신용 카드 번호라는 열을 구성원 테이블에 추가했습니다.
온라인 청구 기능에 시간이 걸리고 신용 카드 열을 삭제하려고 한다고 가정해 보겠습니다.
다음 스크립트를 사용할 수 있습니다
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
위 스크립트를 실행하면 구성원 테이블에서 Credit_card_number 열이 삭제됩니다.
이제 멤버 테이블의 열을 살펴보고 열이 삭제되었는지 확인하겠습니다.
SHOW COLUMNS FROM `members`;
위 스크립트를 실행하면 MySQL myflixdb에 대한 워크벤치의 결과는 다음과 같습니다.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(350) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
필드 목록에서 신용 카드 번호가 삭제되었습니다.
드롭 테이블
데이터베이스에서 테이블을 DROP하는 구문은 다음과 같습니다.
DROP TABLE `sample_table`;
예를 살펴보자
DROP TABLE `categories_archive`;
위 스크립트를 실행하면 ` categories_archive `라는 테이블이 데이터베이스에서 삭제됩니다.
이름 바꾸기 명령은 무엇입니까?
이름 바꾸기 명령은 다음과 같이 사용됩니다. 기존 데이터베이스 개체(예: 테이블, 열)의 이름을 새 이름으로 변경합니다..
테이블 이름을 바꾸더라도 그 안에 포함된 데이터는 손실되지 않습니다.
통사론:-
이름 변경 명령의 기본 구문은 다음과 같습니다.
RENAME TABLE `current_table_name` TO `new_table_name`;
movierentals 테이블의 이름을 movie_rentals로 바꾸고 싶다고 가정하면 아래에 표시된 스크립트를 사용하여 이를 달성할 수 있습니다.
RENAME TABLE `movierentals` TO `movie_rentals`;
위 스크립트를 실행하면 테이블 'movierentals'의 이름이 'movie_rentals'로 변경됩니다.
이제 movie_rentals 테이블의 이름을 다시 원래 이름으로 바꿉니다.
RENAME TABLE `movie_rentals` TO `movierentals`;
키워드 변경
키워드 변경을 통해 다음을 수행할 수 있습니다.
- 열 이름 변경
- 열 데이터 유형 변경
- 열 제약 조건 변경
예를 살펴보겠습니다. 멤버 테이블의 전체 이름 필드는 varchar 데이터 유형이고 너비는 150입니다.
SHOW COLUMNS FROM `members`;
위 스크립트를 실행하면 MySQL myflixdb에 대한 워크벤치의 결과는 다음과 같습니다.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
full_names | varchar(150) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
우리가 원한다고 가정 해보자.
- 필드 이름을 "full_names"에서 "fullname"으로 변경합니다.
- 너비가 250인 char 데이터 유형으로 변경합니다.
- NOT NULL 제약 조건 추가
다음과 같이 변경 명령을 사용하여 이를 수행할 수 있습니다.
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
위 스크립트를 실행하면 MySQL myflixdb에 대해 Workbench를 사용하고 위에 주어진 show columns 스크립트를 실행하면 다음과 같은 결과가 나옵니다.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(250) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
키워드 수정
MODIFY 키워드를 사용하면 다음을 수행할 수 있습니다.
- 열 데이터 유형 수정
- 열 제약 수정
위의 CHANGE 예에서 우리는 필드 이름과 다른 세부정보도 변경해야 했습니다. CHANGE 문에서 필드 이름을 생략하면 오류가 발생합니다. 필드 이름에 영향을 주지 않고 필드의 데이터 유형과 제약 조건만 변경하는 데 관심이 있다고 가정하면 MODIFY 키워드를 사용하여 이를 수행할 수 있습니다.
아래 스크립트는 "fullname" 필드의 너비를 250에서 50으로 변경합니다.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
위 스크립트를 실행하면 MySQL myflixdb에 대해 워크벤치를 사용하고 위에 주어진 show columns 스크립트를 실행하면 아래에 표시된 결과가 표시됩니다.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
키워드 이후
테이블의 특정 위치에 새 열을 추가한다고 가정해 보겠습니다.
AFTER 키워드와 함께 alter 명령을 사용할 수 있습니다.
아래 스크립트는 회원 테이블의 생년월일 바로 뒤에 "date_of_registration"을 추가합니다.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
위 스크립트를 실행하면 MySQL myflixdb에 대해 워크벤치를 사용하고 위에 주어진 show columns 스크립트를 실행하면 아래에 표시된 결과가 표시됩니다.
Field | Type | Null | Key | Default | Extra |
---|---|---|---|---|---|
membership_number | int(11) | NO | PRI | NULL | auto_increment |
fullnames | char(50) | NO | NULL | ||
gender | varchar(6) | YES | NULL | ||
date_of_birth | date | YES | NULL | ||
date_of_registration | date | YES | NULL | ||
physical_address | varchar(255) | YES | NULL | ||
postal_address | varchar(255) | YES | NULL | ||
contact_number | varchar(75) | YES | NULL | ||
varchar(255) | YES | NULL |
제품 개요
- alter 명령은 데이터베이스나 데이터베이스에 포함된 개체를 수정하려고 할 때 사용됩니다.
- drop 명령은 데이터베이스를 삭제하는 데 사용됩니다. MySQL 섬기는 사람 또는 데이터베이스 내의 개체.
- rename 명령은 테이블 이름을 새 테이블 이름으로 변경하는 데 사용됩니다.
- Change 키워드를 사용하면 열 이름, 데이터 유형 및 제약 조건을 변경할 수 있습니다.
- 수정 키워드를 사용하면 열 데이터 유형 및 제약 조건을 수정할 수 있습니다.
- After 키워드는 테이블의 열 위치를 지정하는 데 사용됩니다.