LỆNH ALTER LÀ GÌ?
Như đã nói Thay đổi là hằng số duy nhất
Với thời gian yêu cầu kinh doanh cũng thay đổi. Khi các yêu cầu kinh doanh thay đổi, các thiết kế Cơ sở dữ liệu cũng cần thay đổi.
MySQL cung cấp hàm ALTER giúp chúng tôi kết hợp các thay đổi đối với thiết kế cơ sở dữ liệu hiện có .
Lệnh thay đổi được sử dụng để sửa đổi cơ sở dữ liệu hiện có, bảng, dạng xem hoặc các đối tượng cơ sở dữ liệu khác có thể cần thay đổi trong vòng đời của cơ sở dữ liệu.
Giả sử rằng chúng tôi đã hoàn thành thiết kế cơ sở dữ liệu của mình và nó đã được thực hiện. Người dùng cơ sở dữ liệu của chúng tôi đang sử dụng nó và sau đó họ nhận ra một số thông tin quan trọng đã bị bỏ sót trong giai đoạn thiết kế. Họ không muốn mất dữ liệu hiện có mà chỉ muốn kết hợp thông tin mới. Lệnh thay đổi có ích trong những trường hợp như vậy. Chúng ta có thể sử dụng lệnh thay đổi để thay đổi kiểu dữ liệu của một trường từ chuỗi nói thành số, thay đổi tên trường thành một tên mới hoặc thậm chí thêm một cột mới trong bảng.
Cú pháp thay thế
Cú pháp cơ bản được sử dụng để thêm một cột vào một bảng đã tồn tại được hiển thị bên dưới
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
ĐÂY
- "ALTER TABLE` table_name` " là lệnh yêu cầu máy chủ MySQL sửa đổi bảng có tên` table_name`.
- "ADD COLUMN` column_name` `data_type`" là lệnh yêu cầu máy chủ MySQL thêm một cột mới có tên `column_name` với kiểu dữ liệu` data_type '.
Giả sử rằng Myflix đã giới thiệu lập hóa đơn và thanh toán trực tuyến. Để đạt được mục tiêu đó, chúng tôi đã được yêu cầu thêm một trường cho số thẻ tín dụng trong bảng thành viên của chúng tôi. Chúng ta có thể sử dụng lệnh ALTER để làm điều đó. Trước tiên, hãy xem cấu trúc của bảng thành viên trước khi chúng tôi thực hiện bất kỳ sửa đổi nào. Tập lệnh hiển thị bên dưới giúp chúng tôi thực hiện điều đó.
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 |
Chúng ta có thể sử dụng tập lệnh hiển thị bên dưới để thêm một trường mới vào bảng thành viên.
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR(25);
Việc thực thi tập lệnh trên trong MySQL với Myflixdb sẽ thêm một cột mới có tên là số thẻ tín dụng vào bảng thành viên với VARCHAR làm kiểu dữ liệu. Việc thực thi tập lệnh hiển thị cột cho chúng ta kết quả sau.
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 |
Như bạn có thể thấy từ kết quả trả về, số thẻ tín dụng đã được thêm vào bảng thành viên. Dữ liệu có trong dữ liệu của các thành viên không bị ảnh hưởng bởi việc thêm cột mới.
LỆNH DROP LÀ GÌ?
Lệnh DROP được sử dụng để
- Xóa cơ sở dữ liệu khỏi máy chủ MySQL
- Xóa một đối tượng (như Bảng, Cột) khỏi cơ sở dữ liệu.
Bây giờ chúng ta hãy xem xét các ví dụ thực tế sử dụng lệnh DROP.
Trong ví dụ trước của chúng tôi về Lệnh Alter, chúng tôi đã thêm một cột có tên số thẻ tín dụng vào bảng thành viên.
Giả sử chức năng thanh toán trực tuyến sẽ mất một khoảng thời gian và chúng tôi muốn XÓA cột thẻ tín dụng
Chúng ta có thể sử dụng đoạn mã sau
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Việc thực thi tập lệnh trên sẽ loại bỏ cột credit_card_number khỏi bảng thành viên
Bây giờ chúng ta hãy xem các cột trong bảng thành viên để xác nhận xem cột của chúng ta có bị loại bỏ hay không.
SHOW COLUMNS FROM `members`;
Thực thi tập lệnh trên trong MySQL workbench với myflixdb cho chúng ta kết quả sau.
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 |
Lưu ý rằng số thẻ tín dụng đã bị xóa khỏi danh sách trường.
DROP BẢNG
Cú pháp để XÓA bảng khỏi Cơ sở dữ liệu như sau:
DROP TABLE `sample_table`;
Hãy xem một ví dụ
DROP TABLE `categories_archive`;
Việc thực thi đoạn mã ở trên sẽ xóa bảng có tên `category_archive 'khỏi cơ sở dữ liệu của chúng tôi.
LỆNH RENAME LÀ GÌ?
Lệnh đổi tên được sử dụng để thay đổi tên của một đối tượng cơ sở dữ liệu hiện có (như Bảng, Cột) thành một tên mới .
Đổi tên bảng không làm cho nó mất bất kỳ dữ liệu nào được chứa bên trong nó.
Cú pháp: -
Lệnh đổi tên có cú pháp cơ bản sau.
RENAME TABLE `current_table_name` TO `new_table_name`;
Giả sử chúng ta muốn đổi tên bảng làm phim thành movie_rentals, chúng ta có thể sử dụng đoạn mã hiển thị bên dưới để đạt được điều đó.
RENAME TABLE `movierentals` TO `movie_rentals`;
Việc thực thi đoạn script trên đổi tên bảng `phimmointals` thành` movie_rentals`.
Bây giờ chúng ta sẽ đổi tên bảng movie_rentals trở lại tên ban đầu của nó.
RENAME TABLE `movie_rentals` TO `movierentals`;
THAY ĐỔI TỪ KHÓA
Thay đổi Từ khóa cho phép bạn
- Thay đổi tên của cột
- Thay đổi kiểu dữ liệu cột
- Thay đổi Ràng buộc Cột
Hãy xem một ví dụ. Trường tên đầy đủ trong bảng thành viên thuộc kiểu dữ liệu varchar và có chiều rộng là 150.
SHOW COLUMNS FROM `members`;
Thực thi tập lệnh trên trong MySQL workbench với myflixdb cho chúng ta kết quả sau.
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 |
Giả sử chúng ta muốn
- Thay đổi tên trường từ "full_names" thành "fullname
- Thay đổi nó thành kiểu dữ liệu char với chiều rộng 250
- Thêm ràng buộc NOT NULL
Chúng ta có thể thực hiện điều này bằng cách sử dụng lệnh thay đổi như sau:
ALTER TABLE `members` CHANGE COLUMN `full_names` `fullname` char(250) NOT NULL;
Thực thi tập lệnh trên trong MySQL workbench dựa trên myflixdb và sau đó thực thi tập lệnh hiển thị cột được đưa ra ở trên cho kết quả sau.
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 |
SỬA ĐỔI TỪ KHÓA
Từ khoá SỬA ĐỔI cho phép bạn
- Sửa đổi kiểu dữ liệu cột
- Sửa đổi các ràng buộc của cột
Trong ví dụ CHANGE ở trên, chúng tôi đã phải thay đổi tên trường cũng như các chi tiết khác. Bỏ qua tên trường khỏi câu lệnh CHANGE sẽ tạo ra lỗi. Giả sử chúng ta chỉ quan tâm đến việc thay đổi kiểu dữ liệu và các ràng buộc trên trường mà không ảnh hưởng đến tên trường, chúng ta có thể sử dụng từ khóa MODIFY để thực hiện điều đó.
Tập lệnh bên dưới thay đổi độ rộng của trường "tên đầy đủ" từ 250 thành 50.
ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;
Thực thi tập lệnh trên trong MySQL workbench so với myflixdb và sau đó thực thi tập lệnh hiển thị cột được đưa ra ở trên cho kết quả sau được hiển thị bên dưới.
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 |
SAU KHI CÓ TỪ KHÓA
Giả sử rằng chúng ta muốn thêm một cột mới tại một vị trí cụ thể trong bảng.
Chúng ta có thể sử dụng lệnh thay đổi cùng với từ khóa SAU.
Tập lệnh bên dưới thêm "date_of_registration" ngay sau ngày sinh trong bảng thành viên.
ALTER TABLE `members` ADD `date_of_registration` date NULL AFTER `date_of_birth`;
Thực thi tập lệnh trên trong MySQL workbench so với myflixdb và sau đó thực thi tập lệnh hiển thị cột được đưa ra ở trên cho kết quả sau được hiển thị bên dưới.
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 |
Tóm lược
- Lệnh thay đổi được sử dụng khi chúng ta muốn sửa đổi cơ sở dữ liệu hoặc bất kỳ đối tượng nào có trong cơ sở dữ liệu.
- Lệnh drop được sử dụng để xóa cơ sở dữ liệu khỏi máy chủ MySQL hoặc các đối tượng trong cơ sở dữ liệu.
- Lệnh rename dùng để đổi tên bảng thành tên bảng mới.
- Từ khóa Thay đổi cho phép bạn thay đổi tên cột, kiểu dữ liệu và các ràng buộc
- Sửa đổi Từ khoá cho phép bạn sửa đổi kiểu dữ liệu cột và các ràng buộc
- Từ khóa After được sử dụng để chỉ định vị trí của một cột trong bảng