- REJA:
- Top, Limit, RowNum standart so`zlari
- EXISTS standart so`zi
- CASEstandart so`zi
Rastalar, mahsulot turi va mahsulot jadvallaridagi rastalar, mahsulot turi va mahsulotustunlari bitta ustunda chiqarilsin. - Rastalar, mahsulot turi va mahsulot jadvallaridagi rastalar, mahsulot turi va mahsulotustunlari bitta ustunda chiqarilsin.
- a) SELECT CONCAT(rastalar, “ ”, [mahsulot turi], “ ”, [mahsulot tu])
- FROM Rastalar, [Mahsulot turi], [Mahsulotlar]
- WHERE Rastalar.ID=[Mahsulot turi].Rasta_id and
- [Mahsulot turi].ID=Mahsulot.Mahsulot_t_id;
-
- b) SELECT CONCAT_WS(“ ”, rastalar, [mahsulot turi], [mahsulot tu})
- FROM Rastalar, [Mahsulot turi], [Mahsulotlar]
- WHERE Rastalar.ID=[Mahsulot turi].Rasta_id and
- [Mahsulot turi].ID=Mahsulot.Mahsulot_t_id;
Mahsulot jadvalining mahsulot narxi ustunidagi qiymatlarining butun qismi chiqarilsin. - Mahsulot jadvalining mahsulot narxi ustunidagi qiymatlarining butun qismi chiqarilsin.
- SELECT ROUND([mahsulot narxi], 0) FROM Mahsulot;
- Yetkazib beruvchilar jadvalining yetkazib beruvchi ustunidagi <“Alixan” MCHJ> qiymati <“VALI” MCHJ> qiymatiga o`zgartirilib chiqarilsin.
- a) SELECT INSERT([yetkazib beruvchi], 2, 7, “VALI”)
- FROM [Yetkazib beruvchilar]
- WHERE [yetkazib beruvchi]=““Alixan” MCHJ”;
- b) select replace(ism, 'Alixan', 'VALI') from talaba;
Xodim jadvalidagi F.I.SH ustunida Xasan ismi mavjud bo`lsa undagi X harfi nechchinchi belgi(Simvol)ligi chiqarilsin. - Xodim jadvalidagi F.I.SH ustunida Xasan ismi mavjud bo`lsa undagi X harfi nechchinchi belgi(Simvol)ligi chiqarilsin.
- a) SELECT INSTR(F.I.Sh, “Xasan") FROM xodim;
- b) SELECT LOCATE("Xasan", F.I.Sh, 2) FROM xodim;
- b) SELECT POSITION("Xasan" IN F.I.Sh)FROM xodim;
Omborxonada keltirilgan sanasi 01.01.2019 dan keyin keltirilgan “Fanta” qiymati “Fanta C” ga o`zgartirilib chiqarilsin. - Omborxonada keltirilgan sanasi 01.01.2019 dan keyin keltirilgan “Fanta” qiymati “Fanta C” ga o`zgartirilib chiqarilsin.
- SELECT INSERT(Mahsulotlar.[Mahsulot nomi], 1, 5, “Fanta C”) FROM mahsulotlar, Omborxona
- WHERE Mahsulotlar.id=Omborxona.Mahsulot_id
- and Mahsulot.[mahsulot nomi]=“Fanta”
- and [keltirilgan sana]<01.01.2019;
- Mahsulotlar jadvalidagi mahsulot nomi ustunidan so`zning boshlanishidagi bo`sh joylar(probellar) olib tashlanib chiqarilsin.
- SELECT LTRIM([Mahsulot nomi]) From Mahsulotlar;
Yetkazib beruvchilar jadvalining I/CHlar ustunidagi har bir mahsulot sanasiga 1 yil 2 oy qo`shilib chiqarilsin. - Yetkazib beruvchilar jadvalining I/CHlar ustunidagi har bir mahsulot sanasiga 1 yil 2 oy qo`shilib chiqarilsin.
- Select add_months(I/CHlar, 14) from [Yetkazib beruvchilar];
- Birinchi rastaga nechta mahsulot turi joylashtirilgan.
- Select count([Mahsulot turi].*) from [Mahsulot turi], Rastalar Where [Mahsulot turi].Rasta_id=Rastalar.id and Rastalar.id=1;
Mahsulotlar jadvalidagi mahsulot nomi ustunidan bo`sh joylash(probellar) olib tashlanib chiqarilsin. - Mahsulotlar jadvalidagi mahsulot nomi ustunidan bo`sh joylash(probellar) olib tashlanib chiqarilsin.
- Select TRIM([Mahsulot nomi]) From Mahsulotlar;
- Omborxona jadvalining ustunlaridan foydalanib muddati o`tgan mahsulotlar haqida ma`lumot bering.
- Select * from Omborxona
- Where (select months_between (sysdate, [keltirilgan sana]) from Omborxona)>[saqlash muddati]*12;
Eng qimmat mahsulot qaysi rastada joylashgan. - Eng qimmat mahsulot qaysi rastada joylashgan.
- Select rastalar from Rastalar, [Mahsulto turi], Mahsulotlar
- From Rastalar.ID=[Mahsulot turi].Rasta_id and =[Mahsulot turi].ID=Mahsulotlar.Mahsulot_t_id and Mahsulotlar.[Mahsulot narxi]=(Select MAX([Mahsulot narxi])) from Mahsulotlar;
- Omborxona jadvalining keltirilgansana ustunidagi har bir mahsulot sanasiga 2 oy qo`shilib chiqarilsin.
- Select add_months(sana, 2) from Omdborxona;
TOP, LIMIT va ROWNUM - Hamma ma'lumotlar bazalari TOP standart so'zini qo'llab-quvvatlamaydi. MySQL cheklangan miqdordagi yozuvlarni tanlash uchun LIMIT so'zini qo'llab-quvvatlaydi, Oracle esa ROWNUM dan foydalanadi.
- TOP standart so`zi qaytariladigan yozuvlar sonini aniqlash uchun ishlatiladi.
- TOP standart so`zi minglab yozuvlarga ega bo'lgan katta jadvallarda foydalidir. Ko'p sonli yozuvlarni qaytarish ishlashga ta'sir qilishi mumkin.
- TOP sintaksisi (SQL Server)
- SELECT TOP son, ustun nomlari FROM jadval nomlari WHERE shartlar;
1 misol. Mahsulot jadvalining birinchi 3 qator ma`lumotlari chiqarilsin. - 1 misol. Mahsulot jadvalining birinchi 3 qator ma`lumotlari chiqarilsin.
- SELECT TOP 3 * FROM mahsulot;
- 2 misol. Mahsulot jadvalining M_nomi va Miqdori ustunlarining birinchi 10 ta qiymati chiqarilsin.
- SELECT TOP 10 PERCENT, M_nomi, Miqdori FROM Mahsulot;
- 3 misol. Buyurtma va Xodimlar jadvalining ID va ISM ustunlaridan birinchi 5 ta qiymati chiqarilsin
- SELECT TOP 5, Buyurtma.BuyurtmaID, Xodimlar.Ism FROM Buyurtma RIGHT JOIN Xodimlar ON Buyurtma.XodimID=Xodimlar.XodimID ORDER BY Xodim.XodiID;
LIMIT sintaksisi (MySQL) - LIMIT sintaksisi (MySQL)
- SELECT ustunlar FROM Jadval nomlari WHERE shartlar LIMIT son;
- 1 misol. Mahsulot jadvalining birinchi 3 qator ma`lumotlari chiqarilsin.
- SELECT * FROM mahsulot LIMIT 3;
- 2 misol. Mahsulot jadvalining M_nomi va Miqdori ustunlarining birinchi 10 ta qiymati chiqarilsin.
- SELECT M_nomi, Miqdori FROM Mahsulot LIMIT 10;
- 3 misol. Buyurtma va Xodimlar jadvalining ID va ISM ustunlaridan birinchi 5 ta qiymati chiqarilsin
- SELECT Buyurtma.BuyurtmaID, Xodimlar.Ism FROM Buyurtma RIGHT JOIN Xodimlar ON Buyurtma.XodimID=Xodimlar.XodimID ORDER BY Xodim.XodiID LIMIT 10;
ROWNUM Sintaksisi (Oracle) - ROWNUM Sintaksisi (Oracle)
- SELECT Ustunlar FROM Jadval nomlari WHERE ROWNUM <= son;
- 1 misol. Mahsulot jadvalining birinchi 3 qator ma`lumotlari chiqarilsin.
- SELECT * FROM mahsulot ROWNUM <=3;
- 2 misol. Mahsulot jadvalining M_nomi va Miqdori ustunlarining birinchi 10 ta qiymati chiqarilsin.
- SELECT M_nomi, Miqdori FROM Mahsulot ROWNUM <= 10;
- 3 misol. Buyurtma va Xodimlar jadvalining ID va ISM ustunlaridan birinchi 5 ta qiymati chiqarilsin
- SELECT Buyurtma.BuyurtmaID, Xodimlar.Ism FROM Buyurtma RIGHT JOIN Xodimlar ON Buyurtma.XodimID=Xodimlar.XodimID ORDER BY Xodim.XodiID ROWNUM <= 10;
EXISTS - EXISTS standart so`zi pastki so`rovda biron bir qiymat mavjudligini tekshirish uchun foydalaniladi.
- Agar pastki so`rov bir yoki bir nechta yozuvlarni qaytarsa, EXISTS operatori yuqori so`rovdagi qiymatni qaytaradi.
- EXISTS sintaksisi
- SELECT Ustun nomlari FROM Jadval nomi
- WHERE EXISTS
- (SELECT Jadval nomi FROM Jadval nomi WHERE shartlar);
- Shu bilan bir qatorda ANY va ALL standart so`zlari ham mavjud
1 misol. Mahsulot narxi 2000 so`mdan yuqori bo`lgan mahdulotlarning turi ciqarilsin. - 1 misol. Mahsulot narxi 2000 so`mdan yuqori bo`lgan mahdulotlarning turi ciqarilsin.
- SELECT Mahsulot_turi FROM Mahsulot_turi
- WHERE EXISTS
- (SELECT [Mahsulot nomi] FROM Mahulotlar
- WHERE Mahsulotlar.Mahsulo_t_id = Mahsulot_turi.ID AND [Mahsulot narxi]>2000);
- 2 misol. Bitta mahsulot turi joylashgan rastalar ro`yxati chiqarilsin.
- SELECT [Rasta raqami] FROM Rastalar
- WHERE NOT EXISTS
- (SELECT count(*) FROM Mahulot_turi
- WHERE Rastalar.ID = Mahsulot_turi.Rasta_id
- Group by id
- HAVING count(Rasta_id)<2);
CASE - CASE shartlardan tekshiradi va birinchi shart bajarilganda qiymatni qaytaradi. Shunday qilib, shart to`g`ri bo`lsa keyingisiga o`tishni to`xtatadi va natijani qaytaradi. Agar biron bir shart to`g`ri bo`lmasa ELSEdagi qiymatni qaytaradi.
- Agar ELSE qismi bo`lmasa va shartlar haqiqiy bo`lmasa, u NULL qaytaradi.
- CASE WHEN 1-shart THEN 1-natija WHEN 2-shart THEN 2-natija
- … WHEN n-shart THEN n-natija ELSE natija (default) END;
1 misol. Xodimlar jadvalidan stajiga qarab izoh berilsin. - 1 misol. Xodimlar jadvalidan stajiga qarab izoh berilsin.
- SELECT ID, FISh,
- CASE
- WHEN Staji > 10 THEN “Tajribali xodim"
- WHEN Staji > 5 and Staji<10 THEN “Malakali xodim"
- ELSE “Yosh xodim"
- END AS Izoh
- FROM Xodim;
- 2 misol. Mahsulot jadvalidan mahsulot nomlari chiqarilsin. Ombordasi miqdori bo`yicha saralansin yoki mahsulot nomi bo`yicha saralansin
- SELECT [mahsulot nomi] FROM Mahsulotlar
- ORDER BY CASE
- WHEN [Ombordagi miqdori] is NULL THEN [Mahsulot nomi] ELSE [Ombordagi miqdori] END;
-
UPDATE Mahsulotlar SET Narxi = ( CASE - UPDATE Mahsulotlar SET Narxi = ( CASE
- WHEN Narxi<10000 THEN Narxi =1,1*Narxi
- WHEN Narxi>10000 THEN Narxi =1,05*Narxi
- ELSE Narxi=Narxi
- END);
- SELECT ID, Miqdori FROM Mahsulotlar
- WHERE [Mahsulot nomi]=
- (CASE
- WHEN id=1 THEN “olma”
- WHEN id=2 THEN “nok”
- END)
- ;
IF, IFNUL, ISNUL - IF funktsiyasi belgilangan shartni tekshiradi va true va false qiymatiga qarab qiymat qaytaradi.
- Sintaksis
- SELECT IF(shart, true qiymat, false qiymat) FROM jadval
- Misollar
- 1.SELECT IF(500<1000, 5, 10);
- 2.SELECT
- IF((Omborxonadagi_miqdori-Buyurtma_miqdori)>0, “Mavjud”, “Tugadi”) FROM Mahsulotlar;
IF, IFNUL, ISNUL - IFNULL funktsiyasi agar ifoda NULL bo'lsa, belgilangan qiymatni qaytaradi. Agar ifoda NULL bo'lmasa, bu funktsiya ifoda qaytaradi.
- Sintaksis
- SELECT IFNULL(ustun_nomi, const qiymat) FROM Jadval nomi
- Misollar
- 1. SELECT IFNULL(NULL, 500);
- 2. SELECT IFNULL(Otasining_ismi, “XXX”) FROM Xodimlar;
IF, IFNUL, ISNUL - ISNULL funktsiyasi NULL yoki NOT NULLligiga qarab 1 yoki 0 qaytaradi. Agar ifoda NULL bo`lsa, bu funktsiya 1 ni qaytaradi, aks holda 0 ni qaytaradi.
- Sintaksis
- SELECT ISNULL(ustun nomi) FROM Jadval nomi
- Misollar
- 1. SELECT IFNULL (NULL);
- 2. SELECT IFNULL(Otasining_ismi) FROM Xodimlar;
10000>10>
Do'stlaringiz bilan baham: |