Kirish Ma’lumotlar bazasi haqida mbbt funktsityalari


-Mavzu: So‘rovlarida guruhlash uchun GROUP BY dan foydalanish



Download 5,2 Mb.
bet67/79
Sana17.04.2022
Hajmi5,2 Mb.
#558651
1   ...   63   64   65   66   67   68   69   70   ...   79
Bog'liq
Maruza mbbt (1-60)

49-Mavzu: So‘rovlarida guruhlash uchun GROUP BY dan foydalanish
Reja:
1. GROUP BY va SELECT
2. GROUP BY dan boshqa SQL buyruqlari bilan foydalanish
3. Guruhlash ma'lumotlarini tanlash
SQLite ma'lumotlar bazasidan ma'lumotlarni olishda ma'lumotlarni qanday guruhlash mumkin: GROUP BY va SELECT
SQLite ma'lumotlar bazasidan ma'lumotlarni olishda ma'lumotlarni qanday guruhlash mumkin: GROUP BY va SELECT
SQLite3 jadvallaridan ma'lumotlarni tanlashda ma'lumotlarni guruhlash misollari: GROUP BY va SELECT misollari
GROUP BY dan boshqa SQL buyruqlari bilan foydalanish
WHERE va SELECT saralash bandining kombinatsiyasi shart bilan ma'lumotlarni tanlash imkonini beradi , bu SQL SELECT so'rovini amalga oshirganimizda ma'lumotlar bazasidan ma'lum qatorlarni tanlash imkonini beradi . Ammo jadvallardagi qatorlar takrorlanadigan holatlar mavjud, masalan, bizda ish haqi ma'lumotlarini saqlaydigan xodimlar bilan jadval mavjud va ikkita lavozimni egallagan xodimlar mavjud, bunday xodimlarning qatorlari ko'paytiriladi.
Va agar biz bunday xodimlarning umumiy daromadlari haqida ma'lumot olishimiz kerak bo'lsa, unda buning uchun biz ma'lumotlarni tanlash so'rovini amalga oshirishimiz kerak guruhlash bilan . Ma'lumotlarni tanlashda ma'lumotlarni guruhlash SELECT buyrug'i, GROUP BY kvalifikatsiya bandi va yig'ish funktsiyalari yordamida amalga oshiriladi . GROUP BY kalit so‘zi ixtiyoriy, lekin agar siz undan foydalansangiz, u WHERE saralash bandiga amal qilishi kerak.
Guruhlash ma'lumotlarini tanlash ma'lumotlar bazasidan foydalanadigan dastur kodini kamaytirish uchun ishlatiladi. Agar guruhlash bo'lmasa, biz dastur algoritmlarini murakkablashtirishimiz va shunga o'xshash funktsiyani DBMS dan ancha uzoqroq bajaradigan o'z kodimizni yozishimiz kerak edi .
Shu tarzda biz SELECT so‘rovimizni murakkablashtiramiz va WHERE kvalifikatsiya bandidan, GROUP BY kalit so‘zidan va yig‘ish funksiyasidan foydalanamiz. Biz SELECT, GROUP BY va WHERE qanday ishlashi haqida og'zaki tavsif berdik va tanlashda ma'lumotlarni guruhlash misollariga o'tish vaqti keldi.
SQLite3 jadvallaridan ma'lumotlarni tanlashda ma'lumotlarni guruhlash misollari: GROUP BY va SELECT misollari
SELECT so'rovlarida ma'lumotlar tanlovini guruhlash misoli uchun biz oldingi qismdagi jadvaldan foydalanamiz , CREATE buyrug'i yordamida jadval tuzamiz :



CREATE TABLE table1 (
id INTEGER PRIMARY KEY,
name TEXT NOT NULL,
pro TEXT NOT NULL,
sex TEXT NOT NULL,
salREALCHECK (sal> 15000)
);

Jadval1 jadvali juda oddiy: u to'rtta ustunni o'z ichiga oladi, unda ma'lumotlar yaxlitligini ta'minlash uchun jadval darajasidagi va ustunlar darajasidagi cheklovlar mavjud va u PRIMARY KEY cheklovi ko'rinishidagi indeksga ega . Biz ustunlarga tanlov sharti qiymatlari bilan taqqoslash uchun zarur bo'lgan bog'langan ma'lumotlar turlarini berdik .
Endi INSERT buyrug'i yordamida ma'lumotlar bazasi jadvaliga ma'lumotlarni qo'shamiz :



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27

INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘ПупкинМатвей’, 'Дантист', ‘м’, 55000.00);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘CумкинДенис’, 'Юрист', ‘м’, 35040.90);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘ИванИванов’, 'Младшийюрист', ‘м’, 16000.00);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘Ирина Маркова’, 'Бухгалтер', ‘ж’, 31200.10);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘Алина Петрова’, 'Менеджер продаж', ‘ж’, 21200.10);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘Любовь Михайлова’, 'Секретарь', ‘ж’, 16200.10);
INSERT INTO table1 (name, pro,sex, sal)
VALUES (‘Инна Сидорова’, 'Руководитель отдела обслуживания', ‘ж’, 66200.10);

Biz bir nechta qatorlarni qo'shdik, endi tanlash ma'lumotlarini kalit so'zlar yordamida guruhlashga harakat qilaylik: SELECT, WHERE va GROUP BY . Aytaylik, biz barcha xodimlar haqida ma'lumot olishimiz va ularning daromadlarini guruhlashimiz kerak:



SELECT id, name, sex, sum(sal) FROM table1
WHERE sex = 'ж'
GROUP BY name;
id name sex sum(sal)
4 Алина Петрова ж 21200.1
5 Любовь Михайлова ж 16200.1
6 Инна Сидорова ж 66200.1
3 Ирина Маркова ж 31200.1
-- Для примера напишем этот же запрос, но не будем использовать
-- GROUP BY
SELECT id, name, sex, sum(sal) FROM table1
WHERE sex = 'ж';
id name sex sum(sal)
6 Инна Сидорова ж 134800.4

Ko'rib turganingizdek, natijalar farq qiladi, bu holda biz tanlovni nom ustuni bo'yicha guruhladik, lekin siz guruhlash uchun bir nechta ustunlardan foydalanishingiz mumkin, buning uchun GROUP BY kalit so'zidan keyin vergul bilan ajratilgan ustunlarni ko'rsatishingiz kerak. Aslida, misol unchalik ma'lumotga ega emas, keling , SELECT, WHERE va GROUP BY ni birlashtirib, kompaniyadagi erkaklarning har biri nechta pozitsiyani egallashini hisoblaylik :



SELECT id, name, sex, count(pro) FROM table1
WHERE sex = 'м'
GROUP BY name;
id name sex count(pro)
2 Cумкин Денис м 1
1 Пупкин Матвей м 1
3 Иван Иванов м 1
-- попробуем сгруппировать выборку по столбцу sex
SELECT id, name, sex, count(pro) FROM table1
WHERE sex = 'м'
GROUP BY sex;
id name sex count(pro)
3 Иван Иванов м 3

Ma'lumotlarni tanlashni guruhlashning zaruriy sharti shundaki, GROUP BY dan keyin ko'rsatilgan ustunlar SELECT dan keyin ham ko'rsatilishi kerak . Yuqorida sizda ikkita guruhlash misollari bor. Bitta misol tanlovni nom ustuni bo'yicha guruhlaydi, bizning holatlarimizda, shartni hisobga olgan holda, nom ustunida uchta noyob qiymat mavjud va biz jadvalda bo'lmagan yangi ustunli uchta qatorni olamiz: count (pro) bu holda pro-qiymatning takrorlanish sonini hisoblovchi agregatsiya funksiyasi.

Download 5,2 Mb.

Do'stlaringiz bilan baham:
1   ...   63   64   65   66   67   68   69   70   ...   79




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish