Samarqand filliali


MA'LUMOTLARNI O'CHIRISH (O'CHIRISH)


Download 0.69 Mb.
bet4/4
Sana24.01.2023
Hajmi0.69 Mb.
#1114611
1   2   3   4
Bog'liq
MTA 2

MA'LUMOTLARNI O'CHIRISH (O'CHIRISH).


Jadvaldan ma'lumotlarni olib tashlash ma'lumotlarni yangilashga juda o'xshash tarzda amalga oshiriladi. Avval biz bitta qator ma'lumotlarni qanday o'chirishni ko'rib chiqamiz. Keling, quyidagi bayonot yordamida glennni ma'lumotlar bazasidan o'chirib tashlaymiz:
mysql> Numune jadvalidan DELETE WHERE username = 'glenn';
Ushbu buyruqni bajarganimizda, MySQL konsol mijozi bizga bitta satrga ta'sir qilgani (ya'ni o'chirilgan) haqida xabar beradi. Agar biz hozir jadvalda SELECT buyrug'idan foydalansak, konsolda quyidagilarni ko'rish mumkin: Skrinshot-35: Bitta qatorni o'chirish 

Yana, UPDATE bayonotlarida bo'lgani kabi, biz, masalan, yoshi 30 dan kichik bo'lgan har bir kishini o'chirishga ruxsat beruvchi shartlarni belgilashimiz mumkin. Keling, buni hozir quyidagi bayonot bilan bajaramiz:


mysql> DELETE FROM sampletable WHERE age < 30;
Ushbu bayonotni bajarganimizda, mijoz bizga ikkita qatorga ta'sir qilgani yoki bu holda o'chirilganligi haqida xabar beradi. Agar biz hozir jadvalimizda SELECT buyrug'idan foydalansak, jadvalda faqat bitta qator qolganligini ko'ramiz: Skrinshot-36: Shartli o'chirish 

Va nihoyat, bitta bayonotda jadvaldagi barcha qatorlarni o'chirish ham mumkin. Biz qilishimiz kerak bo'lgan yagona narsa, men o'zgartirish uchun barcha parol maydonlarini yangilaganimizda bo'lgani kabi, hech qanday shartni belgilamaslik. Bu erda jadvaldagi barcha qatorlarni o'chirish (ya'ni, jadvalni bo'shatish) uchun bayonot mavjud.


mysql> Namuna jadvalidan o'chirish;
Buni bajargandan so'ng, SELECT buyrug'i yordamida jadvaldagi barcha ma'lumotlarni tanlasak, konsolda quyidagilar ko'rsatiladi: Skrinshot-37: Jadvaldagi barcha ma'lumotlarni o'chirish 

Ko'rib turganingizdek, jadvalda endi hech qanday ma'lumot yo'q.


SELECT BAYONOTLARIDAN FOYDALANISH


Hozirgacha biz namunaviy jadvaldagi barcha ma'lumotlarni ko'rsatish uchun quyidagi buyruqdan foydalanganmiz:
mysql> SELECT * FROM namuna jadvali;
Bu aslida barcha maydonlarni namunaviy jadval jadvalidan oladi va ularni qaytaradi. * - joker belgi bo'lib, u asosan har qanday narsani (yoki bu holda har qanday maydonni) ifodalaydi. SELECT iborasini davom ettirishdan oldin, keling, namunaviy jadvalimizga tajriba uchun ba'zi ma'lumotlarni qo'shamiz. Ba'zi ma'lumotlarni kiritish uchun quyidagi bayonotdan foydalaning:
mysql> Namuna qilinadigan VALUES INSERT INTO
-> ('andrew', 'qwerty', 20, 'andrew@dreamcircle.co.uk', NULL),
-> ('andrew', 'letmein', 27, 'andrew@email.net', NULL),
-> ('Jorj', 'qog'oz', 19, 'george@email.net', NULL),
-> ('jenni', 'jen999', 27, 'jen@email.net', NULL),
-> ('sandra', 'sdra2', 27, 'sandra@email.net', NULL);
Mana, biz uni konsolga kiritganimizda va uni bajarganimizda qanday ko'rinishi kerakligi haqida skrinshot: Skrinshot-38: Yangi ma'lumotlarimizni namunaviy jadvalga kiritish 

Endi biz jadvalga ma'lumotlarimizni qo'shdik, agar biz SELECT iborasini joker belgi (*) bilan ishlatsak, u jadvaldagi barcha ma'lumotlarni oladi va konsolga ko'rsatadi. Keling, buni quyidagi bayonot bilan sinab ko'raylik.


mysql> SELECT * FROM namuna jadvali;
Mana konsoldan olingan skrinshot: Skrinshot-39: SELECT iborasi bilan joker belgidan foydalanish 

Ko'rib turganingizdek, bayonot jadvaldagi barcha ma'lumotlarni (ya'ni, har bir satrdagi barcha qatorlar va ustunlar) oldi. Aytaylik, biz faqat parol maydonini olishni xohlaymiz. Namuna jadvalidagi barcha parollarni olish uchun biz quyidagi bayonotdan foydalanamiz:


mysql> Namuna jadvalidan parolni tanlang;
Ushbu bayonotni bajarganimizda, biz konsoldan quyidagi natijani kutishimiz mumkin: Skrinshot-40: Faqat bitta ustunni olish 

E'tibor bering, biz qanday qilib joker belgini (*) biz olmoqchi bo'lgan ustun bilan almashtiramiz. Shuningdek, biz bir nechta ustunlarni chegaralash uchun vergul yordamida olishimiz mumkin. Keling, faqat foydalanuvchi nomi ustunini va parol ustunini tanlashga harakat qilaylik. Buning uchun biz talab qiladigan bayonot:


mysql> SELECT foydalanuvchi nomi, parolni FROM namunaviy jadval;
Ushbu bayonotni bajarganimizda, konsolda jadvaldan faqat foydalanuvchi nomi va parol maydonlari tanlanganligini ko'rishimiz mumkin. Mana buni ko'rsatadigan konsolning skrinshoti: Skrinshot-41: Bir nechta ustunlarni olish

Endi biz jadvallardan alohida maydonlarni qanday olish kerakligini bilganimizdan so'ng, qanday qilib bitta qatorni olamiz? Biz jadvalni yangilash va jadvaldan o'chirishda qilganimiz kabi, SELECT iborasiga shartni osongina qo'llashimiz mumkin. Shartli SELECT bayonotidan foydalanib, faqat Jenni ma'lumotlarini ma'lumotlar bazasidan ko'rsatamiz. Buning uchun biz talab qiladigan bayonot:


mysql> SELECT * FROM sampletable WHERE username = 'jenny';
Ushbu bayonotni bajarganimizda, MySQL mijoz konsolida faqat Jenni tafsilotlari ko'rsatiladi. Buni quyidagi rasmda ko'rish mumkin: Skrinshot-42: Bitta qatorni tanlash 

Belgilangan maydonlarni tanlash g'oyasini ham o'z ichiga olishimiz mumkin. Buning amaliy misoli foydalanuvchi nomi bilan bog'liq parolni topish bo'lishi mumkin. Jorjga tegishli parolni qanday olishimiz mumkin:


mysql> Numune jadvalidan parolni TANGLASH WHERE username = 'george';
Ushbu bayonotni bajarganimizda, faqat bitta maydon ko'rsatilishini ko'rishimiz mumkin, bu Jorj paroli bo'ladi. Buni Skrinshot-43 da ko'rish mumkin . Skrinshot-43: Belgilangan ustunlar bilan bitta qatorni tanlash 





Eslatma

Ushbu misoldagi kabi muayyan maydonlarni belgilaganimizda, biz WHERE bandida foydalanish uchun tanlagan maydonlar bilan cheklanmaymiz.

Bizning namunaviy ma'lumotlarimizda endryu foydalanuvchi nomi bilan ikkita qator mavjud. Agar biz Endryu uchun parolni olish uchun shartli bayonotdan foydalanishga harakat qilsak, biz ikkita parolni olamiz, ma'lumotlar bazasidagi har bir Andrey yozuvi uchun bittadan. Keling, buni hozir isbotlash uchun sinab ko'raylik. Mana bizga kerak bo'lgan bayonot:
mysql> Numune jadvalidan parolni TANGLASH QERDA username = 'andrew';
Ushbu bayonotni bajarganimizda, konsolda ikkita parol ko'rsatilganligini ko'rishimiz mumkin. Natija quyidagi rasmda ko'rsatilgan: Skrinshot-44: Ikki parol muammosi! 





Eslatma

DISTINCT opsiyasi yordamida natijadan takroriy nusxalarni olib tashlash mumkin. Masalan: SELECT DISTINCT username FROM sampletable.

Keyinchalik ushbu bobda biz relyatsion ma'lumotlar bazalari va kalitlardan foydalanish orqali ushbu muammoni hal qilish yo'lini ko'rib chiqamiz, ammo hozircha bunga kirmaylik. Buning o'rniga keling, LIKE buyrug'i bizga kerakli ma'lumotlarni topishga qanday yordam berishini ko'rib chiqaylik. LIKE dan foydalanish ma'lumotlar bazalarida satrlarni topish uchun ideal, ayniqsa sizda to'liq satrning faqat bir qismi bo'lsa (ya'ni, qidiruv tizimi uchun). Masalan, biz ma'lumotlar bazasida ismi j harfi bilan boshlanadigan odamni topmoqchimiz, deylik. Buni amalga oshirish uchun biz quyidagi bayonotni talab qilamiz:
mysql> SELECT * FROM sampletable WHERE foydalanuvchi nomi LIKE 'j%';
Ushbu bayonotni bajarganimizda, MySQL konsolidan quyidagi natijani kutishimiz mumkin: Skrinshot-45: LIKE dan SELECT iborasi bilan foydalanish 

Jenni qanday qilib olinganiga e'tibor bering, chunki uning foydalanuvchi nomi j harfi bilan boshlangan yagona edi. LIKE bilan foydalanilganda % joker belgini ifodalaydi, shuning uchun uning o‘rniga quyidagi iborani ishlatsak:


mysql> SELECT * FROM sampletable WHERE foydalanuvchi nomi LIKE '%j%';
...j harfi satrning istalgan joyida paydo bo'lishi mumkin. Bundan tashqari, bir nechta belgilarga ega bo'lishingiz mumkinligini unutmang:
mysql> SELECT * FROM sampletable WHERE foydalanuvchi nomi '%nny' kabi;
Bu "nny" matni bilan tugaydigan ismlarga ega bo'lgan barcha odamlarni oladi. Nihoyat, agar biz quyidagi bayonotdan foydalansak:
foydalanuvchi nomi '%nny%a' kabi namuna jadvalidan * ni tanlang;
... nomlarida "nny" ni o'z ichiga olgan barcha qatorlarni oladi, lekin ism "a" bilan tugashi kerak edi.
Download 0.69 Mb.

Do'stlaringiz bilan baham:
1   2   3   4




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