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 sonlarni saqlash uchun uchta asosiy ma'lumot turini qo'llab-quvvatlaydi:
SMALLINTINTEGER (yoki INT)BIGINTQuyidagi jadvalda har bir turning texnik xususiyatlari keltirilgan:
| Turi | Xotira hajmi | Minimal qiymat | Maksimal qiymat |
|---|---|---|---|
SMALLINT | 2 bayt | -32,768 | +32,767 |
INTEGER | 4 bayt | -2,147,483,648 | +2,147,483,647 |
BIGINT | 8 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 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:
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 (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 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:
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.
SMALLINT (2 bayt), INTEGER (4 bayt) va BIGINT (8 bayt) turlarini taqdim etadi.