ایس کیو ایل میں دو میزوں کا موازنہ کریں۔

Ays Kyw Ayl My Dw Myzw Ka Mwazn Kry



ایس کیو ایل میں ڈیٹا کا موازنہ ایک عام کام ہے جو ہر ڈیٹا بیس ڈویلپر کو کبھی کبھار آئے گا۔ خوش قسمتی سے، ڈیٹا کا موازنہ مختلف فارمیٹس میں آتا ہے جیسے لفظی موازنہ، بولین موازنہ وغیرہ۔

تاہم، حقیقی دنیا کے اعداد و شمار کے موازنہ کے منظرناموں میں سے ایک جس کا آپ کو سامنا ہو سکتا ہے وہ دو جدولوں کے درمیان موازنہ ہے۔ یہ ڈیٹا کی توثیق، غلطی کی شناخت، نقل، یا ڈیٹا کی سالمیت کو یقینی بنانے جیسے کاموں میں ایک اہم کردار ادا کرتا ہے۔







اس ٹیوٹوریل میں، ہم ان تمام مختلف طریقوں اور تکنیکوں کو دریافت کریں گے جنہیں ہم SQL میں دو ڈیٹا بیس ٹیبلز کا موازنہ کرنے کے لیے استعمال کر سکتے ہیں۔



نمونہ ڈیٹا سیٹ اپ

اس سے پہلے کہ ہم ہر ایک طریقہ کو تلاش کریں، آئیے مظاہرے کے مقاصد کے لیے ایک بنیادی ڈیٹا سیٹ اپ ترتیب دیں۔



ہمارے پاس نمونہ ڈیٹا کے ساتھ دو میزیں ہیں جیسا کہ مثال میں دکھایا گیا ہے۔





نمونہ جدول 1:

مندرجہ ذیل میں پہلا ٹیبل بنانے اور ٹیبل میں نمونہ ڈیٹا داخل کرنے کے سوالات شامل ہیں:



ٹیبل کا نمونہ بنائیں_tb1 (
ملازم_آئی ڈی بنیادی کلیدی آٹو_INCREMENT،
پہلا نام VARCHAR ( پچاس ) ،
آخری_نام VARCHAR ( پچاس ) ،
ڈیپارٹمنٹ VARCHAR ( پچاس ) ،
تنخواہ ڈیسیمل ( 10 ، 2 )
) ;

نمونہ_ٹی بی 1 میں داخل کریں۔ ( پہلا_نام، آخری_نام، محکمہ، تنخواہ )
قدریں
( 'پینیلوپ' ، 'پیچھا' ، 'HR' ، 55000.00 ) ،
( 'میتھیو' ، 'پنجرہ' ، 'یہ' ، 60000.00 ) ،
( 'جینیفر' ، 'ڈیوس' ، 'مالیات' ، 50000.00 ) ،
( 'کرسٹن' ، 'Fawcet' ، 'یہ' ، 62000.00 ) ،
( 'کیمرون' ، 'مہنگا' ، 'مالیات' ، 48000.00 ) ;

اس سے مختلف معلومات جیسے کہ نام، محکمہ اور تنخواہ کے ساتھ 'sample_tb1' نامی ایک نئی جدول بننا چاہیے۔

نتیجہ کی میز مندرجہ ذیل ہے:

نمونہ جدول 2:

آئیے آگے بڑھیں اور دو نمونے کی میزیں بنائیں۔ فرض کریں کہ یہ پہلے ٹیبل کی بیک اپ کاپی ہے۔ ہم ٹیبل بنا سکتے ہیں اور نمونہ ڈیٹا داخل کر سکتے ہیں جیسا کہ درج ذیل میں دکھایا گیا ہے۔

ٹیبل کا نمونہ بنائیں_tb2 (
ملازم_آئی ڈی بنیادی کلیدی آٹو_INCREMENT،
پہلا نام VARCHAR ( پچاس ) ،
آخری_نام VARCHAR ( پچاس ) ،
ڈیپارٹمنٹ VARCHAR ( پچاس ) ،
تنخواہ ڈیسیمل ( 10 ، 2 )
) ;
نمونہ_tb2 میں داخل کریں۔ ( پہلا_نام، آخری_نام، محکمہ، تنخواہ )
قدریں
( 'پینیلوپ' ، 'پیچھا' ، 'HR' ، 55000.00 ) ،
( 'میتھیو' ، 'پنجرہ' ، 'یہ' ، 60000.00 ) ،
( 'جینیفر' ، 'ڈیوس' ، 'مالیات' ، 50000.00 ) ،
( 'کرسٹن' ، 'Fawcet' ، 'یہ' ، 62000.00 ) ،
( 'آڈری' ، 'ڈین' ، 'مالیات' ، 48000.00 ) ;

یہ ایک ٹیبل بنائے اور نمونہ ڈیٹا داخل کرے جیسا کہ پچھلی استفسار میں بیان کیا گیا ہے۔ نتیجہ کی میز مندرجہ ذیل ہے:

سوائے استعمال کرتے ہوئے دو میزوں کا موازنہ کریں۔

ایس کیو ایل میں دو ٹیبلز کا موازنہ کرنے کا سب سے عام طریقہ EXCEPT آپریٹر استعمال کرنا ہے۔ اس سے وہ قطاریں ملتی ہیں جو پہلے ٹیبل میں موجود ہیں لیکن دوسری ٹیبل میں نہیں۔

ہم اسے نمونے کی میزوں کے ساتھ موازنہ کرنے کے لیے اس طرح استعمال کر سکتے ہیں:

منتخب کریں۔ *
FROM sample_tb1
سوائے
منتخب کریں۔ *
FROM sample_tb2;

اس مثال میں، EXCEPT آپریٹر پہلی استفسار (sample_tb1) سے تمام الگ الگ قطاریں واپس کرتا ہے جو دوسری استفسار (sample_tb2) میں ظاہر نہیں ہوتی ہیں۔

یونین کا استعمال کرتے ہوئے دو میزوں کا موازنہ کریں۔

دوسرا طریقہ جسے ہم استعمال کر سکتے ہیں وہ ہے GROUP BY شق کے ساتھ مل کر UNION آپریٹر۔ اس سے ڈپلیکیٹ ریکارڈز کو محفوظ رکھتے ہوئے ان ریکارڈوں کی شناخت کرنے میں مدد ملتی ہے جو ایک ٹیبل میں موجود ہیں، دوسرے میں نہیں۔

اس سوال کو لے لو جس کا مظاہرہ درج ذیل میں کیا گیا ہے:

منتخب کریں۔
ملازم کی ID،
پہلا نام،
آخری_نام،
شعبہ،
تنخواہ
سے
(
منتخب کریں۔
ملازم کی ID،
پہلا نام،
آخری_نام،
شعبہ،
تنخواہ
سے
نمونہ_ٹی بی 1
تمام یونین
منتخب کریں۔
ملازم کی ID،
پہلا نام،
آخری_نام،
شعبہ،
تنخواہ
سے
نمونہ_ٹی بی 2
) AS combined_data
گروپ بذریعہ
ملازم کی ID،
پہلا نام،
آخری_نام،
شعبہ،
تنخواہ
ہونا
شمار ( * ) = 1 ;

دی گئی مثال میں، ہم ڈپلیکیٹس کو رکھتے ہوئے دونوں جدولوں سے ڈیٹا کو یکجا کرنے کے لیے UNION ALL آپریٹر کا استعمال کرتے ہیں۔

اس کے بعد ہم تمام کالموں کے ذریعے مشترکہ ڈیٹا کو گروپ کرنے کے لیے GROUP BY شق کا استعمال کرتے ہیں۔ آخر میں، ہم اس بات کو یقینی بنانے کے لیے HAVING شق کا استعمال کرتے ہیں کہ صرف ایک کی گنتی والے ریکارڈز (کوئی نقل نہیں) منتخب کیے گئے ہیں۔

آؤٹ پٹ:

یہ طریقہ تھوڑا زیادہ پیچیدہ ہے لیکن یہ بہت بہتر بصیرت فراہم کرتا ہے کیونکہ آپ کو اصل ڈیٹا ملتا ہے جو دونوں ٹیبلز سے غائب ہے۔

INNER JOIN کا استعمال کرتے ہوئے دو میزوں کا موازنہ کریں۔

اگر آپ سوچ رہے ہیں، کیوں نہ ایک اندرونی شمولیت کا استعمال کریں؟ آپ پوائنٹ پر ہوں گے۔ ہم میزوں کا موازنہ کرنے اور عام ریکارڈ تلاش کرنے کے لیے اندرونی شمولیت کا استعمال کر سکتے ہیں۔

مثال کے طور پر درج ذیل استفسار کو لیں:

منتخب کریں۔
نمونہ_ٹی بی 1۔ *
سے
نمونہ_ٹی بی 1
اندرونی شمولیت کا نمونہ_tb2 آن
نمونہ_tb1.employee_id = نمونہ_tb2.employee_id؛

اس مثال میں، ہم ایک دیے گئے کالم کی بنیاد پر دونوں ٹیبلز میں موجود ریکارڈز کو تلاش کرنے کے لیے ایک SQL INNER JOIN استعمال کرتے ہیں۔ اگرچہ یہ کام کرتا ہے، یہ بعض اوقات گمراہ کن بھی ہو سکتا ہے کیونکہ آپ کو یقین نہیں ہے کہ ڈیٹا واقعی غائب ہے یا دونوں ٹیبلز میں موجود ہے یا صرف ایک میں۔

نتیجہ

اس ٹیوٹوریل میں، ہم نے ان تمام طریقوں اور تکنیکوں کے بارے میں سیکھا جنہیں ہم SQL میں دو جدولوں کا موازنہ کرنے کے لیے استعمال کر سکتے ہیں۔