1-laboratoriya topshirig’i
Yuqorida o’rganilgan bilimlar asosida 1-laboratoriya topshirig’ini bajarish kerak bo’ladi. Laboratoriya ishida 4 ta savol berilgan.
Bizga ma’lumotlar bazasining jadvali berilgan. Bu jadvalda ma’lumotlar bazasidagi barcha jadvallar nomlari va maydon nomlarini ko’rishimiz mumkin. Berilgan topshiriqqa asosan SQL so’rovini yozamiz.
1) ma’lumotlar bazasidagi ma’lumotlarni aynan 2013-yildagilarini topishimiz so’ralmoqda. Bunda quyidagicha SQL so’rovini yozamiz:
SELECT *
FROM Invoice
WHERE InvoiceDate like '2013%'
SELECT – belgilash buyrug’i
* - jadvaldagi hamma ma’lumotlar ustunini
FROM – shu buyruqdan keyin keladigan jadvaldan belgilash
WHERE – qaysi ma’lumotlarni chiqarish shartini yozish uchun buyruq
like ‘….%’ – bu buyruq shu apostrof ichidagi ma’lumotga o’xshash ma’lumotlarni chiqaradi. Ya’ni bizning holatda 2013-yildagi ma’lumotlarni chiqaradi.
2) bu savolda Customer jadvalidan foydalanib mamlakati Braziliya, Kanada, Hindiston va Shvetsiya bo’lgan xaridorlarning familiyasi va ismini ko’rsatish so’rovi yoziladi, quyidagicha:
SELECT FirstName, LastName, Country
FROM Customer
WHERE ((Country='Brazil')OR(Country='Canada')OR(Country='India')OR(Country='Sweden'))
Select dan so’ng aynan kerakli bo’lgan ustun nomlarini yozdik. So’ngra WHERE buyrug’idan so’ng bizga kerakli shart yozildi, ya’ni Country ustuni biz sanab o’tgan mamlakatlarga to’g’ri kelishi kerak.
3) ushbu savolda Track va Albom jadvallaridan foydalanib, 'A' harfi bilan boshlanadigan barcha qo'shiqlarni qaytaradigan so'rov yozishimiz kerakligi va bastakor maydoni bo'sh bo’lmasligi talab qilinmoqda. So’rovimiz qo'shiq nomini, bastakor nomini va albom nomini qaytarishi kerak.
SELECT t.Name,t.Composer,a.Title
FROM Album as a
JOIN Track as t
ON t.AlbumId=a.AlbumId
WHERE t.Name LIKE 'A%' AND t.Composer IS NOT NULL ;
Bu so’rovda JOIN buyrug’ini ishlatamiz, chunki bitta emas, ikkita jadvaldan bir vaqtning o’zida foydalanishimiz lozim. Album jadvalini a deb, Track jadvalini t deb olamiz va kerakli so’rovni yozamiz.
4) ushbu savolda bitta invoice da eng ko'p pul sarflagan eng yaxshi o'nta xaridorlar uchun promotional Music Festivak o'tkazmoqchi. Invoice umumiy kamayishi bo'yicha buyurtma qilingan eng yaxshi 10 ta invoice uchun ism, familiya va invoice summasini qaytaradigan so'rov yozish lozim.
SELECT c.FirstName ,c.LastName, i.Total
FROM Customer c
JOIN Invoice i
ON c.customerid = i.customerid
ORDER BY i.Total DESC LIMIT 10
Bu yerda xuddi avvalgidek kabi JOIN buyrug’ini ishlatish bilan birga DESC LIMIT ni ham ishlatamiz. Shunidnek, saralash buyrug’i ORDER ham ishlatiladi. Chunki savolda 10 ta xaridorni invoice ustuniga ko’ra saralab olishimiz zarur.
Do'stlaringiz bilan baham: |