MYSQL – THAY ĐỔI, THẢ, ĐỔI TÊN, SỬA ĐỔI

Lệnh ALTER là gì?

Như câu nói đ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 yêu cầu kinh doanh thay đổi, thiết kế cơ sở dữ liệu cũng cần thay đổi.

MySQL cung cấp THAY ĐỔI chức năng giúp chúng ta 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, bảng, dạng xem hoặc các đối tượng cơ sở dữ liệu khác hiện có có thể cần thay đổi trong vòng đời của cơ sở dữ liệu.

Giả sử rằng chúng ta đã hoàn thành thiết kế cơ sở dữ liệu và nó đã được triển khai. 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 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 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 cột mới vào bảng.

Thay đổi – cú pháp

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`;

tại ĐÂY

  • “ALTER BẢNG `tên_bảng`” là lệnh cho biết MySQL máy chủ sửa đổi bảng có tên `table_name`.
  • “THÊM CỘT `tên_cột` `loại_dữ liệu`” là lệnh cho biết MySQL máy chủ để thêm một cột mới có tên `column_name` với kiểu dữ liệu `data_type'.

Giả sử Myflix đã giới thiệu tính năng lập hóa đơn và thanh toán trực tuyến. Để thực hiện mục đích đó, chúng tôi được yêu cầu thêm một trường cho số thẻ tín dụng vào bảng thành viên của mình. Chúng tôi có thể sử dụng lệnh ALTER để thực hiện điều đó. Trước tiên, hãy xem cấu trúc của bảng thành viên trước khi thực hiện bất kỳ sửa đổi nào. Tập lệnh được 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
email 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 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 đoạn script trên trong MySQL chống lại Myflixdb 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à kiểu dữ liệu. Thực thi tập lệnh show columns 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
email 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 chứa trong dữ liệu của thành viên không bị ảnh hưởng khi thêm cột mới.

LỆNH THẢ LÀ GÌ?

Lệnh DROP được sử dụng để

  1. Xóa cơ sở dữ liệu khỏi MySQL máy chủ
  2. 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 về Lệnh Thay đổi, 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 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 đoạn script 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 tôi có bị loại bỏ hay không.

SHOW COLUMNS FROM `members`;

Thực thi đoạn script trên trong MySQL workbench so với myflixdb cung cấp 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
email varchar(255) YES NULL

Lưu ý rằng số thẻ tín dụng đã bị loại khỏi danh sách trường.

DROP BẢNG

Cú pháp DROP một bảng từ Cơ sở dữ liệu như sau -

DROP TABLE `sample_table`;

Hãy xem một ví dụ

DROP TABLE `categories_archive`;

Thực hiện đoạn mã trên sẽ xóa bảng có tên ` categories_archive ` khỏi cơ sở dữ liệu của chúng tôi.

LỆNH ĐỔI TÊN LÀ GÌ?

Lệnh đổi tên được sử dụng để thay đổi tên của đối tượng cơ sở dữ liệu hiện có (như Bảng, Cột) thành tên mới.

Đổi tên bảng không làm mất bất kỳ dữ liệu nào có trong bảng đó.

Cú pháp: -

Lệnh đổi tên có cú pháp cơ bản như sau.

RENAME TABLE `current_table_name` TO `new_table_name`;

Giả sử chúng ta muốn đổi tên bảng movierentals thành movie_rentals, chúng ta có thể sử dụng tập lệnh 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 sẽ đổi tên bảng `movierentals` thành `movie_rentals`.

Bây giờ chúng ta sẽ đổi tên bảng movie_rentals về 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

  1. Thay đổi tên cột
  2. Thay đổi kiểu dữ liệu cột
  3. Thay đổi các ràng buộc của cột

Hãy xem một ví dụ. 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`;

Thực thi đoạn script trên trong MySQL workbench so với myflixdb cung cấp 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
email varchar(255) YES NULL

Giả sử chúng ta muốn

  1. Thay đổi tên trường từ “full_names” thành “fullname
  2. Thay đổi nó thành kiểu dữ liệu char có chiều rộng 250
  3. 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 đoạn script 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 sẽ 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
email varchar(255) YES NULL

SỬA ĐỔI TỪ KHÓA

Từ khóa MODIFY cho phép bạn

  1. Sửa đổi kiểu dữ liệu cột
  2. Sửa đổi các ràng buộc cột

Trong ví dụ THAY ĐỔI ở trên, chúng ta phải thay đổi tên trường cũng như các chi tiết khác. Việc bỏ tên trường khỏi câu lệnh CHANGE sẽ gây 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 đó.

Đoạn script bên dưới thay đổi độ rộng của trường “fullname” từ 250 thành 50.

ALTER TABLE `members`MODIFY `fullname` char(50) NOT NULL;

Thực thi đoạn script trên trong MySQL workbench so với myflixdb và sau đó thực thi tập lệnh show columns được đưa ra ở trên sẽ cho kết quả như 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
email varchar(255) YES NULL

SAU TỪ KHÓA

Giả sử chúng ta muốn thêm một cột mới vào 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.

Đoạn script 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 đoạn script trên trong MySQL workbench so với myflixdb và sau đó thực thi tập lệnh show columns được đưa ra ở trên sẽ cho kết quả như 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
email varchar(255) YES NULL
Note: The Hilighted row is added after date_of_birth cloumn

Tổng kế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 drop được sử dụng để xóa cơ sở dữ liệu khỏi MySQL máy chủ hoặc các đối tượng trong cơ sở dữ liệu.
  • Lệnh đổi tên được sử dụng để đổi tên bảng thành tên bảng mới.
  • Từ khóa Change cho phép bạn thay đổi tên cột, kiểu dữ liệu và các ràng buộc
  • Từ khóa Sửa đổi 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 dùng để xác định vị trí của một cột trong bảng