SQL REGEXP_REPLACE

Sql Regexp Replace



البيانات النصية أو السلاسل، كما يسميها المطورون، هي لبنة بناء رئيسية لأي برنامج وظيفي. هذا لا يختلف عندما يتعلق الأمر بتخزين البيانات. تحتوي جميع قواعد البيانات تقريبًا على شكل من أشكال المعلومات النصية مثل الأسماء والسجلات وما إلى ذلك.

على هذا النحو، تعد معالجة السلسلة مهمة شائعة تتضمن معالجة قيم السلسلة وتحويلها إلى تنسيق معين.

إحدى أقوى الوظائف في SQL التي تتعامل مع عمليات السلسلة هي الدالة REGEXP_REPLACE(). تتيح لنا هذه الوظيفة إجراء البحث والاستبدال المعتمد على التعبير العادي. إذا كنت معتادًا على التعبير العادي، فأنت تعرف مدى قوة هذه الوظيفة.







في هذا البرنامج التعليمي، سوف نتعلم كيف يمكننا استخدام هذه الوظيفة للبحث واستبدال السلاسل في قاعدة بيانات SQL.



SQL REGEXP_REPLACE

إن SQL REGEXP_REPLACE() هي وظيفة تسمح لنا بإجراء مطابقة واستبدال النمط القائم على التعبير العادي ضمن سلسلة معينة.



التعبير العادي، أو regex، هو نمط محدد وعناصر نائبة تسمح لنا بمطابقة ومعالجة السلاسل أو السلاسل الفرعية التي تتبع نمطًا معينًا.





من الجيد أن تضع في اعتبارك أن كل محرك قاعدة بيانات قد ينفذ بشكل طفيف بناء جملة الوظيفة ووظيفتها.

ولكن يمكننا أن نعبر عن تركيبه على النحو التالي:



REGEXP_REPLACE(input_string، نمط، استبدال [، أعلام])

يتم التعبير عن معلمات الوظيفة فيما يلي:

  1. input_string - يحدد هذا السلسلة التي نرغب في البحث والاستبدال فيها.
  2. النمط - يحدد هذا نمط التعبير العادي الذي نريد مطابقته داخل سلسلة الإدخال.
  3. الاستبدال - يحدد هذا السلسلة التي ستحل محل السلاسل الفرعية المطابقة.
  4. الأعلام – هذه مجموعة من الأعلام الاختيارية التي يمكن أن تساعد في تعديل وظيفة التعبير العادي. على سبيل المثال، يمكننا تمكين البحث الشامل، والمطابقة غير الحساسة لحالة الأحرف، وما إلى ذلك. وتختلف هذه الميزة وفقًا لمحرك قاعدة البيانات.

أمثلة:

لفهم كيفية عمل هذه الوظيفة بشكل أفضل، دعونا نلقي نظرة على بعض الأمثلة حول كيفية استخدامها.

مثال 1: الاستخدام الأساسي

لنفترض أن لدينا جدول يحتوي على معلومات الموظف كما هو موضح في المثال التالي:

خذ بعين الاعتبار حالة نريد فيها استبدال حدوث سلسلة 'Charlie' بـ 'Matthew'. يمكننا استخدام الاستعلام على النحو التالي:

يختار

REGEXP_REPLACE(first_name, 'Charlie', 'Matthew') AS new_name

من

موظفين؛

يوضح المثال الموضح عملية بحث واستبدال أساسية للعثور على سلسلة 'Charlie' من عمود 'first_name' واستبدالها بـ 'Matthew'.

انتاج:

المثال 2: استبدال غير حساس لحالة الأحرف

في بعض الحالات، قد ترغب في إجراء بحث غير حساس لحالة الأحرف. وهذا يعني أن الوظيفة ستنظر فقط إلى محتوى السلسلة وليس إلى الحالة الفعلية للأحرف الأبجدية الرقمية.

في مثل هذه الحالة، نستخدم 'i' كعلامة دالة على النحو التالي:

SELECT REGEXP_REPLACE(product_description, Samsung, Apple, 'i') كما تم تعديله

من المنتجات؛

من خلال تعيين العلامة على 'i'، تطابق الوظيفة جميع الكلمات التي تطابق 'Samsung'، بغض النظر عن الغلاف.

خاتمة

في هذا المثال، اكتشفنا كيفية استخدام وظيفة REGEXP_REPLACE() والعمل معها لإجراء البحث والاستبدال المعتمد على نمط التعبير العادي.