Câu lệnh ALTER TABLE trong SQL với từ khóa ADD, DROP, MODIFY để chỉnh sửa bảng dữ liệu

Nội dung được viết bởi G-LEARNING

Trong quá trình sử dụng SQL để truy vấn dữ liệu, có lúc bạn sẽ cần điều chỉnh các trường trong bảng để phù hợp hơn với nhu cầu lưu trữ dữ liệu của mình mà không cần phải tạo lại bảng từ đầu. Lúc này bạn sẽ cần đến câu lệnh ALTER TABLE trong SQL để thay đổi cấu trúc của một bảng đã có sẵn trong database. Cùng Gitiho tìm hiểu chi tiết trong bài viết này nhé.

Lệnh ALTER trong SQL là gì?

Giả sử rằng chúng ta đã hoàn thành thiết kế cơ sở dữ liệu của mình . Người dùng cơ sở dữ liệu của chúng ta đang sử dụng nó và sau đó họ nhận ra một số thông tin quan trọng đã bị bỏ qua 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 kết hợp thông tin mới. Chúng ta có thể sử dụng lệnh ALTER để thay đổi kiểu dữ liệu của một 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,… mà không cần phải tạo bảng mới trong SQL.

Lệnh ALTER được sử dụng để sửa đổi cơ sở dữ liệu, bảng dữ liệu, dạng xem hoặc các đối tượng cơ sở dữ liệu khác có thể cần thay đổi của cơ sở dữ liệu.

Cú pháp ALTER TABLE trong SQL để thêm cột mới

Cú pháp cơ bản được sử dụng để thêm một cột vào bảng như hình bên dưới

 ALTER TABLE 'table_name' ADD COLUMN 'column_name' 'data_type';

Trong đó: 

  • ALTER TABLE ‘table_name’: là lệnh yêu cầu máy chủ SQL Server sửa đổi bảng table_name.
  • ADD COLUMN ‘column _name’ ‘data_type’: là lệnh yêu cầu thêm một cột mới có tên ‘ column _name’ với kiểu dữ liệu ‘data_type’.

Ví dụ: Yêu cầu thêm một trường cho số thẻ tín dụng trong bảng members của chúng ta. Chúng ta có thể sử dụng lệnh ALTER để thực hiện. 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 sửa đổi. Như hình bên dưới:

HOW COLUMNS FROM 'members'; 
Cú pháp ALTER TABLE trong SQL để thêm cột mới 1

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

Chạy tập lệnh với VARCHAR làm kiểu dữ liệu cho Myflixdb trong MySQL . Chúng ta sẽ được bảng sau:

 SHOW COLUMNS FROM ‘members’;
Cú pháp ALTER TABLE trong SQL để thêm cột mới 2

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 ALTER TABLE với từ khóa DROP để xóa cột trong SQL

Từ khóa DROP kết hợp với lệnh ALTER TABLE giúp bạn xóa cơ sở dữ liệu khỏi máy chủ MySQL hay xóa một đối tượng (như Bảng, Cột) khỏi cơ sở dữ liệu.

Cú pháp:

ALTER TABLE table_name
DROP COLUMN column_name;

Trong đó:

  • table_name: Tên của bảng mà bạn muốn xóa cột.
  • column_name: Tên của cột mà bạn muốn xóa

Ví dụ: Ở phần trước của chúng ta viết Lệnh Alter để thêm một cột có tên số thẻ tín dụng vào bảng members. Giả sử chức năng thanh toán trực tuyến chưa có sẵn và chúng ta muốn xóa cột thẻ tín dụng.

Chúng ta có thể sử dụng đoạn lệnh sau:

 ALTER TABLE 'members' DROP COLUMN 'credit_card_number';

Chạy tập lệnh trên, SQL sẽ xóa cột credit_card_number khỏi bảng members.

 SHOW COLUMNS FROM 'members';

Thực hiện đoạn script trên đối với myflixdb trong MySQL cho thấy cột credit_card_number đã bị xóa không còn trong bảng members.

Lệnh ALTER TABLE với từ khóa DROP để xóa cột

Câu lệnh DROP để xóa bảng trong SQL:

Cú pháp để xóa 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';

Việc thực hiện đoạn script trên sẽ xóa bảng có tên ‘categories_archive’ khỏi cơ sở dữ liệu.

Lệnh ALTER TABLE kết hợp với CHANGE để đổi tên hoặc kiểu dữ liệu của cột

Chúng ta sử dụng từ khóa CHANGE kết hợp trong câu lệnh ALTER TABLE cho phép bạn có thể:

  • Thay đổi tên cột.
  • Thay đổi kiểu dữ liệu cột.
  • Thay đổi ràng buộc cột.

Ví dụ: Trường fullnames trong bảng members có kiểu dữ liệu varchar và có độ dài là 150.

 SHOW COLUMNS FROM 'members';
Lệnh ALTER TABLE kết hợp với CHANGE để đổi tên hoặc kiểu dữ liệu của cột 1

Giả sử chúng ta muốn

  • Thay đổi tên trường từ “full_names” thành “fullnames".
  • Thay đổi nó thành kiểu dữ liệu char với  độ dài tối đa 250.
  • Thêm một trường NOT NULL trong SQL.

 Chúng ta có thể thực hiện điều này bằng cách sử dụng lệnh Alter như sau:

ALTER TABLE 'members' 
CHANGE COLUMN 'full_names' 'fullnames' CHAR(250) NOT NULL;

Chạy tập lệnh trên, sau đó thực hiện tập lệnh hiển thị bảng members sẽ cho kết quả cột full_names đã được đổi tên, kiểu dữ liệu và thêm mới trường NOT NULL.

Lệnh ALTER TABLE kết hợp với CHANGE để đổi tên hoặc kiểu dữ liệu của cột 2

Lệnh ALTER TABLE chỉnh sửa kiểu dữ liệu của cột

Từ khóa MODIFY khi kết hợp với lệnh ALTER TABLE trong SQL cho phép bạn thay đổi kiểu dữ liệu và các ràng buộc của một cột mà không cần phải đổi tên cột đó.

Trong ví dụ với từ khóa CHANGE ở trên, chúng ta đã phải thay đổi cả tên cột cùng với các chi tiết khác. Nếu bỏ qua tên cột khi sử dụng từ khóa CHANGE, sẽ dẫn đến lỗi. Nhưng nếu bạn chỉ muốn thay đổi kiểu dữ liệu hoặc các điều kiện của cột mà không thay đổi tên cột, bạn có thể dùng từ khóa MODIFY để thực hiện điều đó.

Ví dụ: Tập lệnh bên dưới thay đổi độ rộng của trường “fullnames” từ 250 thành 50.

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

Chạy tập lệnh trên sẽ cho kết quả như sau.

Lệnh ALTER TABLE chỉnh sửa kiểu dữ liệu của cột

Lệnh ALTER TABLE với ADD… AFTER để chèn thêm cột ở sau một cột cụ thể

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 hạn thêm “date_of_registration” ngay sau cột date_of_birth (ngày sinh) trong bảng members.

 ALTER TABLE'members' ADD 'date_of_registration' date NULL AFTER  'date_of_birth';

Chúng ta sẽ có kết quả như sau.

Lệnh ALTER TABLE với ADD… AFTER để chèn thêm cột ở sau một cột cụ thể

Quy tắc RENAME để đổi tên trong SQL

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 có sẵn (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: 

RENAME TABLE 'current_table_name' TO 'new_table_name';

Giả sử rằng 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 bên dưới để làm được điều đó:

RENAME TABLE 'movierentals' TO 'movie_rentals';

Thực hiện đoạn script trên sẽ đổi tên bảng ‘Movierentals’ thành ‘movie_rentals’.

Kết luận

Thông qua bài viết trên, chúng ta đã tìm hiểu được lệnh Alter Table trong SQL sử dụng khi chúng ta muốn chỉnh sửa database hay bất kỳ đối tượng nào trong cơ sở dữ liệu như bảng, cột, kiểu dữ liệu,… 

Đừng quên ôn lại các từ khóa đi cùng lệnh ALTER TABLE như ADD, DROP, CHANGE, MODIFY, AFTER hay câu lệnh Rename để chỉnh sửa cơ sở dữ liệu theo ý muốn. Hãy thực hành luôn trên cơ sở dữ liệu của bạn để có thể nhớ bài lâu hơn nha. Chúc bạn thành công!

Xem thêm: HƯỚNG DẪN VỀ LỆNH LIMIT VÀ OFFSET TRONG MySQL

Khóa học giúp bạn làm chủ ngôn ngữ truy vấn dữ liệu phổ biến SQL từ cơ bản đến nâng cao. Từ đó có thể tự tin xây dựng, truy vấn, và tối ưu hóa các cơ sở dữ liệu phức tạp, hỗ trợ phân tích, làm báo cáo và ra quyết định kinh doanh một cách hiệu quả.

Đăng ký học thử để trải nghiệm ngay hôm nay!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông