Oldingi darsda ma'lumotlar bazasi nima ekanini va u ma'lumotlarni jadvallar ko'rinishida saqlashini ko'rdik. Endi navbatdagi savol: bazadan kerakli ma'lumotni qanday so'raymiz?
Restoranda ofitsiantga buyurtma berishni eslang: "Menga bitta osh va bitta choy" — siz faqat nima kerakligini aytasiz, oshxona uni qanday tayyorlashni o'zi hal qiladi. Ma'lumotlar bazasi bilan ham xuddi shunday gaplashiladi. Buning uchun maxsus til bor — SQL.
SQL (Structured Query Language — tuzilmali so'rovlar tili) — ma'lumotlar bazasiga so'rov (query) yuborish tili. U "es-kyu-el" yoki "sikvel" deb o'qiladi.
Muloqot doim bir xil ko'rinishda bo'ladi: siz so'rov yuborasiz, baza natijani qaytaradi:
Loading diagram...
SQL so'rovi oddiy inglizcha gapga juda o'xshaydi. Masalan, mahsulotlar jadvalidan barcha nomlarni olish:
SELECT nomi FROM mahsulotlar;So'zma-so'z tarjima qilsak: "TANLA nomi (ustunini) mahsulotlar (jadvalidan)". Ingliz tilini boshlang'ich darajada bilgan odam bu so'rovni kod yozishni o'rganmasdan ham taxminan tushunadi — SQL ataylab shunday sodda qilib yaratilgan.
E'tibor bering: biz bazaga qaysi fayldan, qanday algoritm bilan qidirishni aytmadik. SQLda siz nima kerakligini yozasiz, qanday topishni baza o'zi hal qiladi.
SQL orqali ma'lumot ustida barcha asosiy amallarni bajarish mumkin:
| Amal | Operator | Misol vazifa |
|---|---|---|
| Ma'lumot olish | SELECT | "Barcha mahsulotlarni ko'rsat" |
| Ma'lumot qo'shish | INSERT | "Yangi buyurtma yozib qo'y" |
| O'zgartirish | UPDATE | "Telefon narxini yangilab qo'y" |
| O'chirish | DELETE | "Bekor qilingan buyurtmani o'chir" |
| Jadval yaratish | CREATE TABLE | "Mijozlar uchun yangi jadval och" |
To'rt asosiy amalning jadvalga ta'sirini quyidagicha tasavvur qilish mumkin:
SQL amallari jadvalga qanday ta'sir qiladi
Kursimizning katta qismi SELECT ga bag'ishlanadi, chunki amalda so'rovlarning aksariyati — ma'lumot o'qish. Qolgan operatorlarning har birini ham alohida darslarda o'rganamiz.
SQL — standart til: SQLite, PostgreSQL, MySQL va boshqa deyarli barcha MBBTlar uni tushunadi. Tizimlar orasida mayda farqlar bor (ular dialekt deb ataladi), lekin asosiy operatorlar hamma joyda bir xil ishlaydi.
Bu kursda biz SQLite dan foydalanamiz — o'rnatishni talab qilmaydi va siz yozgan so'rovlar to'g'ridan-to'g'ri brauzerda tekshiriladi. O'rganganlaringiz esa PostgreSQL yoki MySQL da ham deyarli o'zgarishsiz ishlayveradi.
Muhim: Jadvaldagi operatorlarni hozircha yodlab olish shart emas. Keyingi darsdan boshlab ularni birma-bir, amalda so'rov yozib o'rganamiz.
Bu darsda ham kod yozmaysiz — birinchi so'rovingizni keyingi darsda yozasiz. Hozir esa qisqa test orqali SQL haqidagi tushunchalarni mustahkamlaymiz: SQL nima, qaysi operator qanday amalni bajaradi va nima uchun SQL deyarli hamma joyda ishlaydi. Har bir savolda 4 ta variant bor — eng to'g'risini tanlang.