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. Những người sử 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ị loại bỏ trong giai đoạn thiết kế. Họ không muốn mất dữ liệu hiện tại mà chỉ muốn hợp nhất thông tin mới. Lệnh thay đổi có ích trong các tình huống 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 chuỗi trường từ chuỗi thành số, thay đổi tên trường thành tên mới hoặc thậm chí thêm một cột mới trong bảng.
Cú pháp Alter
Cú pháp cơ bản được sử dụng để thêm một cột vào bảng đã có sẵn được hiển thị bên dưới
ALTER TABLE `table_name` ADD COLUMN `column_name` `data_type`;
name
- "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à thông báo cho máy chủ MySQL thêm một cột mới có tên `cột_name` .
Giao sử Myflix đã giới thiệu thanh toán và thanh toán trực tuyến. Để đạt được điều đó, chúng tôi đã yêu cầu thêm một trường đánh 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 chúng ta hãy xem cấu trúc của bảng thành viên trước khi chúng ta thực hiện bất kỳ thay đổi nào. Kịch bản hiển thị dưới đây giúp chúng tôi làm điều đó.
SHOW COLUMNS FROM `members`;
FieldTypeNullKeyDefaultExtra membership_numberint[11]NOPRINULLauto_increment full_namesvarchar[350]NO NULL gendervarchar[6]YES NULL date_of_birthdateYES NULL physical_addressvarchar[255]YES NULL postal_addressvarchar[255]YES NULL contact_numbervarchar[75]YES NULL emailvarchar[255]YES NULL
Chúng ta có thể sử dụng lệnh hiển thị bên dưới để thêm trường mới vào bảng thành viên
ALTER TABLE `members` ADD COLUMN `credit_card_number` VARCHAR[25];
Thực thi lệnh trên MySQL đối với Myflixdb thêm một cột mới có tên số thẻ tín dụng vào bảng thành viên với VARCHAR làm kiểu dữ liệu. Thực hiện cột chương trình kịch bản cho chúng ta kết quả sau.
SHOW COLUMNS FROM `members`;FieldTypeNullKeyDefaultExtramembership_numberint[11]NOPRINULLauto_incrementfull_namesvarchar[350]NONULLgendervarchar[6]YESNULLdate_of_birthdateYESNULLphysical_addressvarchar[255]YESNULLpostal_addressvarchar[255]YESNULLcontact_numbervarchar[75]YESNULLPhysical_addressvarchar[255]YESNULLpostal_addressvarchar[255]YESNULLcontact_numbervarchar[75]YESNULLLemailvarchar[255]YESNULLpostal_address_card[255]YESNULLcontact_numbervarchar[75]YESNULLLemailvarchar[255]YESNULLpostal_address_card[255]YESNULLcontact_numbervarchar[75]YESNULLLemailvarchar[255]YESNULLpostal_address_number[255]ESULL_card
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 chứa 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à gi?
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 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ề Command 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 chút thời gian và chúng tôi muốn DROP thẻ cột tín hiệu
Chúng ta có thể sử dụng đoạn script sau
ALTER TABLE `members` DROP COLUMN `credit_card_number`;
Thực thi lệnh trên tập tin sẽ giảm 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 đã bị hủy hay chưa
SHOW COLUMNS FROM `members`;
Việc thực thi đoạn script trên bàn làm việc của MySQL đối với myflixdb cho chúng ta kết quả sau
FieldTypeNullKeyDefaultExtramembership_numberint[11]NOPRINULLauto_incrementfull_namesvarchar[350]NONULLgendervarchar[6]YESNULLdate_of_birthdateYESNULLphysical_addressvarchar[255]YESNULLpostal_addressvarchar[255]YESNULLcontact_numbervarchar[75]YESNULLLemailvarchar[255]YESNULLLưu ý rằng số thẻ tín dụng đã bị loại khỏi danh sách trường
BẢNG DROP
Cú pháp để DROP một bảng từ Cơ sở dữ liệu như sau -
DROP TABLE `sample_table`;
Please view a ví dụ
________số 8Việc thực thi đoạn script trên sẽ xóa bảng có tên `chuyên mục_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 mất bảng dữ liệu trong bảng
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ử rằng chúng tôi muốn đổi tên bảng Movierentals thành movie_rentals, chúng tôi có thể sử dụng lệnh hiển thị bên dưới để đạt được điều đó
SHOW COLUMNS FROM `members`;0
Thực hiện đoạn mã hiện tại trên bảng đổi tên `Movierentals` 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
SHOW COLUMNS FROM `members`;1
THAY ĐỔI TỪ KHÓA
Change the word key to allow you
- Thay đổi tên cột
- Change data column
- Thay đổi ràng buộc cột
Please view a example. Trường tên đầy đủ trong bảng thành viên có kiểu dữ liệu varchar và có chiều rộng 150.
SHOW COLUMNS FROM `members`;
Việc thực thi đoạn script trên bàn làm việc của MySQL đối với myflixdb cho chúng ta kết quả sau
SHOW COLUMNS FROM `members`;3
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
- Add a null null 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 -
SHOW COLUMNS FROM `members`;4
Thi tập lệnh trên bàn làm việc của MySQL đối với myflixdb và sau đó thi tập lệnh hiển thị các cột được đưa ra ở trên sẽ cho kết quả như sau
SHOW COLUMNS FROM `members`;5FieldTypeNullKeyDefaultExtramembership_numberint[11]NOPRINULLauto_incrementfullnameschar[250]NONULLgendervarchar[6]YESNULLdate_of_birthdateYESNULLphysical_addressvarchar[255]YESNULLpostal_addressvarchar[255]YESNULLcontact_numbervarchar[75]YESNULLLemailvarchar[255]YESNULL
Từ khóa MODIFY
Từ khóa MODIFY 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ộ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 từ lệnh CHANGE sẽ tạo ra lỗi. Giả sử chúng ta chỉ quan tâm đến việc thay đổi loại 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 đó .
Bên dưới lệnh bên dưới thay đổi độ rộng của trường "tên đầy đủ" từ 250 thành 50
SHOW COLUMNS FROM `members`;6
Việc thực thi lệnh trên bàn làm việc của MySQL đối với myflixdb và sau đó thực thi lệnh hiển thị các cột được đưa ra ở trên sẽ cho kết quả như sau
FieldTypeNullKeyDefaultExtramembership_numberint[11]NOPRINULLauto_incrementfullnameschar[50]NONULLgendervarchar[6]YESNULLdate_of_birthdateYESNULLPhysical_addressvarchar[255]YESNULLpostal_addressvarchar[255]YESNULLcontact_numbervarchar[75]YESNULLemailvarchar[255]YESNULLSHOW COLUMNS FROM `members`;7
Từ khoá AFTER
Giả sử rằng chúng tôi 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 tương tự với từ khóa SAU
Bản ghi bên dưới bổ sung "date_of_registration" ngay sau ngày sinh trong bảng thành viên
SHOW COLUMNS FROM `members`;8
Việc thực thi lệnh trên bàn làm việc của MySQL đối với myflixdb và sau đó thực thi lệnh hiển thị các cột được đưa ra ở trên sẽ cho kết quả như sau
____19 . Hàng Hilighted được Lưu ý. Hàng Hilighted được thêm vào sau date_of_birth cộtTóm tắt
- 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 thả đượ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