42 / 100

INTEGER

Butun sonlar: SMALLINT, INT, BIGINT

Kirish: Ushbu qo'llanmada siz PostgreSQL ma'lumotlar bazasida butun sonlarni saqlash uchun ishlatiladigan SMALLINT, INTEGER va BIGINT ma'lumotlar turlari haqida bilib olasiz.

PostgreSQL butun son turlariga kirish

PostgreSQL butun sonlarni saqlash uchun uchta asosiy ma'lumot turini qo'llab-quvvatlaydi:

  • SMALLINT
  • INTEGER (yoki INT)
  • BIGINT

Quyidagi jadvalda har bir turning texnik xususiyatlari keltirilgan:

TuriXotira hajmiMinimal qiymatMaksimal qiymat
SMALLINT2 bayt-32,768+32,767
INTEGER4 bayt-2,147,483,648+2,147,483,647
BIGINT8 bayt-9,223,372,036,854,775,808+9,223,372,036,854,775,807

Agar ruxsat etilgan oraliqdan tashqaridagi sonni kiritishga yoki yangilashga urinsangiz, PostgreSQL xatolik (out of range) chiqaradi.

SMALLINT

SMALLINT ma'lumot turi xotiradan 2 bayt joy oladi va -32,768 dan 32,767 gacha bo'lgan sonlarni saqlaydi.

Amaliyotda SMALLINT turi kichik diapazondagi qiymatlar — talabalar baholari, tovarlar soni yoki inson yoshini saqlash uchun juda mos keladi.

Masalan, quyidagi CREATE TABLE buyrug'i insonlarning ismi va yoshini saqlovchi people jadvalini yaratadi:

query.sql
CREATE TABLE people (
  id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  name VARCHAR(100) NOT NULL,
  age SMALLINT NOT NULL CHECK (
    age >= 1
    AND age <= 150
  )
);

INTEGER (INT)

INTEGER (yoki qisqacha INT) eng keng tarqalgan 4 baytli butun son turi bo'lib, -2 milliarddan +2 milliardgacha bo'lgan oraliqni qamrab oladi. U ko'pincha asosiy identifikatorlar (ID), miqdorlar va hisob-kitoblar uchun asosiy tanlov hisoblanadi.

BIGINT

BIGINT turi xotiradan 8 bayt joy egallaydi va juda katta sonlarni (-9 kvintilliondan +9 kvintilliongacha) saqlay oladi.

Masalan, quyidagi misolda video ko'rishlar sonini (views) saqlash uchun videos jadvali yaratiladi:

query.sql
CREATE TABLE videos (
  id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
  title VARCHAR(255) NOT NULL,
  description TEXT,
  view_count BIGINT CHECK (view_count >= 0)
);

E'tibor bering, BIGINT turi INT ga nisbatan 2 barobar ko'proq xotira egallaydi, shuning uchun faqat haqiqatan ham 2 milliarddan ortiq sonlar kutilgandagina BIGINT ishlatish tavsiya etiladi.

Xulosa

  • Butun sonlarni saqlash uchun PostgreSQL SMALLINT (2 bayt), INTEGER (4 bayt) va BIGINT (8 bayt) turlarini taqdim etadi.
  • Ma'lumotlarning kutilayotgan hajmiga qarab eng mos turni tanlash orqali disk xotirasini tejash va bazaning ishlash tezligini oshirish mumkin.