PostgreSQL - Tạo Bảng: Hướng Dẫn Dành Cho Người Mới Bắt Đầu
Xin chào các nhà法师数据库 tương lai! Hôm nay, chúng ta sẽ bắt đầu một hành trình thú vị vào thế giới của PostgreSQL, cụ thể là cách tạo bảng. Đừng lo lắng nếu bạn chưa từng viết một dòng mã trước đây - tôi sẽ là người hướng dẫn thân thiện của bạn, và chúng ta sẽ cùng nhau từng bước. Cuối cùng của hướng dẫn này, bạn sẽ tạo bảng như một chuyên gia!
Table là gì trong PostgreSQL?
Trước khi chúng ta nhảy vào chi tiết của việc tạo bảng, hãy hiểu xem bảng thực sự là gì. Hãy tưởng tượng một bảng tính - bạn biết đấy, những lưới có hàng và cột. Một bảng cơ sở dữ liệu rất giống với điều đó. Nó là một bộ dữ liệu liên quan được tổ chức thành hàng (còn gọi là bản ghi) và cột (còn gọi là trường).
Ví dụ, nếu bạn đang quản lý một thư viện nhỏ, bạn có thể có một bảng gọi là "Books" với các cột như "Title", "Author", "ISBN", và "Publication Date". Mỗi hàng trong bảng này sẽ đại diện cho một cuốn sách trong thư viện của bạn.
Cú pháp CREATE TABLE
Bây giờ, hãy nhìn vào cú pháp cơ bản để tạo một bảng trong PostgreSQL:
CREATE TABLE table_name (
column1 datatype constraints,
column2 datatype constraints,
column3 datatype constraints,
....
);
Đừng để điều này làm bạn hoảng sợ! Nó đơn giản hơn bạn nghĩ. Hãy cùng phân tích:
-
CREATE TABLE
: Lệnh này cho PostgreSQL biết bạn muốn tạo một bảng mới. -
table_name
: Đây là nơi bạn chỉ định bạn muốn gọi bảng của mình là gì. - Trong ngoặc, bạn liệt kê tất cả các cột bạn muốn trong bảng của mình.
- Đối với mỗi cột, bạn chỉ định:
- Tên cột
- Kiểu dữ liệu (như INTEGER cho số nguyên, TEXT cho chuỗi, v.v.)
- Bất kỳ ràng buộc nào (như NOT NULL nếu cột luôn phải có giá trị)
Ví dụ: Hãy Tạo Một Vài Bảng!
Ví dụ 1: Một Bảng Đơn Giản Books
Hãy bắt đầu với một ví dụ đơn giản. Chúng ta sẽ tạo một bảng cho thư viện tưởng tượng của mình:
CREATE TABLE books (
book_id SERIAL PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_date DATE,
isbn VARCHAR(13) UNIQUE
);
Hãy phân tích này:
-
book_id
: Đây là một标识符 duy nhất cho mỗi cuốn sách. SERIAL có nghĩa là nó sẽ tự động tăng cho mỗi cuốn sách mới được thêm vào. -
title
: Có thể dài lên đến 100 ký tự và không thể trống (NOT NULL). -
author
: Lên đến 50 ký tự, cũng không thể trống. -
publication_date
: Đây là tùy chọn (chúng ta không chỉ định NOT NULL). -
isbn
: Độc nhất cho mỗi cuốn sách.
Ví dụ 2: Một Bảng phức tạp hơn Customers
Bây giờ, hãy tạo một bảng phức tạp hơn cho khách hàng:
CREATE TABLE customers (
customer_id SERIAL PRIMARY KEY,
first_name VARCHAR(50) NOT NULL,
last_name VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
phone VARCHAR(20),
registration_date DATE DEFAULT CURRENT_DATE,
loyalty_points INTEGER DEFAULT 0 CHECK (loyalty_points >= 0)
);
Bảng này giới thiệu một số khái niệm mới:
-
DEFAULT
: Chúng ta sử dụng này choregistration_date
để tự động đặt nó thành ngày hiện tại khi một khách hàng mới được thêm vào. -
CHECK
: Điều này đảm bảoloyalty_points
không bao giờ có thể âm.
Kiểu dữ liệu trong PostgreSQL
PostgreSQL cung cấp một loạt các kiểu dữ liệu. Dưới đây là một số phổ biến:
Kiểu Dữ Liệu | Mô Tả | Ví Dụ |
---|---|---|
INTEGER | Số nguyên | 42 |
SERIAL | Số nguyên tự động tăng | Tự động gán |
VARCHAR(n) | Chuỗi có độ dài thay đổi lên đến n ký tự | 'Hello, World!' |
TEXT | Chuỗi có độ dài thay đổi của bất kỳ độ dài nào | 'Một đoạn văn bản rất dài...' |
DATE | Ngày (không có giờ) | '2023-06-15' |
TIMESTAMP | Ngày và giờ | '2023-06-15 14:30:00' |
BOOLEAN | Giá trị True/False | TRUE hoặc FALSE |
NUMERIC(p,s) | Số chính xác với p chữ số (s sau dấu phẩy) | 123.45 |
Ràng buộc trong PostgreSQL
Ràng buộc là các quy tắc chúng ta đặt trên các cột. Dưới đây là một số phổ biến:
Ràng Buộc | Mô Tả |
---|---|
NOT NULL | Cột không thể chứa giá trị null |
UNIQUE | Tất cả các giá trị trong cột phải khác nhau |
PRIMARY KEY | Định danh duy nhất mỗi hàng trong bảng |
FOREIGN KEY | Đảm bảo tính toàn vẹn tham chiếu giữa hai bảng |
CHECK | Đảm bảo tất cả các giá trị trong cột thỏa mãn một điều kiện cụ thể |
DEFAULT | Đặt giá trị mặc định cho một cột |
Một Vài Ví Dụ Nữa
Ví dụ 3: Một Bảng với Khóa Ngoại
Hãy tạo một bảng 'orders' tham chiếu đến bảng 'customers' của chúng ta:
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
customer_id INTEGER REFERENCES customers(customer_id),
order_date DATE DEFAULT CURRENT_DATE,
total_amount NUMERIC(10,2) CHECK (total_amount > 0)
);
Bảng này có một khóa ngoại (customer_id
) tham chiếu đến bảng customers
, đảm bảo rằng mỗi đơn hàng liên quan đến một khách hàng hợp lệ.
Ví dụ 4: Một Bảng với Khóa Chính Phức Hợp
Đôi khi, bạn có thể muốn một khóa chính bao gồm nhiều cột:
CREATE TABLE book_authors (
book_id INTEGER REFERENCES books(book_id),
author_id INTEGER REFERENCES authors(author_id),
PRIMARY KEY (book_id, author_id)
);
Bảng này có thể được sử dụng để xử lý sách có nhiều tác giả, hoặc tác giả đã viết nhiều sách.
Kết Luận
Chúc mừng! Bạn đã刚刚迈出了进入 PostgreSQL 表格创建世界的第一步。记住,熟能生巧。 Hãy thử tạo bảng cho các tình huống khác nhau - có thể là một thư viện nhạc, một sổ công thức nấu ăn, hoặc thậm chí là cơ sở dữ liệu cho trò chơi video yêu thích của bạn.
Đừng sợ thử nghiệm và mắc lỗi - đó là cách chúng ta học! Và luôn nhớ: trong thế giới của cơ sở dữ liệu, bạn có quyền lực để CREATE, ALTER, và thậm chí DROP toàn bộ thế giới dữ liệu. Sử dụng quyền lực này một cách thông minh, người học trẻ!
Chúc bạn may mắn và PostgreSQL luôn ở bên bạn!
Credits: Image by storyset