وظيفة PostgreSQL SUBSTRING() مع مثال Regex

ما هي سلسلة فرعية PostgreSQL؟

تساعدك وظيفة السلسلة الفرعية PostgreSQL على استخراج جزء من السلسلة وإعادته. بدلاً من إرجاع السلسلة بأكملها، فإنها تُرجع جزءًا منها فقط.

بناء الجملة

تأخذ وظيفة السلسلة الفرعية PostgreSQL ما يليwing بناء الجملة:

substring( string [from starting_position] [for length] )

المعلمات

الاسم الوصف
سلسلة السلسلة المصدر التي يكون نوع بياناتها هو varchar وchar وstring وما إلى ذلك.
start_position إنها معلمة اختيارية. يشير إلى المكان الذي سيبدأ فيه استخراج الخيط. إذا قمت بحذف هذه المعلمة، سيبدأ الاستخراج من الموضع 1، وهو الحرف الأول في السلسلة.
الطول إنها معلمة اختيارية. يشير إلى عدد الأحرف التي سيتم استخراجها من السلسلة. إذا قمت بحذف هذه المعلمة، سيتم استخراج الدالة من start_position إلى نهاية السلسلة.

أمثلة

في هذا المثال، نريد استخراج أول 4 أحرف من كلمة Guru99:

SELECT substring('Guru99' for 4);

سيعيد الأمر المتابعةwing:

سلسلة فرعية PostgreSQL

لم نحدد موضع البداية، لذلك يبدأ استخراج السلسلة الفرعية من الموضع 1. تم استخراج 4 أحرف لإرجاع ما سبق.

التاليwing يوضح المثال كيفية تحديد موضع البداية:

SELECT substring('Guru99' from 1 for 4);

سيعيد الأمر المتابعةwing:

سلسلة فرعية PostgreSQL

لقد حددنا أن استخراج السلسلة الفرعية يجب أن يبدأ من الموضع 1، ويجب استخراج 4 أحرف.

دعونا نستخرج 99 من السلسلة Guru99:

SELECT substring('Guru99' from 5);

سيعيد الأمر المتابعةwing:

سلسلة فرعية PostgreSQL

لقد حددنا موضع البداية على أنه 5. وبما أنه لم يتم تحديد عدد الأحرف المراد استخراجها، فقد استمر الاستخراج حتى نهاية السلسلة.

هنا مثال آخر:

SELECT substring('Guru99' from 5 for 2);

سيعيد الأمر المتابعةwing:

سلسلة فرعية PostgreSQL

لقد بدأنا الاستخراج في الموضع 5، وتم استخراج حرفين.

خذ بعين الاعتبار جدول الكتاب الموضح أدناه:

سلسلة فرعية PostgreSQL

نريد الحصول على فكرة تقريبية عن اسم كل كتاب. ومع ذلك، يمكننا استخراج أول 15 حرفًا فقط من عمود الاسم بالجدول:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

سيعيد الأمر المتابعةwing:

سلسلة فرعية PostgreSQL

لدينا الآن فكرة تقريبية عن اسم كل كتاب.

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

في PostgreSQL، يمكننا استخراج سلسلة فرعية تطابق تعبيرًا عاديًا محددًا لـ POSIX. في هذه الحالة، يتم استخدام وظيفة السلسلة الفرعية مع following بناء الجملة:

SUBSTRING(string FROM matching_pattern)

or

SUBSTRING(string, matching_pattern);

فيما يلي شرح للمعلمات المذكورة أعلاه:

السلسلة هي السلسلة المصدر التي نوع البيانات هو varchar، char، سلسلة، الخ.

نمط المطابقة هو النمط الذي سيتم استخدامه في حد ذاتهarchiنانوغرام في السلسلة.

أمثلة

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

سيعيد الأمر المتابعةwing:

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

سلسلة الإدخال الخاصة بنا هي عمرك 22 عامًا. في النمط، نحن searchiبالنسبة للنمط الرقمي في السلسلة عند العثور عليه، يجب أن تقوم دالة السلسلة الفرعية باستخراج حرفين فقط.

كيفية مطابقة السلاسل الفرعية باستخدام pgAdmin

الآن دعونا نرى كيف يتم تنفيذ الإجراءات باستخدام pgAdmin.

يمكن تنفيذ الاستعلامات المذكورة أعلاه والتي لا نحتاج فيها إلى قاعدة بيانات مباشرة من نافذة محرر الاستعلام. فقط قم بالمتابعةwing:

الخطوة 1) تسجيل الدخول إلى حسابك.
قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2) على pgAdmin،
انقر على أيقونة أداة الاستعلام.

مطابقة السلاسل الفرعية باستخدام pgAdmin

سيتم فتح نافذة محرر الاستعلام.

الخطوة 3) اكتب الاستعلام.
اكتب فولوwing الاستعلام في نافذة المحرر.

SELECT substring('Guru99' for 4);

الخطوة 4) تنفيذ الاستعلام
انقر على أيقونة التنفيذ لتنفيذ الاستعلام.

مطابقة السلاسل الفرعية باستخدام pgAdmin

الخطوة 5) تم تنفيذ الاستعلام.
ينبغي أن يعود فولوwing:

مطابقة السلاسل الفرعية باستخدام pgAdmin

مثال 2:

SELECT substring('Guru99' from 1 for 4);

ينبغي أن يعود فولوwing:

مطابقة السلاسل الفرعية باستخدام pgAdmin

هنا هو المثال التالي:

SELECT substring('Guru99' from 5);

ينبغي أن يعود فولوwing:

مطابقة السلاسل الفرعية باستخدام pgAdmin

مثال 3:

SELECT substring('Guru99' from 5 for 2);

ينبغي أن يعود فولوwing:

مطابقة السلاسل الفرعية باستخدام pgAdmin

الآن، دعونا ننفذ المثال باستخدام جدول الكتب في قاعدة البيانات التجريبية:

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2)

  1. من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
  2. انقر فوق العرض التوضيحي.

مطابقة السلاسل الفرعية باستخدام pgAdmin

الخطوة 3) اكتب الاستعلام في محرر الاستعلام:

SELECT
   id,
   SUBSTRING(name, 1, 15 ) AS name_initial
FROM
   Book
ORDER BY
   id;

الخطوة 4) انقر فوق الزر "تنفيذ".

مطابقة السلاسل الفرعية باستخدام pgAdmin

ينبغي أن يعود فولوwing:

سلسلة فرعية PostgreSQL

لدينا الآن فكرة أساسية عن اسم كل كتاب.

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

لإنجاز نفس الشيء على pgAdmin، قم بالمتابعةwing:

الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.

الخطوة 2) انقر على أيقونة أداة الاستعلام.

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

سيتم فتح نافذة محرر الاستعلام.

الخطوة 3) اكتب فولوwing الاستعلام في نافذة المحرر.

SELECT
   SUBSTRING (
      'Your age is 22',
      '([0-9]{1,2})'
   ) as age;

الخطوة 4) انقر على أيقونة التنفيذ لتنفيذ الاستعلام.

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

ينبغي أن يعود فولوwing:

مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL

نبذة عامة

  • تساعد وظيفة PostgreSQL Substring في استخراج وإرجاع جزء فقط من السلسلة.
  • الحرف الأول من السلسلة موجود في الموضع 1.
  • إذا لم يتم تحديد عدد الأحرف التي سيتم استخراجها من السلسلة، فستقوم الدالة باستخراج الأحرف من موضع البداية المحدد إلى نهاية السلسلة.
  • إذا تم تحديد عدد الأحرف المراد استخراجها، فسيتم استخراج هذا العدد فقط من الأحرف.

قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي