Shu paytgacha biz jadvallar allaqachon tayyor holatda ishladik — mahsulotlar yoki mijozlar jadvallari kimdir tomonidan oldindan yaratib qo'yilgan edi, biz esa faqat ulardan ma'lumot o'qib (SELECT) yoki yangi qator qo'shib (INSERT) keldik.
Ammo har qanday ma'lumotlar bazasi avval bo'sh bo'ladi — undagi jadvallar birovning qo'li bilan yaratilishi kerak. Yangi jadval yaratish uchun CREATE TABLE operatoridan foydalanamiz.
CREATE TABLE ning asosiy shakli quyidagicha:
CREATE TABLE jadval_nomi (
ustun1 TIP,
ustun2 TIP,
ustun3 TIP
);Bu yerda biz jadvalga nom beramiz va qavs ichida uning ustunlarini sanab o'tamiz. Har bir ustun uchun ikki narsani aytamiz:
ism),TEXT).Misol uchun, talabalar haqida ma'lumot saqlaydigan talabalar nomli jadval yarataylik:
CREATE TABLE talabalar (
id INTEGER,
ism TEXT,
baho INTEGER
);Bu so'rov bo'sh jadval yaratadi — unda hali birorta ham qator yo'q. Faqat ustunlar (id, ism, baho) tayyor turadi.
Eslatma:
CREATE TABLEham,INSERTkabi, ekranga hech narsa chiqarmaydi. U faqat ma'lumotlar bazasida yangi (bo'sh) jadvalni jimgina yaratadi.
Har bir ustun qanday turdagi ma'lumot saqlashini oldindan belgilab qo'yamiz. Asosiy uchta tip mavjud:
| Tip | Nimani saqlaydi | Misol qiymatlar |
|---|---|---|
INTEGER | butun son (kasrsiz) | 5, -3, 100 |
TEXT | matn (so'z, jumla) | 'Ali', 'Toshkent' |
REAL | kasrli (o'nlik) son | 4.5, 3.14, 99.0 |
Demak, talabalar jadvalida:
id — butun son bo'lgani uchun INTEGER,ism — matn bo'lgani uchun TEXT,baho — butun son (masalan, 5 yoki 4) bo'lgani uchun INTEGER.Agar baho o'rniga 4.5 kabi kasrli baholarni saqlamoqchi bo'lsak, u holda ustun tipini REAL qilib belgilashimiz kerak edi.
Muhim: Matn qiymatlari (masalan,
'Ali') doimo bittalik qo'shtirnoq ichida yoziladi. Sonlar (5,4.5) esa qo'shtirnoqsiz yoziladi.
Ko'pincha jadvalda har bir qatorni yagona qilib ajratib turadigan ustun bo'ladi. Masalan, id ustuni har bir talabaga bittadan beriladigan raqam bo'lib, u takrorlanmasligi kerak.
Bunday ustunni PRIMARY KEY (asosiy kalit) deb belgilaymiz:
CREATE TABLE talabalar (
id INTEGER PRIMARY KEY,
ism TEXT,
baho INTEGER
);PRIMARY KEY tipdan keyin yoziladi va ma'lumotlar bazasiga shuni aytadi: bu ustun takrorlanmas bo'lishi va har bir qatorni aniq ajratib turishi kerak. Onlayn do'kondagi mahsulotlar va mijozlar jadvallarida ham id aynan shunday asosiy kalit edi.
Yangi jadval yaratilgandan keyin u bo'sh bo'ladi. Unga ma'lumot solish uchun avval ko'rgan INSERT operatoridan foydalanamiz, so'ng SELECT bilan natijani tekshiramiz.
Bularning hammasini ketma-ket bitta kodda yozish mumkin — har bir so'rov nuqta-vergul (;) bilan tugaydi:
CREATE TABLE talabalar (id INTEGER PRIMARY KEY, ism TEXT, baho INTEGER);
INSERT INTO talabalar (id, ism, baho) VALUES (1, 'Ali', 5), (2, 'Vali', 4);
SELECT ism, baho FROM talabalar ORDER BY id;Bu yerda uchta qadam bor: avval CREATE TABLE jadvalni yaratadi, so'ng INSERT ikkita talabani qo'shadi, oxirida SELECT esa ularni id tartibida o'qib chiqaradi:
Ali|5
Vali|4Eslatma: Bir nechta so'rovni birga yozganda, har birining oxiriga
;qo'yishni unutmang. Aks holda ma'lumotlar bazasi so'rovlar qayerda tugashini bilmaydi.
Bir nechta qator chiqayotgani uchun bu yerda ham ORDER BY id ishlatdik — natija doim bir xil tartibda chiqishiga ishonch hosil qilish uchun.
id (INTEGER PRIMARY KEY), ism (TEXT) va baho (INTEGER) ustunlaridan iborat talabalar nomli jadval yarating. Unga ikkita talaba qo'shing — (1, 'Ali', 5) va (2, 'Vali', 4) — so'ngra ularning ism va bahosini id tartibida chiqaruvchi SELECT so'rovini yozing.