SQL ma'lumot tiplari
Jadvaldagi har bir ustun ma’lum turdagi ma’lumot saqlaydi: narx — son,
nom — matn, sana — sana. Ustun yaratilganda uning tipi belgilanadi.
Bu darsda asosiy ma’lumot tiplarini va ular nega kerakligini ko’ramiz.
Nega ustunga tip kerak
Tip — ustunga qanday ma’lumot tushishini belgilaydi. Bu ikki narsani beradi:
- To’g’rilik —
narxustuni son deb belgilangan bo’lsa, unga matn tushib qolmaydi. - To’g’ri amallar — sonni qo’shish/taqqoslash mumkin, sana bo’yicha tartiblanadi, matn esa alifbo bo’yicha. Tip baza qaysi amalni qo’llashini biladi.
Asosiy tiplar (SQLite)
Namuna bazamiz SQLite’da. Uning asosiy tiplari:
| Tip | Nima saqlaydi | Namuna baza ustuni |
|---|---|---|
INTEGER |
butun son | id, narx, soni, yosh |
REAL |
kasr son | (masalan chegirmali narx: 7200.5) |
TEXT |
matn | nom, turi, ism, shahar, sana |
BLOB |
fayl/tasvir (xom baytlar) | (namunada yo’q) |
Har tipdagi ustun qo’shimcha NULL (qiymat yo’q)
holatida ham bo’lishi mumkin.
CREATE TABLE da tip ko’rsatiladi
Jadval yaratilganda har ustun nomidan keyin tipi yoziladi. Namuna
bazadagi mahsulotlar jadvali shunday tuzilgan:
CREATE TABLE mahsulotlar (
id INTEGER PRIMARY KEY,
nom TEXT NOT NULL,
narx INTEGER NOT NULL,
soni INTEGER NOT NULL,
turi TEXT
);
O’zingiz ishga tushirib ko’ring — so’rovni tahrirlashingiz ham mumkin:
PRIMARY KEY — bu ustun har qatorning noyob kaliti (id). NOT NULL —
ustun bo’sh bo’la olmaydi, qiymat majburiy.
Sana bilan ishlash
SQLite’da alohida “sana” tipi yo’q — sana odatda TEXT sifatida,
'YYYY-MM-DD' ko’rinishida saqlanadi (masalan '2026-07-24'). Namuna
bazadagi buyurtmalar.sana ustuni shunday. Bu format bo’yicha tartiblash
va taqqoslash to’g’ri ishlaydi:
SELECT * FROM buyurtmalar WHERE sana >= '2026-07-05';
'YYYY-MM-DD' formati muhim: shu tartibda yozilgani uchun matn bo’yicha
tartiblash ham vaqt bo’yicha to’g’ri chiqadi.
Boshqa bazalardagi tiplar
SQLite tiplarga yumshoq qaraydi, lekin MySQL va PostgreSQL qat’iy. U yerda ko’proq aniq tiplar bor:
| Umumiy tip | Ma’nosi |
|---|---|
VARCHAR(n) |
uzunligi cheklangan matn (n belgigacha) |
INT |
butun son |
DECIMAL(m, n) |
aniq kasr son (pul uchun ideal) |
DATE, DATETIME |
sana va vaqt |
BOOLEAN |
rost/yolg’on |
Nomlar farq qilsa ham, g’oya bir xil: har ustun o’z tipiga ega. SQLite’da o’rgangan tushuncha boshqa bazalarga ham o’tadi.
Amaliy mashq
Turlarni tekshiring:
typeof()bilannomvanarxustunlari turini ko’ring;typeof(yosh)nimijozlarda bajaring — NULL qanday ko’rinadi?SELECT '5' + 3;ni ishga tushiring — SQLite nima qildi?SELECT 'salom' + 3;ni sinang;CAST(narx AS TEXT)bilan turni o’zgartiring.
3 va 4-qadam SQLite’ning turlarga munosabati haqida nima aytadi?
Qisqacha xulosa
- Har ustunning tipi bor: u qanday ma’lumot saqlanishini belgilaydi.
- SQLite asosiy tiplari:
INTEGER,REAL,TEXT,BLOB. - Tip
CREATE TABLEda beriladi;PRIMARY KEYvaNOT NULL— qo’shimcha cheklovlar. - SQLite’da sana
TEXT('YYYY-MM-DD') sifatida saqlanadi. - MySQL/PostgreSQL’da
VARCHAR,INT,DECIMAL,DATEkabi aniq tiplar bor — g’oya bir xil.
Keyingi darsda operatorlar (BETWEEN, IN, LIKE) —
WHERE shartlarini qulayroq va kuchliroq yozishni ko’ramiz.