Skip to main content

الجزء ال16: الأتحاد والأتحاد العام Union & Union All

الجزء ال16: الأتحاد والأتحاد العام
Union & Union All

تستخدم هذه الفقرات (Union & Union All) لأسترجاع عدة جداول في مجموعة نتيجة واحدة اي جدول واحد, في هذا الجزء سنتعرف على الفرق بينهما وبينهما وبين الربط join .
شروط استخدام الUnion & Union All :

·       ان تكون جميع الحقول نفس نوع البيانات (DATA TYPE) وفي نفس الترتيب.
الفرق بين الUnion & Union All :
·       من حيث سرعة تنفيذ جملة الأستعلام Query , نستطيع القول ان الUnion All اسرع في التنفيذ من الUnion والسبب في ذلك ان الUnion  ينفذ عملية الترتيب Sorting وبأستخدام distinct  قبل استرجاع البيانات من عدة جداول, بينما الUnion All يسترجع البيانات مباشرة بعد دمج عدة جداول مع بعضها.
·       الUnion يسترجع البيانات من عدة جداول في جدول واحد ويحذف التكرار بتنفيذ عملية الترتيب وبأستخدام distinct, بينما في الUnion All يسترجع كل البيانات المتشابهه والغير متشابهه في جدول واحد.

ملاحظة: استخدام الOrder by مع الUnion & Union All يجب ان يكون في اخر جملة الأستعلام.
الفرق بين الUnion & Union All مع الJoin:
·       طبعاً في الUnion & Union All انت مقيد بشرط ان تكون القيم المسترجعة من جدولين او اكثر من نفس نوع البيانات التي ستكون في جدول واحد,بينما في الJoin يوجد علاقة منطقية تربط جدولين او اكثر بأستخدام مفهوم الPK-FK, وتستطيع استرجاع البيانات من اي حقل من الجدولين او اكثر وباي ترتيب ولا يوجد قيود ان تكون البيانات مرتبة حسب نوع البيانات!

لتوضيح ماسبق ذكره لنأخذ المثال التالي: ثلاث جداول للموظفين من امريكا, بريطانيا, العراق في كل جدول يحتوي على ID اي المعرف لكل موظف, واسم الموظف Name والبريد الألكتروني Email كالأتي:
tblEmp_America
ID
Name
Email
1
John
john@private.com
2
Noah
Noah@private.com
3
Simon
Simon@private.com

 tblEmp_Britain
ID
Name
Email
1
Sarah
Sarah@wd.com
2
Jamal
jamal@wd.com
3
Larry
Larry@wd.com


tblEmp_Iraq
ID
Name
Email
1
صفاء
safaa@it.com
2
هيثم
hytheem@it.com
3
مهند
mohanned@it.com
4
همام
humam@it.com

لأحظ ان الثلاث جداول لهم نفس ترتيب الحقول ونفس نوع بيانات الحقل!!! وبهذا نستطيع ان نستخدم الUnion & Union All  معهم.





في البدء لنقم بأنشاء الجداول الثلاث بأستخدام جملة الأستعلام التالية:
USE [test]
Go
CREATE TABLE tblEmp_America
(
[ID] INT NOT NULL IDENTITY(1,1),
[Name] NVARCHAR(20) NOT NULL,
[Email] NVARCHAR(30) NOT NULL
)
CREATE TABLE tblEmp_Britain
(
[ID] INT NOT NULL IDENTITY(1,1),
[Name] NVARCHAR(20) NOT NULL,
[Email] NVARCHAR(30) NOT NULL
)
CREATE TABLE tblEmp_Iraq
(
[ID] INT NOT NULL IDENTITY(1,1),
[Name] NVARCHAR(20) NOT NULL,
[Email] NVARCHAR(30) NOT NULL
)


 بعد ذلك قم بملا الجداول بالبيانات في الأمثلة اعلاه كالأتي:

لاحظ في الصورة اعلاه للبيانات عندما اردنا استرجاع البيانات من الثلاث جداول, النتيجة هي ثلاث مجموعة نتائجResult Sets ؟! ودرس اليوم سيكون عن كيفية استرجاع الثلاث جداول في نتيجة واحدة 1-Result Set :
بأستخدام الUnion :

لاحظ النتيجة هي جدول واحد يحمل قيم الجداول الثلاث, وكذلك مرتبة!
ملاحظة: هنا في كل الجداول لا يوجد تكرار للبيانات اذا كان هناك تكرار في ID,Name,Email في سجلين او اكثر فأن هذا التكرار سيهمل اي لم يتم اظهاره!


بينما اذا استخدمنا الUnion All: النتيجة في جدول واحد ايضاً ولكن تكون غير مرتبة!!! وكذلك اذا كان هنالك تكرار للبيانات فأن هذا التكرار سيظهر ولا يتم اهماله:

تستطيع استخدام الOrder by عند نهاية جملة الأستعلام فقط:


ملاحظة اخير: السرعة من حيث التنفيذ بين الUnion & Union All:
عند استخدام ال Union All: لا يوجد ترتيب للبيانات فقط اتحاد الجداول الثلاث واسترجاعها:


وعند استخدام الUnion:  عملية الSort تأخذ 52%  من سرعة تنفيذ جملة الأستعلام:



Comments

Popular posts from this blog

PART #2: Registration and Login System Tutorial Using PHP and MYSQL

PART #2: Registration and Login System Tutorial Using PHP and MYSQL Registration and login system using PHP and MySQL database, in this part you will do the following: 1- Creating the registration page. 2- Validating the registration form. 3- Sending the activation link on successful registration. note: you can find the mailserver tool here: [MailServerTool] Good luck. PHP,Mysql,Programming,web development,How to,Technology,web programming,web project ideas,safaa al-hayali,saf3al2a,Registration and login,Registration and login in php,php and mysql login system,registration system using php and mysql,login and register php,login and register php with database,database,php tutorial,learn php,tutorial

How To Play .srt Subtitles File in Windows Media Player

How To Play .srt Subtitles File in Windows Media Player links: https://sourceforge.net/projects/wmpsub/ wmp,.srt Subtitles File in Windows Media Player,How To Play .srt Subtitles File in Windows Media Player,How To,Safaa Al-Hayali,saf3al2a,srt subtitle in WMP,Windows,Windows Media Player,media,.ass,local subtitles

Virtual Box : How to Increase Disk Size - Windows

How to increase disk size or disk storage in oracle virtual box the command you have to use: vboxmanage.exe modifymedium "[YourPathToVdiFileOfYourVirtualMachine]" --resize [NUMBER] virtual,box,vbox,oracle,partition,size,disk,increase,resize,windows,10,microsoft,vdi,vboxmanage,configuration,Safaa AL-Hayali,saf3al2a,Oracle,VirtualBox,How to,windows 10