15-мавзу. Grafik va multimediya dasturlash tizimlarini qo’llash. Reja


Download 367.41 Kb.
Pdf ko'rish
bet11/12
Sana30.10.2023
Hajmi367.41 Kb.
#1734713
1   ...   4   5   6   7   8   9   10   11   12
Bog'liq
15-mavzu

Maydonlar bo yicha filtrlash 
1. Formaga Button va Edit komponentalarini qo’ying 
2. Button komponentasiga quyidagilar yoziladi 
Table1->Filtered = false; 
Table1->FilterOptions « foCaselnsensitive; 
Table1->Filter = "Familiya=' " + Editl->Text +
,,
*
,n

Table1->Filtered = true; 
3. Table ning FilterOptions xususiyatining foCaselnsensitive xususiyati 
True qilinadi. 
Yoki Edit komponentasining Onchange hodisasiga quyidagilar yoziladi: 
Table1->Filtered = false; 
// Editl bo’sh bo’Isa funksiyadan chiqib ketiladi 
if (Editl->Text == "") 
return 
Table1->FilterOptions « foCaselnsensitive; 
Table1->Filter = "Familiya='" + Editl->Text 
Table1->Filtered = true; 
DIQQAT: Filterlashni bu turi faqat Paradox uchun o’rinli 
Maydonlarga quyidagicha murojaat qilish mumkin. 
Table1->FieldByName("Maydon_nomi")->Value; 
Table1->FieldByName("Narxi")->AsCurrency; 
Table1->FieldByName("Soni")->AsInteger; 
Maydonga biror qiymatni o’zlashtirish quyidagicha amalgam oshiriladi: 
Table1->Edit; // Jadvalni o’zgartirishga ruxsat berish 
Table1->FieldByName("Ism")->AsString = Editl->Text; 
Table1->Post(); // Saqlash 
Biror maydon yig’indisini hisoblash quyidagicha bo’lishligi mumkin. 
void fastcall T
For
ml::ButtonlClick(TObject *Sender) 

float
s; 
Tablel->First; 
while(!Tablel->Eof) 

s += Tablel->FieldByName("Jami")->Value; 
Tablel->Next; // keyingi yozuvga o’tish 

Buttonl->Caption = 
Float
ToStr(s); 


SQL tili ( Structured Query Language - strukturalashgan so’rovlar tili) 
s
int
aksisi juda oson. SQL 
tilida katta - kichik harflar farqlanilmaydi. Ya’ni Select operatorini SELECT, 
Select, select shakllarida yozish mumkin. Agar bir nechta operatordan foydalanilsa 
operator oxirida qo’yiladi. Faqat bitta operator ishlatilsa operator oxirida qo’yish 
shart emas. Izoh yozish ba'zi sistemalarda / * */ 
shaklida, ba'zi sistemalarda esa {} shaklida bo’ladi. 
SQL so’rovlar tilidan deyarli barcha (MS SQL Server, MySQL, 
PostgreSQL, Oracle, Informix, Paradox, Interbase, FireBird) ma'lumotlar bazasida 
foydalanish mumkin. SQL so’rovlari ma'lumotlar bazasiga qarab qizman 
o’zgarishi mumkin. 
Select tanlash operatori 
Select operatorining umumiy ko’rinishi 
SELECT Cmaydon nomlari ro’yhati> 
FOR
 
WHERE  
GROUP BY  
HAVING  
ORDER BY Cmaydon nomlari ro’yhati>; 
Quyidagi maydonlarni o’zida saqlovchi namuna nomli jadval hosil qiling va 
uni Lesson aliasiga saqlang. 
1. 
Bu jadvaldagi ma'lumotlarni ko’rish quyidagicha bo’ladi: 
SELECT * 
FROM namuna 
2. 
Jadvaldagi ba'zi maydonlarni ko’rsh uchun shu maydon nomlari 
ro’yhati select dan keyin keltiriladi: 
SELECT Familiya, Ism, Otasi 
FROM namuna 
3. 
Familiya bo’yisha tartiblash 
Select familiya, ism, otasi 
From namuna 
Order By Familiya, Ism 
4. 
Tug’ilgan yili bo’yicha kamayib borish tartibida tartiblash 


Select familiya, ism, otasi,tug_yil 
FROM namuna 
Order By tug_yil DESC 
5. 
Select operatoridan keyin faqat maydon nomi emas, ixtiyoriy 
arifmetik amal ( +, *, /) ishlatish 
mumkin. Misol uchun, yuqoridagi jadvaldagi tug’ilgan yilni joriy yildan ayirib, 
talabaning yoshini aniqlaymiz: 
Select familiya, ism, otasi, (2013-tug_yil) AS Yoshi 
FROM namuna 
6. 
Agar maydon nomini ruscha shriftda chiqarish talab etilsa quyidagicha 
so’rov yoziladi: (Maydon nomidan keyin AS xizmatchi so’zi bilan maydon 
sarlavhasi keltirilladi. Faqat "YO" xarfida muammo bo’lishi mumkin) 
Select familiya AS Familiya, ism AS Imya 
FROM namuna 
6.1. Familiya va Ism maydonlarini bitta ustunda chiqarish uchun 
quyidagicha yozish mumkin. 
Select familiya + ' ' + ism AS "Familiya Imya" 
FROM namuna 
MySQL da yuqoridagi so’rov sal boshqacha amalga oshiriladi. 
Where operatoridan keyin tanlash shartida mantiqiy amallar AND, OR, 
NOT, arifmetik amallar va munosabat amallari: 
7. 
Dastlabki 6 ta amal tushunarli. Misol uchun jinsi ayol bo’lgan, 1990 
yildan keyin tug’ilganlar ro’yhatini chiqaramiz. 
Select Familiya, Ism, Otasi, tug_yil, (2013-tug_yil) AS yoshi 
FROM namuna 
Where jinsi=
,,
Ayol" and tug_yil>1990 
8. 
Like amali s
int
aksisi quyidagicha: 
LIKE "cbelgilar ketma - ketligi>" 
Bu amal satrli maydonlar uchun qo’llaniladi va izlanayongan ma'lumot 
topilsa true qiymat qaytaradi. Belgilar ketma - ketligini to’liq kiritish yoki
!,
%” 
belgisi bilan tugatish mumkin. Bu belgi ixtiyoriy belgilar ketma - ketligini 
bildiradi. 
Misol: 


Select familiya, ism, otasi 
FROM namuna 
Where Familiya LIKE "A%" 
Amali 
!,
A" harfidan boshlanuvchi barcha familiyalarni bildiradi. (Adambaev, 
Abdurahimov, Alimov, Azamov, Asqarov, Azizov,...) 
Select familiya, ism, otasi 
FROM namuna 
Where Familiya LIKE "Abdu%" 
Amali 
!,
Abdu" harflaridan boshlanuvchi barcha familiyalarni bildiradi. 
(Abdurahimov, Abdug’aniev, Abduqayyumov, Abdullaev) 
Select familiya, ism, otasi 
FROM namuna 
Where Ism LIKE "%im%" 
Amali ketma - ketlikda “inf qismi bor bo’lgan ismlarni bildiradi. 
(Karimboy, Abdukarim, Rahimjon, Hakimboy, Salimjon,...) 
9. 
between ... and amali s
int
aksisi quyidagicha: 
between  and  
1985 va 1990 yillar oralig’ida tug’ilganlar ro’yhatini chiqarish 
Select familiya, ism, otasi 
FROM namuna 
WHERE tug_yil BETWEEN 1985 AND 1990 
10. 
IN amali s
int
aksisi quyidagicha: 
IN (< to’plam >) 
Maydondagi ma'lumot qiymati, to’plam elementlariga tegishli bo’lganlarini 
chiqarib beradi. Masalan, ismi Azamat, Qudrat va Ne'mat bo’lgan talabalar 
haqidagi ma'lumotlarni chiqarish talab etilsin: 
SELECT * 
FROM namuna 
WHERE Ism IN ("Azamat","Qudrat","Ne'mat") 
Tug’ilgan yili 1980,1982,1989 bo’lganlar ro’yxati esa quyidagicha: 
SELECT familiya, ism, otasi, tug_yil 
FROM namuna 
WHERE tug_yil IN (1980,1982, 1989) 
11. 
DISTINCT xizmatchi so’zi ko’rsatilgan maydon bo’yicha bir xil 
qiymatli ma'lumotlardan faqat bittasini olishni bildiradi 
SELECT DISTINCT familiya 
FROM namuna 
12. Count ko’rsatilgan maydon bo’yicha, yoki butun jadvaldagi yozuvlar 
sonini aniqlash uchun ishlatiladi 
Select count (*) 
FROM namuna 
95-99 guruhidagi talabalar sonini aniqlash: 
Select count (*) as soni 


FROM namuna 
WHERE guruh="95-99" 
13. 
min(), max(), avg(), sum(
funksiyalari mos ravishda maydonning eng kichik qiymatini (min), eng katta 
qiymatini (max), o’rtacha qiymatini (avg) va yig’indisini (sum) aniqlaydi. 
Select min(tug_yil), max(tug_yil), avg(2010-tug_yil) 
FROM namuna 
14. Quyida yoshi eng katta bo’lgan talabani aniqlovchi so’rov keltirilgan 
Select familiya, ism, tug_yil 
FROM namuna 
WHERE tug_yil=(select min(tug_yil) FROM namuna) 
15. Guruhgagi talabalar sonini aniqlovchi so’rov 
Select guruh, count(guruh) as soni 
From namuna 
Group by guruh 
16. Having bo’limi, group by bo’limi bo’lgan xollarda ishlatiladi. Having 
ning ishlatilishi deyarli Where bilan bir hil. Faqat having bo’limidagi so’rov butun 
jadvallarga emas, where bo’limi orqali olingan natijaga yoziladi. Quyida birdan 
ortiq takrorlanuvchi familiyalar va ularning takrorlanishlar sonini chiqaruvchi 
so’rov keltirilgan. 
select familiya, count(familiya) as soni 
from namuna 
group by familiya 
having count(familiya) >= 2 
Jadvalga yangi yozuvqo’shish INSERT operatori orqali amalga oshiriladi 
INSERT INTO cjadval nomi> (Cmaydonlar ro
4
yhati>) 
VALUES (< qiymatlar ro’yhati>) 
Namuna: 
INSERT INTO namuna (familiya, ism) 
VALUES ("Abdurahimov", "Ne’mat") 
Mavjud yozuvni tahrirlash (qiymatini yangilash) Update operatori orqali 
amalga oshiriladi: 
UPDATE cjadval nomi> SET = 
WHERE  
Namuna: Abdurahimov Ne'matning tug’ilgan yilini 1989 ga o’zgartirish 
Update namuna SET tug_yil=1989 
WHERE familiya=
,,
Abdurahimov" AND ism="Ne'mat" 
Yozuvni o’chirish quyidagicha amalga oshiriladi: 
DELETE FROM  
WHERE  
DELETE FROM namuna 
WHERE familiya="Abdurahimov" 


Bu so’rov orqali, familiyasi "Abdurahimov" bo’lgan barcha ma'lumotlar 
o’chiriladi. 
Yuqorida keltirilgan so’rovlarni C++Builder da qo’llanilishini ko’rib 
chiqamiz. 
1 File -» New~> Application tanlanadi; 
2. 
Komponentalarning BDE bo’limidan Queryl komponentasi formaga 
qo’yiladi; 
3. 
Queryl komponentasining DatabaseName hususiyatida Alias 
ko’rsatiladi. (yani Lesson); 
4. 
Queryl komponentasining SQL hususiyatiga quyidagilar kiritiladi: 
select * from namuna 
5. 
Queryl komponentasining Active hususiyati true ga o’zgartiriladi; 
6. 
Komponentalarning Data Access bo’limidan DataSource 
komponentasi formaga qo’yiladi; 
7. 
DataSet hususiyati Queryl qilinadi; 
8. 
Komponentalarning Data Controls bo’limidan DBNavigator 
komponentasi formaga qo’yiladi; 
9. 
DataSource hususiyati DataSourcel qilinadi; 
10. 
Komponentalarning Data Controls bo’limidan DBGrid komponentasi 
formaga qo’yiladi; 
11. 
DataSource hususiyati DataSourcel qilinadi; 
12. Formaga Label, Edit va Button komponentalari qo’yiladi. Button 
komponentasiga quyidagilar 
kiritiladi: 
Queryl->Close; 
Queryl->SQL->Clear() ; 
Queryl->SQL->Add("Select * from namuna"); 
Queryl->SQL->Add("Where Familiya=\""+Editl.Text+"\""); 
Queryl->Open(); 
Bu erda faqat tayyor jadval bilan ulanishni ko’rib chiqamiz. Shuning uchun 
oldin video ma'ruzani ko’rib 
chiqing. 
C++Builderda Microsoft Accessga ulanish uchun ADO texnologiyasidan 
foydalanamiz. 
Buning uchun siz quyidagilarni ketma - ket bajaring: 
1. 
C++Builderning komponentalar palitrasidan ADO bo’limini tanlang. 
2. 
Formaga ADOConnectionl va ADOTablel komponentalarini qo’ying. 
3. 
ADOConnectionl ning ConnectionString hususiyati tanlanadi 
4. 
Build tugmasi bosiladi 



Download 367.41 Kb.

Do'stlaringiz bilan baham:
1   ...   4   5   6   7   8   9   10   11   12




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