Бизга малумки хозирги вақтда бббт (Берилганлар базасини бошқариш тизимлари) жуда юқори суръатда ривожланмоқда


Download 347 Kb.
bet2/2
Sana28.12.2022
Hajmi347 Kb.
#1018603
1   2
Bog'liq
MB 7-amaliy ish

UNION ALL sintaksisi:


Operator UNION bo'yicha faqat alohida qiymatlarni tanlaydi. Ikki nusxadagi qiymatlarga ruxsat berish uchun foydalaning UNION ALL:
SELECT column_name(s) FROM table1
UNION ALL
SELECT column_name(s) FROM table2;
Eslatma: Natijalar to'plamidagi ustun nomlari odatda birinchi SELECT bayonotdagi ustun nomlariga teng.
Quyida "Mijozlar" jadvalidan tanlov mavjud:

Customer ID

CustomerName

Contact Name

Address

City

Postal Code

Country

1



Alfreds Futterkiste

Maria Anders

Obere Str. 57

Berlin

12209

Germany

2

Ana Trujillo Emparedados y helados

Ana Trujillo

Avda. de la Constitución 2222

México D.F.

05021

Mexico

3

Antonio Moreno Taquería

Antonio Moreno

Mataderos 2312

México D.F.

05023

Mexico

Va "Yetkazib beruvchilar" jadvalidan tanlov:

Supp lierID

Supplier Name

Contact Name

Address

City

Postal Code

Country

1

Exotic Liquid

Charlotte Cooper

49 Gilbert St.

London

EC1 4SD

UK

2

New Orleans Cajun Delights

Shelley Burke

P.O. Box 78934

New Orleans

70117

USA

3

Grandma Kelly's Homestead

Regina Murphy

707 Oxford Rd.

Ann Arbor

48104

USA

SQL UNION ga misol:


Quyidagi SQL bayonoti "Mijozlar" va "Yetkazib beruvchilar" jadvalidagi shaharlarni (faqat alohida qiymatlarni) qaytaradi:

Misol:


SELECT City FROM Customers
UNION
SELECT City FROM Suppliers
ORDER BY City;


Eslatma: Agar ba'zi mijozlar yoki yetkazib beruvchilar bir xil shaharga ega bo'lsa, har bir shahar faqat bir marta ro'yxatga olinadi, chunki UNIONfaqat alohida qiymatlarni tanlaydi. UNION ALLIkki nusxadagi qiymatlarni tanlash uchun ham foydalaning !

SQL UNION ALL misol:


Quyidagi SQL bayonoti "Mijozlar" va "Yetkazib beruvchilar" jadvalidagi shaharlarni (shuningdek takroriy qiymatlarni) qaytaradi:

Misol:


SELECT City FROM Customers
UNION ALL
SELECT City FROM Suppliers
ORDER BY City;


SQL UNION WHERE bilan ishlatish:


Quyidagi SQL bayonoti "Mijozlar" va "Yetkazib beruvchilar" jadvalidan Germaniya shaharlarini (faqat alohida qiymatlarni) qaytaradi:

Misol:


SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;


SQL UNION ALL WHERE bilan ishlatish.


Quyidagi SQL bayonoti "Mijozlar" va "Yetkazib beruvchilar" jadvalidan Germaniya shaharlarini (shuningdek takroriy qiymatlar) qaytaradi:

Misol:


SELECT City, Country FROM Customers
WHERE Country='Germany'
UNION ALL
SELECT City, Country FROM Suppliers
WHERE Country='Germany'
ORDER BY City;


SQL INTERSECT operatori 2 yoki undan ortiq SELECT operatori natijalarini qaytarish uchun ishlatiladi. Biroq, u faqat barcha so'rovlar yoki ma'lumotlar to'plamlari tomonidan tanlangan qatorlarni qaytaradi. Agar bitta so'rovda yozuv mavjud bo'lsa, ikkinchisida bo'lmasa, u INTERSECT natijalaridan olib tashlanadi.

Kesishuv so'rovi



Izoh: INTERSECT so'rovi ko'k rangdagi maydondagi yozuvlarni qaytaradi. Bular Dataset1 va Dataset2 da mavjud yozuvlar.
SQL INTERSECT ichidagi har bir SQL bayonoti o'xshash ma'lumotlar turlariga ega bo'lgan natijalar to'plamida bir xil miqdordagi maydonlarga ega bo'lishi kerak.

Sintaksis


SQL da INTERSECT operatori sintaksisi:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
INTERSECT
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
Yozuvlarni olmoqchi bo'lgan jadvallar. FROM bandida kamida bitta jadval bo'lishi kerak.
WHERE shartlari
Ixtiyoriy. Bular yozuvlarni tanlash uchun bajarilishi kerak bo'lgan shartlardir.

Eslatma


  • Ikkala SELECT iborasida bir xil miqdordagi iboralar bo'lishi kerak.

  • SELECT iboralarida mos keladigan iboralar bir xil maʼlumotlar turiga ega boʻlishi kerak. 

Masalan: ifoda1 birinchi va ikkinchi SELECT iboralarida bir xil ma'lumotlar turi bo'lishi kerak .

Misol. Quyida bir xil ma'lumotlar turiga ega bitta maydonga ega SQL INTERSECT operatori misoli keltirilgan:


SELECT supplier_id
FROM suppliers
INTERSECT
SELECT supplier_id
FROM orders;
Ushbu SQL INTERSECT misolida, yetkazib beruvchilar va buyurtmalar jadvalida yetkazib beruvchi_identifikatori paydo bo'lsa , u natijalar to'plamida paydo bo'ladi.
Keling, INTERSECT so'roviga WHERE shartlarini qo'shish orqali misolimizni yanada murakkablashtiramiz.
SELECT supplier_id
FROM suppliers
WHERE supplier_id > 78
INTERSECT
SELECT supplier_id
FROM orders
WHERE quantity <> 0;
Ushbu misolda ma'lumotlar to'plamining har biriga WHERE bandlari qo'shilgan. Birinchi ma'lumotlar to'plami filtrlangan bo'lib, faqat yetkazib beruvchilar jadvalidagi yetkazib beruvchilar_id raqami 78 dan katta bo'lgan yozuvlar qaytariladi. Ikkinchi ma'lumotlar to'plami filtrlangan, shuning uchun buyurtmalar jadvalidagi faqat miqdor 0 ga teng bo'lmagan yozuvlar qaytariladi.
SQL MINUS operatori birinchi SELECT bayonotidagi ikkinchi SELECT operatori qaytarmagan barcha qatorlarni qaytarish uchun ishlatiladi. Har bir SELECT bayonoti ma'lumotlar to'plamini belgilaydi. MINUS operatori birinchi ma'lumotlar to'plamidagi barcha yozuvlarni oladi va keyin natijalardan ikkinchi ma'lumotlar to'plamidagi barcha yozuvlarni olib tashlaydi.

Minus so'rov:



Izoh: MINUS so'rovi ko'k rangdagi maydondagi yozuvlarni qaytaradi. Bular Dataset2 da emas, Dataset1 da mavjud yozuvlar.
MINUS so'rovidagi har bir SELECT iborasi o'xshash ma'lumotlar turlariga ega natijalar to'plamida bir xil miqdordagi maydonlarga ega bo'lishi kerak.

Sintaksisi:


SQL tilidagi MINUS operatori sintaksisi:
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions]
MINUS
SELECT expression1, expression2, ... expression_n
FROM tables
[WHERE conditions];
WHERE shartlari
Ixtiyoriy. Bular yozuvlarni tanlash uchun bajarilishi kerak bo'lgan shartlardir.

Eslatma


  • Ikkala SELECT iborasida bir xil miqdordagi iboralar bo'lishi kerak.

  • SELECT iboralarida mos keladigan iboralar bir xil maʼlumotlar turiga ega boʻlishi kerak. Masalan: ifoda1 birinchi va ikkinchi SELECT iboralarida bir xil ma'lumotlar turi bo'lishi kerak .

Misol. Quyida bir xil ma'lumotlar turiga ega bitta maydonga ega SQL MINUS operatori misoli keltirilgan:


SELECT supplier_id
FROM suppliers
MINUS
SELECT supplier_id
FROM orders;
Ushbu SQL MINUS misoli buyurtmalar jadvalida emas, balki yetkazib beruvchilar jadvalidagi barcha yetkazib beruvchi_id qiymatlarini qaytaradi. Buning ma'nosi shundaki, agar yetkazib beruvchilar jadvalida yetkazib beruvchi_id qiymati va buyurtmalar jadvalida ham mavjud bo'lsa, yetkazib beruvchi_id qiymati ushbu natijalar to'plamida ko'rinmaydi.
Download 347 Kb.

Do'stlaringiz bilan baham:
1   2




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