Mavzu: Murakkab so'rovlar yaratish. TOP, LIMIT yoki ROWNUM
Ishdan maqsad: Berilgan predmet soha ma' lumotlar bazasidan foydalanib
TOP, LIMIT yoki ROWNUM lardan roydalanishni o' rganish„
Masalani qo'yilishi: Predmet soha målumotlar bazasi shakllantirilgandan so€ng undan unumli foydalanishni tashkil etish maqsadida TOPt LIMIT yoki
ROWNUM lar orqali so' rovlar yaratish-
Uslubiy ko' rsatmalar: SQL LIMIT va SQL TOP operatorlarining vazifasi belgilangan satrlarni chaqirishdan iborat. SQL TOP operatori MS SQL Serverda ishlaydi, SQL LIMIT operatori esa MySQLda va Oracle da ROWNUM operatori ishlaydi ularnig vazifasi bir hil.
SQL Server / MS Access Syntax:
SELECT TOP numberlpercent column name(s)
FROM name
WHERE condition;
MySQL Syntax:
SELECT column name(s)
FROM table name WHERE condilion
LIMIT number;
Oracle Syntax:
SELECT column name(s)
FROM table name
WHERE ROWNUM number;
Misol, MS SQL Serverda ishlash
SELECT TOP 3 * FROM Customers;
Misol, SQL da ishlash
SELECT * FROM Customers
LIMIT 3;
Misol, Oracleda ishlash
SELECT * FROM Customers
WHERE ROWNUM 3;
Ishni bajarish tartibi
Avvalgi bajargan komus nomli jadvalni chaqirib olamiz.
SELECT * FROM korpus; l, So*rov: SELECT * FROM korpus LIMIT 3;
Buyrug' ini kiritamiz natijada bit-inchi uchta satr hosil bo• ladi
N atija:
13.1 — rasm. Limit operatori orqali 3 ta qatorni ekranga chiqarish
2, rov: Select * korpus nomi FROM korpus LIMIT 2,3;
Buymg'ini yozamiz, natijada 2, 3 satrlar hosil bo' ladi.
Natija:
13.2 — rasm. Limit operatori orqali 2,3 qatorni ekranga chiqarish
i 3, Sorov: SELECT * korpus nomi FROM korpus ORDER BY korpus_nomi DESC LIMIT 2.3;
Natija:
13.3 rasm
Vazifalar I . Yuqorida ko' rsatilganlardan foydalanib tanlangan variyantga muvofiq mavzu uchun MySQL da murakkab so' rovlar yaratish.
2, Bajarilgan ishlar haqida hisobot tayyorlang ( 1-2-ilovalarga qarang).
Nazorat savollari
Murakkab so•rovlar yaratish ushun qaysi operatorlardan foydalanish mumkin
"101) operatoritling vazifasi va u qaysi dasturda ishlaydi?
LIMIT operatorining vazifasi va u qaysi dasturda ishlaydi?
4, ROWNIJM operatorining vazifasi va u qaysi dasturda ishlaydi?
14 - LABORATORIYA ISHI
Mavzu: SQL tilida INDEX yaratish
Ishdan maqsad: MySQL maxsus ustun qiymatlariga ega qatorlarni tezda topish uchun indekslardan foydalanishni o'rganish-
Masalani qo'yilishi: Bu laboratoriya ishida MySQL indekslari, shu jumladan indekslarni yaratish, indekslarni o'chirish, jadvalning barcha indekslarini sanab ottish va MySQLda boshqa muhim ko'rsatkichlar bilan ishlanadi.
Uslubiy ko•rsatmalar: MySQL maxsus ustun qiymatlariga ega qatorlarni tezda topish uchun indeksla.rdan foydalanadi. Indekssiz MySQL tegishli satrlarni topish uchun butun jadvalni skanerdan o'tkazishi kelak. Jadval qanchalik katta bo'lsa, u sekinroq qiditadi-
Indekslarni yaratish(creating indexes) - sizni indeks tushunchasi bilan tanishtiradi va jadvalning bir yoki bir nechta ustunlari uchun indeks qanday yaratilishini ko'rsatib beradi.
Indekslarni o'chirish(removing indexes)- _iadvalning nutvjud indeksini qanday olib tashlashni ko'rsatib beradi-
Jadval indekslarini table indexes) - barcha indekslami yoki jadvalning o'ziga xos indekslarini ro'yxat qilish to'g'risida ma'lumot beradi,
Noyob indekslar(umque indexes) - ustunlarda saqlanadigan aniq qiymatlarni ta'minlash uchun noyob indekslardan roydalanadi.
Preliks indekslari(frefix indexses) - belgilar qatori ustuniga indeks yaratish uchun prefiks indeksidan qanday foydalanishni ko'rsatib beradi,
Ko'rinmas indekslar (invisible indexes) - indeks ko'rinishini qamrab Oladi va indeksni ko'rinadigan yoki ko'rinmas qilib ko'rsatishni ko'rsatadi,
Kichik indekslar (descending indexes) - so'rov samaradorligini oshirish uchun pasayadigan indekslardan qanday foydalanishni ko'rsatib beradi.
Kompozit indekslar (composite indexes) - kompozit indekslarning qo'llanihshini tasvirlaydi va siztling so'rovlaringizni tezlashtirish uchun ularni qachon ishlatishingizni ko'rsatadi-
Klasterli indekslar (clustered indexes) - InnoDB jadvallaridagi klasterlangan indekslami tushuntiradi.
Indeksning kardinalligi (index cardinatily) - indeksning kardiologiyasini tushuntiradi va shou indekslari buyrug'i yordamida uni qanday ko'rishni kotrsatib beradi.
FOYDALANISH INDEX (use index hint) - jadvalda satrlarni topish uchun so'rovlar optimallashtiruvchisiga belgilangan indekslarning yagona ro'yxatidan foydalanishni ko'rsatishda USE INDEX maslahatini qanday ishlatishni ko'lsatib beradi.
FORCE INDEX hint - jadvaldan ma'lumotlarni tanlash uchun sotrov optimizatorini belgilangan indekslardan roydalanishga majbur qilish uchun FORCE
INDEX ko'rsatmalaridatl qanday foydalanishni ko'rsatib beradi.
Quyida bazi asosiy so 'rovlar sintaksisi bilan tanishamiz
Index (ko'rsatkich) yaratishning MySQLdagi umumiy sintaksisi:
CREATE INDEX indeh nomi
ON jadvcd (usnml, u.qun2, , Masalan:
CREATE INDEX familiya
ON sha.xslar (familiya);
CREATE INDEX FISH
ON shaxslar (familiya, ism, Sharif);
Index (kot rsatkich)ni kot rsatishning MySQLdagi umumiy sintaksisi:
Show indexes from jadval_nomi;
Show keys from jadval_nomi in malumotlar_bazasi_nomi;
Index (ko'rsatkich) o'chirishning MySQLdagi umumiy sintaksisi:
Oracle bazada:
DROP INDEXjadva/ nomi.indeks nomi;
MySQL 5.6.16
ALTER TABLEJådva/ nomi
DROP INDEX indeks nomi;
Kabi komandalar orqali amalga oshiriladi-
Ishni bajarish tartibi
I , Bazamizdagi barchajadvallarni ko'ramiz:
So'rov: show tables
Natija,
jadva//arning ro *y.xcl/i
"lshlatilishi" nomli jadvalni ko'ramiz va "asosiy maxsulot" nomli indeks yaratamiz:
So'rov: Select * from ismatilishi;
Create index Asosiy_maxsulot on ishlatilish_turi);
Natija:
14.2 — rasm. Istllatilishi jadvali uchun indeks yaratish
Yaratgan indeksimizni ko'ramivz: So'rov: show indexes from ishlalilis/li;
Natija
14.3 — rasm. Ishlatilishi jadvali uchun yamtilgan indekslar ro'yxati
Endi "Maxsulot" nomli jadvalga bam "Ruda" nomli indeks yaratamiz:
So'rov: Select *from maxsulot;
Natija:
14.4— rasm. Maxsulot jadvalidagi ma*lumotlarni ko*rish
So'rov: Create index ruda on maxsulot(id, maxsulot_nomi);
Natija:
ysql> create index ruda on maxsulot(id, maxsu lot_nomi) ; uery CK, O rows affected (0.15 sec)