PostgreSQL - Lệnh ALTER TABLE: Hướng dẫn cho người mới bắt đầu
Xin chào các bạn tương lai của các nhà thuật toán cơ sở dữ liệu! Hôm nay, chúng ta sẽ cùng lặn sâu vào thế giới kỳ diệu của PostgreSQL và khám phá một trong những công cụ mạnh mẽ nhất của nó: lệnh ALTER TABLE. Đừng lo lắng nếu bạn mới bắt đầu học lập trình; tôi sẽ là người bạn thân thiện dẫn đường cho bạn trong hành trình này, giải thích từng bước một. Nào, hãy cầm một tách cà phê, và chúng ta cùng bắt đầu!
Lệnh ALTER TABLE là gì?
Trước khi chúng ta đi vào chi tiết, hãy hiểu xem lệnh ALTER TABLE làm gì. Hãy tưởng tượng bạn đã xây dựng một ngôi nhà đẹp (bảng cơ sở dữ liệu của chúng ta),但现在 bạn muốn thêm một phòng mới hoặc thay đổi màu sắc của tường. Đó chính xác là điều mà ALTER TABLE làm cho các bảng cơ sở dữ liệu của chúng ta - nó cho phép chúng ta thay đổi cấu trúc của một bảng hiện có mà không mất dữ liệu bên trong nó.
Cú pháp của lệnh ALTER TABLE
Bây giờ, hãy nhìn vào cú pháp cơ bản của lệnh ALTER TABLE:
ALTER TABLE table_name action;
Ở đây, table_name
là tên của bảng bạn muốn thay đổi, và action
là điều bạn muốn làm với bảng. Đơn giản phải không? Nhưng đợi đã, còn nhiều điều hơn nữa! Phần action
có thể là nhiều điều khác nhau, mà chúng ta sẽ khám phá cùng với các ví dụ.
Các hành động phổ biến với ALTER TABLE
Hãy nhìn vào một số hành động phổ biến nhất bạn có thể thực hiện với ALTER TABLE:
Hành động | Mô tả |
---|---|
ADD COLUMN | Thêm một cột mới vào bảng |
DROP COLUMN | Loại bỏ một cột khỏi bảng |
RENAME COLUMN | Thay đổi tên của một cột |
ALTER COLUMN | Thay đổi loại dữ liệu của một cột |
ADD CONSTRAINT | Thêm một ràng buộc mới vào bảng |
DROP CONSTRAINT | Loại bỏ một ràng buộc khỏi bảng |
RENAME TO | Thay đổi tên của bảng |
Bây giờ, hãy cùng đi sâu vào từng hành động này với các ví dụ!
1. Thêm một cột mới
Giả sử chúng ta có một bảng叫做 students
và chúng ta muốn thêm một cột mới cho địa chỉ email của họ.
ALTER TABLE students
ADD COLUMN email VARCHAR(100);
Lệnh này thêm một cột mới tên là email
vào bảng students
. Phần VARCHAR(100)
có nghĩa là nó có thể chứa tối đa 100 ký tự.
2. Loại bỏ một cột
Oops! Chúng ta nhận ra rằng chúng ta không cần cột phone_number
nữa. Hãy loại bỏ nó:
ALTER TABLE students
DROP COLUMN phone_number;
Và thế là cột phone_number
đã biến mất. Hãy cẩn thận với hành động này - nó không thể hoàn tác!
3. Đổi tên một cột
Có lẽ chúng ta muốn đổi tên cột name
thành full_name
:
ALTER TABLE students
RENAME COLUMN name TO full_name;
Bây giờ cột name
của chúng ta được gọi là full_name
. Đó như thể cho cột của bạn một biệt danh mới!
4. Thay đổi loại dữ liệu của một cột
Giả sử chúng ta nhận ra rằng cột age
nên là một số nguyên nhỏ thay vì một số nguyên thông thường?
ALTER TABLE students
ALTER COLUMN age TYPE SMALLINT;
Lệnh này thay đổi loại dữ liệu của cột age
thành SMALLINT
. Đó như thể cho cột của bạn một bộ trang phục mới!
5. Thêm một ràng buộc
Ràng buộc như là những quy tắc cho dữ liệu của chúng ta. Hãy thêm một quy tắc rằng email
phải là duy nhất:
ALTER TABLE students
ADD CONSTRAINT unique_email UNIQUE (email);
Bây giờ, không có hai học sinh nào có thể có cùng một địa chỉ email. Đó như thể mỗi học sinh có một thẻ email đặc biệt!
6. Loại bỏ một ràng buộc
Nếu chúng ta quyết định rằng chúng ta không cần quy tắc email duy nhất nữa:
ALTER TABLE students
DROP CONSTRAINT unique_email;
Và thế là ràng buộc đã biến mất. Học sinh bây giờ có thể có địa chỉ email trùng lặp (mặc dù điều này có thể không phải là một ý tưởng tốt trong thực tế!).
7. Đổi tên bảng
Cuối cùng, giả sử chúng ta muốn thay đổi tên của toàn bộ bảng của chúng ta?
ALTER TABLE students
RENAME TO awesome_students;
Bây giờ bảng students
của chúng ta được gọi là awesome_students
. Vì tất cả học sinh đều tuyệt vời, phải không?
Kết hợp tất cả lại
Hãy tạo một bảng mẫu và sau đó sử dụng nhiều lệnh ALTER TABLE để thay đổi nó:
-- Tạo một bảng đơn giản
CREATE TABLE pets (
id SERIAL PRIMARY KEY,
name VARCHAR(50),
species VARCHAR(50)
);
-- Thêm một cột mới
ALTER TABLE pets
ADD COLUMN age INTEGER;
-- Đổi tên một cột
ALTER TABLE pets
RENAME COLUMN species TO animal_type;
-- Thêm một ràng buộc
ALTER TABLE pets
ADD CONSTRAINT unique_name UNIQUE (name);
-- Thay đổi loại dữ liệu của một cột
ALTER TABLE pets
ALTER COLUMN age TYPE SMALLINT;
-- Loại bỏ một cột
ALTER TABLE pets
DROP COLUMN id;
-- Đổi tên bảng
ALTER TABLE pets
RENAME TO furry_friends;
Và thế là chúng ta đã tạo một bảng, thêm và loại bỏ cột, đổi tên cột và bảng, thêm một ràng buộc, và thay đổi loại dữ liệu của một cột. Đó là quyền lực của ALTER TABLE!
Kết luận
Lệnh ALTER TABLE như một cây kéo đa năng cho bảng cơ sở dữ liệu của bạn. Nó cho phép bạn thực hiện nhiều loại thay đổi khác nhau đối với cấu trúc bảng của bạn mà không mất dữ liệu quý giá. Nhớ rằng, với quyền lực lớn đi kèm với trách nhiệm lớn - hãy luôn cẩn thận khi thay đổi bảng của bạn, đặc biệt là trong môi trường sản xuất.
Tôi hy vọng hướng dẫn này đã giúp bạn hiểu lệnh ALTER TABLE tốt hơn. Hãy tiếp tục thực hành, và sớm bạn sẽ thay đổi bảng như một chuyên gia! Nếu bạn có bất kỳ câu hỏi nào, đừng ngần ngại hỏi. Chúc bạn may mắn và bảng của bạn luôn được cấu trúc hoàn hảo!
Credits: Image by storyset