Post

SQL Cơ bản - Alter Table

Hãy tưởng tượng bạn đang ngồi bên chiếc bàn làm việc thân quen của mình, sắp xếp bảng SQL một cách trật tự và bỗng dưng… sếp gọi! “Anh/chị ơi, thêm ngay cột cho bảng Employees nhé!”. Và thế là bạn lao ngay vào cuộc chiến với câu lệnh ALTER TABLE! Bạn nghĩ rằng đây là một nhiệm vụ nhỏ thôi, nhưng chờ đã… mọi thứ không dễ dàng như bạn tưởng!

Trong bài viết này, chúng ta sẽ cùng nhau khám phá câu lệnh ALTER TABLE. Đừng lo lắng, dù bạn đang ở cấp độ newbie hay pro, chúng ta đều sẽ học được cách thay đổi cấu trúc bảng mà không làm rơi mẩu dữ liệu nào ra ngoài (trừ khi bạn muốn thế). Cùng bắt đầu nhé!

ALTER TABLE là gì?

ALTER TABLE là một câu lệnh trong SQL giúp bạn điều chỉnh cấu trúc của một bảng. Có thể là thêm cột, xoá cột, đổi tên cột, hoặc thậm chí thay đổi kiểu dữ liệu của cột nào đó. Đây là một siêu năng lực trong tay bạn, cho phép bạn xoay chuyển định mệnh của bảng SQL một cách dễ dàng. Nhưng hãy nhớ, với sức mạnh lớn đi kèm trách nhiệm lớn!

Cú pháp

Cú pháp cơ bản của ALTER TABLE khá đơn giản. Bạn chỉ cần:

1
2
ALTER TABLE table_name;
action

Trong đó:

  • table_name: là tên bảng bạn muốn “phẫu thuật”.
  • action: là thao tác bạn muốn thực hiện. Và đây là nơi mọi chuyện thú vị bắt đầu!

Các thao tác phổ biến với ALTER TABLE

1. Thêm cột mới (Adding a new column)
Một ngày đẹp trời, bạn phát hiện ra rằng bảng Employees thiếu cột email. Bạn có thể sử dụng ALTER TABLE để thêm cột mới này như sau:

1
2
ALTER TABLE Employees
ADD email VARCHAR(255);

Ở đây:

  • Chúng ta thêm cột email với kiểu dữ liệu VARCHAR(255), bởi vì email có thể chứa nhiều ký tự.
  • Và thế là xong! Cột mới đã được thêm vào bảng Employees một cách nhanh gọn!

Có thể trong thực tế, Sếp gọi và nói: “Tôi muốn gửi email cho toàn bộ nhân viên!”. Bạn biết đấy, không có cột email, thì chắc chỉ còn cách… gửi thư bồ câu. Nhưng nhờ câu lệnh này, bạn đã cứu công ty khỏi tình huống kỳ lạ đó!

2. Xóa cột (Dropping a column)
Rồi, bỗng dưng sếp lại đổi ý: “Bỏ cái cột email đó đi, chúng ta sẽ dùng bồ câu!”. Không sao, chúng ta có thể dễ dàng xoá cột với:

1
2
ALTER TABLE Employees
DROP COLUMN email;

Và như phép màu, cột email biến mất. Chỉ cần nhớ rằng dữ liệu trong cột đó cũng đi theo luôn, không còn đường lui đâu nhé!

3. Đổi tên cột (Renaming a column)
Sếp lại không vừa lòng với cái tên salary, “Nghe nó khô khan quá, đổi thành monthly_income đi”. Đây là cách bạn làm điều đó:

1
2
ALTER TABLE Employees
RENAME COLUMN salary TO monthly_income;

Sự thay đổi tên này không làm mất dữ liệu, và giờ đây bạn có một cột với tên mới long lanh hơn. Thật là nghệ thuật!

4. Thay đổi kiểu dữ liệu (Modifying column data type)
Ban đầu bạn chỉ định dùng kiểu dữ liệu INT cho cột salary, nhưng sau đó nhận ra rằng một số nhân viên kiếm tiền quá khủng khiếp, con số không đủ để chứa nổi! Bạn có thể thay đổi kiểu dữ liệu cột một cách dễ dàng:

1
2
ALTER TABLE Employees
MODIFY COLUMN salary DECIMAL(15,2);

Giờ thì, tiền lương của các nhân viên tỷ phú đã được bảo vệ an toàn!

5. Đổi tên bảng (Renaming a table)
Đôi khi, chỉ cần đổi tên bảng là đủ để làm sếp thấy bạn như siêu anh hùng. Để đổi tên bảng Employees thành Staff, bạn làm như sau:

1
2
ALTER TABLE Employees
RENAME TO Staff;

Và thế là bảng của bạn có một danh tính mới, như bước qua một cánh cửa tương lai!

Ví dụ thực tế với ALTER TABLE

Hãy xem một ví dụ tổng hợp. Giả sử bạn có bảng Books với cấu trúc như sau:

1
2
3
4
5
6
CREATE TABLE Books (
    book_id INT PRIMARY KEY,
    title VARCHAR(255),
    author VARCHAR(255),
    published_year INT
);

Và giờ bạn muốn thực hiện các thay đổi sau:

  • Thêm cột genre để lưu thể loại sách.
  • Thay đổi tên cột published_year thành year_published.
  • Xóa cột author vì bạn không cần nữa (trong thế giới mới, sách tự viết mình?!).
  • Thay đổi kiểu dữ liệu của cột title để chứa được các tựa sách dài hơn.

Đây là cách bạn làm điều đó:

1
2
3
4
5
6
7
8
9
10
11
ALTER TABLE Books
ADD genre VARCHAR(100);

ALTER TABLE Books
RENAME COLUMN published_year TO year_published;

ALTER TABLE Books
DROP COLUMN author;

ALTER TABLE Books
MODIFY COLUMN title VARCHAR(500);

Và thế là bạn đã biến bảng Books của mình thành một bảng mới toanh, sẵn sàng phục vụ mọi yêu cầu kỳ quặc từ sếp!

Lưu ý quan trọng khi dùng ALTER TABLE

Tuy ALTER TABLE có vẻ thần kỳ, nhưng cũng cần thận trọng. Dưới đây là một số lưu ý giúp bạn tránh những tình huống oái oăm:

  • Cẩn thận khi xóa cột: Khi bạn xoá một cột, toàn bộ dữ liệu trong cột đó cũng sẽ biến mất. Không có lệnh “undo” trong SQL đâu nhé!
  • Kiểm tra dữ liệu trước khi thay đổi kiểu dữ liệu: Nếu bạn thay đổi kiểu dữ liệu một cách bất cẩn, bạn có thể làm mất dữ liệu. Ví dụ, đổi từ - DECIMAL sang INT có thể khiến bạn mất các số sau dấu thập phân.
  • Sao lưu dữ liệu: Trước khi thực hiện thay đổi lớn, hãy luôn sao lưu dữ liệu. Dữ liệu là vàng, mất là khóc!

Kết luận

Trong thế giới SQL, ALTER TABLE là một trong những công cụ mạnh mẽ nhất mà bạn có thể sử dụng để thay đổi cấu trúc bảng mà không cần phải xóa và tạo lại từ đầu. Nó giúp bạn linh hoạt hơn trong việc quản lý dữ liệu và thích ứng với những yêu cầu thay đổi liên tục.

Hãy nhớ rằng, ALTER TABLE không chỉ là công cụ kỹ thuật, mà còn là nghệ thuật! Sử dụng nó khéo léo sẽ giúp bạn trở thành người hùng trong team, và tất nhiên, là người bạn đồng hành đáng tin cậy của sếp!

Chúc bạn có những cú “ALTER” thành công và không gặp phải bất cứ tình huống khó đỡ nào nhé!

Bài viết mang tính chất “ghi chú, lưu trữ, chia sẻ và phi lợi nhuận”.
Nếu bạn thấy hữu ích, đừng quên chia sẻ với bạn bè và đồng nghiệp của mình nhé!

Happy coding! 😎 👍🏻 🚀 🔥

This post is licensed under CC BY 4.0 by the author.