MySQL استفسار ڈپلیکیٹ ڈیٹا کو کیسے ہینڈل کرتا ہے؟ڈپلیکیٹ ڈیٹا اسٹیٹمنٹ کو ہٹانے کے لیے فلٹر کریں۔

MySQLسوالات ڈپلیکیٹ ڈیٹا کو کیسے ہینڈل کرتے ہیں؟ڈپلیکیٹ ڈیٹا اسٹیٹمنٹ کو ہٹانے کے لیے فلٹر کریں۔

MySQL ڈپلیکیٹ ڈیٹا کو ہینڈل کرنا

کچھ MySQL ڈیٹا ٹیبلز میں ڈپلیکیٹ ریکارڈز ہو سکتے ہیں۔ کچھ معاملات میں، ہم ڈپلیکیٹ ڈیٹا کی موجودگی کی اجازت دیتے ہیں، لیکن بعض اوقات ہمیں ان ڈپلیکیٹ ڈیٹا کو حذف کرنے کی بھی ضرورت ہوتی ہے۔

اس باب میں، ہم یہ بتائیں گے کہ ڈیٹا ٹیبل میں ڈپلیکیٹ ڈیٹا کو کیسے روکا جائے اور ڈیٹا ٹیبل میں ڈپلیکیٹ ڈیٹا کو کیسے حذف کیا جائے۔


ٹیبل میں ڈپلیکیٹ ڈیٹا کو روکیں۔

آپ MySQL ڈیٹا ٹیبل میں مخصوص فیلڈ کو بطور سیٹ کر سکتے ہیں۔ بنیادی چابی یا UNIQUE (منفرد) اعداد و شمار کی انفرادیت کو یقینی بنانے کے لیے انڈیکس۔

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

CREATE TABLE person_tbl
(
    first_name CHAR(20),
    last_name CHAR(20),
    sex CHAR(10)
);

اگر آپ ٹیبل میں فیلڈز first_name اور last_name سیٹ کرنا چاہتے ہیں، تو ڈیٹا کو دہرایا نہیں جا سکتا، آپ ڈیٹا کی انفرادیت کو سیٹ کرنے کے لیے ڈبل پرائمری کی موڈ سیٹ کر سکتے ہیں۔ اگر آپ ڈبل پرائمری کی سیٹ کرتے ہیں، تو اس کلید کی ڈیفالٹ ویلیو NULL نہیں ہو سکتا، لیکن NOT NULL پر سیٹ کیا جا سکتا ہے۔حسب ذیل:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10),
   PRIMARY KEY (last_name, first_name)
);

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

INSERT IGNORE INTO اور INSERT INTO میں فرق یہ ہے کہ INSERT IGNORE ڈیٹا بیس میں پہلے سے موجود ڈیٹا کو نظر انداز کرتا ہے۔ اگر ڈیٹا بیس میں کوئی ڈیٹا نہیں ہے تو یہ نیا ڈیٹا داخل کرے گا، اور اگر ڈیٹا ہے تو اس ڈیٹا کو چھوڑ دے گا۔اس طرح ڈیٹا بیس میں موجود ڈیٹا کو محفوظ کیا جا سکتا ہے، اور خلا میں ڈیٹا داخل کرنے کا مقصد حاصل کیا جا سکتا ہے۔

مندرجہ ذیل مثال میں INSERT IGNORE INTO کا استعمال کیا گیا ہے، جو بغیر کسی غلطی کے عمل میں آتا ہے اور ڈیٹا ٹیبل میں ڈپلیکیٹ ڈیٹا داخل نہیں کرتا ہے۔

mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 1 row affected (0.00 sec)
mysql> INSERT IGNORE INTO person_tbl (last_name, first_name)
    -> VALUES( 'Jay', 'Thomas');
Query OK, 0 rows affected (0.00 sec)

INSERT IGNORE INTO ڈیٹا داخل کرتے وقت، ریکارڈ کی انفرادیت طے ہونے کے بعد، اگر ڈپلیکیٹ ڈیٹا ڈالا جاتا ہے، تو کوئی غلطی واپس نہیں کی جائے گی، بلکہ صرف ایک وارننگ واپس کی جائے گی۔اور REPLACE INTO اگر کوئی بنیادی یا منفرد ریکارڈ ہے تو پہلے اسے حذف کریں۔نیا ریکارڈ داخل کریں۔

اپنے ڈیٹا کی انفرادیت قائم کرنے کا دوسرا طریقہ یہ ہے کہ اس طرح ایک منفرد انڈیکس شامل کریں:

CREATE TABLE person_tbl
(
   first_name CHAR(20) NOT NULL,
   last_name CHAR(20) NOT NULL,
   sex CHAR(10)
   UNIQUE (last_name, first_name)
);

اعداد و شمار ڈیٹا کی نقل کرتے ہیں۔

ذیل میں ہم جدول میں first_name اور last_name کے ڈپلیکیٹ ریکارڈز کی تعداد شمار کریں گے:

mysql> SELECT COUNT(*) as repetitions, last_name, first_name
    -> FROM person_tbl
    -> GROUP BY last_name, first_name
    -> HAVING repetitions > 1;

مذکورہ استفسار کا بیان person_tbl ٹیبل میں ڈپلیکیٹ ریکارڈز کی تعداد لوٹائے گا۔عام طور پر، ڈپلیکیٹ اقدار کے لیے استفسار کرنے کے لیے، درج ذیل کام کریں:

  • تعین کریں کہ کون سا کالم ممکنہ ڈپلیکیٹ اقدار پر مشتمل ہے۔
  • ان کالموں کی فہرست بنانے کے لیے کالم سلیکٹ لسٹ میں COUNT(*) کا استعمال کریں۔
  • GROUP BY شق میں درج کالم۔
  • HAVING شق 1 سے زیادہ تکرار کی تعداد مقرر کرتی ہے۔

ڈپلیکیٹ ڈیٹا کو فلٹر کریں۔

اگر آپ کو منفرد ڈیٹا پڑھنے کی ضرورت ہے، تو آپ ڈپلیکیٹ ڈیٹا کو فلٹر کرنے کے لیے SELECT اسٹیٹمنٹ میں DISTINCT کلیدی لفظ استعمال کر سکتے ہیں۔

mysql> SELECT DISTINCT last_name, first_name
    -> FROM person_tbl;

آپ ٹیبل سے منفرد ڈیٹا پڑھنے کے لیے GROUP BY بھی استعمال کر سکتے ہیں:

mysql> SELECT last_name, first_name
    -> FROM person_tbl
    -> GROUP BY (last_name, first_name);

ڈپلیکیٹ ڈیٹا

اگر آپ ڈیٹا ٹیبل میں ڈپلیکیٹ ڈیٹا کو حذف کرنا چاہتے ہیں، تو آپ درج ذیل ایس کیو ایل اسٹیٹمنٹ استعمال کر سکتے ہیں۔

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex
    ->                  FROM person_tbl;
    ->                  GROUP BY (last_name, first_name, sex);
mysql> DROP TABLE person_tbl;
mysql> ALTER TABLE tmp RENAME TO person_tbl;

بلاشبہ، آپ ٹیبل میں ڈپلیکیٹ ریکارڈز کو حذف کرنے کے لیے ڈیٹا ٹیبل میں INDEX (انڈیکس) اور PRIMAY KEY (بنیادی کلید) بھی شامل کر سکتے ہیں۔مندرجہ ذیل طریقے:

mysql> ALTER IGNORE TABLE person_tbl
    -> ADD PRIMARY KEY (last_name, first_name);

ہوپ چن ویلیانگ بلاگ ( https://www.chenweiliang.com/ ) کا اشتراک کیا گیا "مائی ایس کیو ایل ڈپلیکیٹ ڈیٹا کو کیسے استفسار اور ہینڈل کرتا ہے؟فلٹرنگ اور ڈپلیکیشن اسٹیٹمنٹس" آپ کی مدد کریں گے۔

اس مضمون کا لنک شیئر کرنے میں خوش آمدید:https://www.chenweiliang.com/cwl-499.html

تازہ ترین اپ ڈیٹس حاصل کرنے کے لیے چن ویلیانگ کے بلاگ کے ٹیلیگرام چینل میں خوش آمدید!

🔔 چینل ٹاپ ڈائرکٹری میں قیمتی "ChatGPT Content Marketing AI Tool Usage Guide" حاصل کرنے والے پہلے فرد بنیں! 🌟
📚 یہ گائیڈ بہت بڑی قیمت پر مشتمل ہے، 🌟یہ ایک نادر موقع ہے، اس سے محروم نہ ہوں! ⏰⌛💨
پسند آئے تو شیئر اور لائک کریں!
آپ کا اشتراک اور پسندیدگی ہماری مسلسل حوصلہ افزائی ہے!

 

评论 评论

آپ کا ای میل ایڈریس شائع نہیں کیا جائے گا۔ ضروری شعبوں کا استعمال کیا جاتا ہے * لیبل لگائیں

اوپر سکرول کریں