PostgreSQL hỗ trợ nhiều kiểu dữ liệu khác nhau, cho phép người dùng lưu trữ và quản lý thông tin một cách linh hoạt và hiệu quả. Dưới đây là các kiểu dữ liệu chính trong PostgreSQL:

1. Kiểu dữ liệu số

  • INTEGER: Số nguyên có dấu, từ -2,147,483,648 đến 2,147,483,647.
  • SMALLINT: Số nguyên nhỏ, từ -32,768 đến 32,767.
  • BIGINT: Số nguyên lớn, từ -9,223,372,036,854,775,808 đến 9,223,372,036,854,775,807.
  • DECIMAL (hoặc NUMERIC): Số thập phân chính xác, bạn có thể xác định số chữ số tối đa và số chữ số thập phân.
  • REAL: Số thực (floating-point) có độ chính xác đơn, thường dùng để lưu trữ số thực nhỏ.
  • DOUBLE PRECISION: Số thực có độ chính xác gấp đôi, dùng cho số thực lớn.

2. Kiểu dữ liệu ký tự

  • CHAR(n): Chuỗi ký tự có độ dài cố định (n ký tự).
  • VARCHAR(n): Chuỗi ký tự có độ dài thay đổi, tối đa là n ký tự.
  • TEXT: Chuỗi ký tự không có giới hạn độ dài.

3. Kiểu dữ liệu ngày và giờ

  • DATE: Ngày, định dạng YYYY-MM-DD.
  • TIME: Thời gian, định dạng HH:MM.
  • TIMESTAMP: Ngày và giờ, định dạng YYYY-MM-DD HH:MM.
  • TIMESTAMP WITH TIME ZONE: Ngày và giờ với thông tin về múi giờ.
  • INTERVAL: Khoảng thời gian, dùng để tính toán giữa các thời điểm.

4. Kiểu dữ liệu boolean

  • BOOLEAN: Chỉ có hai giá trị: TRUE và FALSE.

5. Kiểu dữ liệu nhị phân

  • BYTEA: Dữ liệu nhị phân, dùng để lưu trữ các tệp nhị phân như hình ảnh, âm thanh.

6. Kiểu dữ liệu mạng

  • INET: Địa chỉ IP (có thể là IPv4 hoặc IPv6).
  • CIDR: Địa chỉ IP cùng với subnet mask.
  • MACADDR: Địa chỉ MAC.

7. Kiểu dữ liệu địa lý

  • POINT: Điểm trong không gian 2D, định nghĩa bởi hai tọa độ (x, y).
  • LINE: Đường thẳng trong không gian 2D.
  • LSEG: Đoạn thẳng (line segment) giữa hai điểm.
  • BOX: Hình chữ nhật được xác định bởi hai điểm.
  • PATH: Đường đi, có thể là mở hoặc khép kín.
  • POLYGON: Đa giác trong không gian 2D.
  • CIRCLE: Hình tròn được xác định bởi một tâm và bán kính.

8. Kiểu dữ liệu JSON

  • JSON: Dữ liệu JSON không có cấu trúc.
  • JSONB: Dữ liệu JSON được lưu trữ dưới dạng nhị phân, cho phép truy vấn và thao tác nhanh hơn.

9. Kiểu dữ liệu XML

  • XML: Dữ liệu XML, cho phép lưu trữ và xử lý dữ liệu XML.

10. Kiểu dữ liệu mảng

PostgreSQL hỗ trợ kiểu dữ liệu mảng, cho phép lưu trữ nhiều giá trị trong một cột. Bạn có thể định nghĩa kiểu dữ liệu mảng bằng cách sử dụng dấu ngoặc vuông [].

Ví dụ:

CREATE TABLE example (
    id SERIAL PRIMARY KEY,
    numbers INTEGER[]
);

Kết luận

PostgreSQL cung cấp một loạt các kiểu dữ liệu phong phú, giúp người dùng lưu trữ và quản lý thông tin theo nhiều cách khác nhau. Khi thiết kế cơ sở dữ liệu, việc lựa chọn kiểu dữ liệu phù hợp rất quan trọng để tối ưu hóa hiệu suất và khả năng mở rộng của ứng dụng.