Lý thuyết

PostgreSQL cung cấp 2 kiểu dữ liệu số: số nguyên, số thực dấu phẩy động

Số nguyên

Có 3 kiểu số nguyên trong PostgreSQL:

  • SMALLINT là số nguyên có dấu, được lưu trữ bằng 2 byte, có phạm vi từ -32,768 đến 32,767.
  • INTEGER là số nguyên có dấu, được lưu trữ bằng 4 byte, có phạm vi từ -2,147,483,648 đến 2,147,483,647.
  • SERIAL là kiểu số nguyên, PostgreSQL sẽ tự động tạo và điền các giá trị tăng dần vào cột SERIAL. Tương tự với cột AUTO_INCREMENT trong cột MySQL hoặc AUTO INCREMENT trong SQLite.
Số thực dấu phẩy động

Có 3 kiểu số thực dấu phẩy động chính, đó là:

  • FLOAT(n) là một số thực dấu phẩy động có độ chính xác, ít nhất là n, được lưu trữ tối đa là bằng 8 byte.
  • REAL hoặc FLOAT8 là số thực dấu phẩy động, được lưu trữ bởi 4 byte.
  • NUMERIC hay NUMERIC(p,s) là một số thực có p chữ số với số s sau dấu thập phân. Trong PostgreSQL NUMERIC và DECIMAL là tương đương nhau và có thể thay thế cho nhau.

Bài tập

Tìm các kiểu dữ liệu phù hợp nhất cho các cột của bảng client được mô tả bên dưới theo thứ tự:

  • id: id của công ty và cột này có giá trị tự động tăng lên đến hàng triệu.
  • name: tên của công ty
  • site_url: đường dẫn url của công ty có độ dài thay đổi.
  • num_employees: số lượng nhân viên (tối đa 1500 cho doanh nghiệp nhỏ).
  • num_customers: số lượng khách hàng (ít nhất là 10 nghìn).

(Hãy chọn đáp án đúng nhất)

A. SMALLINT, VARCHAR(50), VARCHAR(50), INTEGER, INTEGER

B. SERIAL, VARCHAR(50), VARCHAR(50), SMALLINT, SMALLINT

C. SERIAL, VARCHAR(50), VARCHAR(50), SMALLINT, INTEGER

D. SERIAL, VARCHAR(50), VARCHAR(50), INTEGER, INTEGER