Liệt kê dữ liệu chung của hai bảng dựa trên khóa liên kết trong PostgreSQL
Hướng dẫn cách liệt kê dữ liệu chung của hai bảng trong PostgreSQL dựa trên khóa liên kết, sử dụng câu lệnh JOIN để thực hiện các truy vấn hiệu quả.
Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng PostgreSQL để liệt kê dữ liệu chung của hai bảng thông qua khóa liên kết. Chúng ta sẽ sử dụng câu lệnh JOIN
để kết nối các bảng và truy xuất dữ liệu.
Mã SQL:
-- Giả sử chúng ta có hai bảng: 'users' và 'orders'
-- 'users' có trường id là khóa chính và 'orders' có trường user_id liên kết với id của 'users'
-- Tạo bảng 'users'
CREATE TABLE users (
id SERIAL PRIMARY KEY,
name VARCHAR(100) NOT NULL
);
-- Tạo bảng 'orders'
CREATE TABLE orders (
order_id SERIAL PRIMARY KEY,
user_id INT REFERENCES users(id),
item VARCHAR(100) NOT NULL
);
-- Chèn dữ liệu vào bảng 'users'
INSERT INTO users (name) VALUES ('Alice'), ('Bob'), ('Charlie');
-- Chèn dữ liệu vào bảng 'orders'
INSERT INTO orders (user_id, item) VALUES (1, 'Laptop'), (2, 'Phone'), (1, 'Tablet');
-- Truy vấn để liệt kê dữ liệu chung của hai bảng
SELECT u.id, u.name, o.order_id, o.item
FROM users u
JOIN orders o ON u.id = o.user_id;
Giải thích chi tiết từng dòng code
-
Tạo bảng
users
: Sử dụng câu lệnhCREATE TABLE
để tạo bảngusers
với các trườngid
(khóa chính) vàname
. -
Tạo bảng
orders
: Tạo bảngorders
với các trườngorder_id
(khóa chính),user_id
(liên kết vớiid
của bảngusers
), vàitem
. -
Chèn dữ liệu vào bảng
users
: Sử dụng câu lệnhINSERT INTO
để thêm dữ liệu vào bảngusers
. -
Chèn dữ liệu vào bảng
orders
: Thêm dữ liệu vào bảngorders
, trong đóuser_id
liên kết vớiid
của bảngusers
. -
Truy vấn
JOIN
: Sử dụng câu lệnhSELECT
vớiJOIN
để kết nối bảngusers
vàorders
, từ đó lấy ra các trườngid
,name
,order_id
, vàitem
từ cả hai bảng.
Yêu cầu hệ thống:
- PostgreSQL 9.0 trở lên
Cách cài đặt PostgreSQL:
Có thể cài đặt PostgreSQL từ trang web chính thức PostgreSQL hoặc sử dụng các công cụ quản lý như pgAdmin.
Lời khuyên:
- Sử dụng
JOIN
để kết nối các bảng và truy xuất dữ liệu một cách hiệu quả trong PostgreSQL. - Đảm bảo rằng các trường liên kết giữa các bảng đã được chỉ định khóa ngoại để duy trì tính toàn vẹn dữ liệu.