PostgreSQL دالة SUBSTRING() مع مثال Regex
⚡ ملخص ذكي
PostgreSQL سلسلة فرعية مثالtracتقوم الدالة ts بإرجاع جزء من سلسلة نصية، باستخدام موضع بداية وطول اختياريين، كما أنها تطابق النص مع تعبير POSIX العادي لاستخراج أنماط مثل الأرقام أو الرموز.

ما هي تفاصيل PostgreSQL سلسلة فرعية؟
استخدم PostgreSQL تساعدك دالة استخراج السلسلة الفرعية في استخراجtracتقوم هذه الدالة بإرجاع جزء من سلسلة نصية. فبدلاً من إرجاع السلسلة كاملة، تُرجع جزءًا منها فقط، وهو أمر مفيد لتقليص حجم التعليمات البرمجية وقراءة الحقول ذات العرض الثابت.
بناء الجملة
استخدم PostgreSQL تأخذ وظيفة substring بناء الجملة التالي:
substring( string [from starting_position] [for length] )
المعاملات
تُستخدم المعلمات التالية مع دالة استخراج السلسلة الفرعية:
| سلسلة | السلسلة المصدر التي يكون نوع بياناتها هو varchar وchar وstring وما إلى ذلك. |
| start_position | مُعامل اختياري. يُشير إلى المكان الذي يكون فيه extracسيبدأ تحليل السلسلة. إذا حذفت هذا المعامل، فسيكون المثالtracيبدأ التسلسل من الموضع 1، وهو الحرف الأول في السلسلة. |
| الطول | مُعامل اختياري. يُشير إلى عدد الأحرف المراد عرضهاtracted من السلسلة. إذا حذفت هذا المعامل، فإن الدالة extracts من الموضع_البداية إلى نهاية السلسلة. |
أمثلة
في هذا المثال، نريد أن نشرحtracالأحرف الأربعة الأولى من الكلمة Guru99:
SELECT substring('Guru99' for 4);
سوف يقوم الأمر بإرجاع ما يلي:
لم نحدد نقطة البداية، لذا فإن السابقtracبدأ استخراج السلسلة الفرعية من الموضع 1. تم استخراج أربعة أحرفtracted لإعادة النتيجة أعلاه.
يوضح المثال التالي كيفية تحديد موضع البداية:
SELECT substring('Guru99' from 1 for 4);
سوف يقوم الأمر بإرجاع ما يلي:
لقد حددنا أن السابقtracيجب أن يبدأ استخراج السلسلة الفرعية من الموضع 1، ويجب أن تكون 4 أحرفtracتيد.
دعونا نخرجtract 99 من السلسلة Guru99:
SELECT substring('Guru99' from 5);
سوف يقوم الأمر بإرجاع ما يلي:
حددنا موضع البداية برقم 5. نظرًا لأن عدد الأحرف المطلوب هوtracلم يتم تحديد تيد، السابقtracامتدت tion إلى نهاية السلسلة.
هنا مثال آخر:
SELECT substring('Guru99' from 5 for 2);
سوف يقوم الأمر بإرجاع ما يلي:
بدأنا السابقtracتم حذف حرفين من الموضع 5.tracتيد.
خذ بعين الاعتبار جدول الكتاب الموضح أدناه:
نريد الحصول على فكرة تقريبية عن اسم كل كتاب. يمكننا أن نستنتجtract فقط أول 15 حرفًا من عمود الاسم في الجدول:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
سوف يقوم الأمر بإرجاع ما يلي:
لدينا الآن فكرة تقريبية عن اسم كل كتاب.
مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL
In PostgreSQLيمكنك الخروجtracدالة substring التي تطابق تعبيرًا نمطيًا محددًا في نظام POSIX. في هذه الحالة، تستخدم دالة substring الصيغة التالية:
SUBSTRING(string FROM matching_pattern)
or
SUBSTRING(string, matching_pattern);
فيما يلي شرح للمعلمات المذكورة أعلاه. السلسلة هي سلسلة المصدر، والتي نوع البيانات هي varchar، char، string، وما إلى ذلك. المطابقة_النمط هي النمط المستخدم للبحث في السلسلة.
أمثلة
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
سوف يقوم الأمر بإرجاع ما يلي:
سلسلة الإدخال لدينا هي "عمرك 22". في النمط، نبحث عن نمط رقمي؛ وعندما يتم العثور عليه، تقوم دالة السلسلة الفرعية باستخراجه.tracحرفان فقط.
كيفية مطابقة السلاسل الفرعية باستخدام pgAdmin
والآن، دعونا نرى كيف تُنفَّذ هذه الإجراءات باستخدام pgAdmin. يمكن تنفيذ الاستعلامات التي لا تتطلب قاعدة بيانات مباشرةً من نافذة محرر الاستعلامات. ما عليك سوى القيام بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2) في لوحة تحكم pgAdmin، انقر فوق رمز أداة الاستعلام.
سيتم فتح نافذة محرر الاستعلام.
الخطوة 3) اكتب الاستعلام التالي في نافذة المحرر.
SELECT substring('Guru99' for 4);
الخطوة 4) انقر على أيقونة التنفيذ لتنفيذ الاستعلام.
الخطوة 5) تم تنفيذ الاستعلام. يجب أن يُرجع ما يلي:
مثال 2:
SELECT substring('Guru99' from 1 for 4);
ينبغي أن يعود ما يلي:
هنا هو المثال التالي:
SELECT substring('Guru99' from 5);
ينبغي أن يعود ما يلي:
مثال 3:
SELECT substring('Guru99' from 5 for 2);
ينبغي أن يعود ما يلي:
الآن، دعونا ننفذ المثال باستخدام جدول الكتب في قاعدة البيانات التجريبية:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2) من شريط التنقل على اليسار، انقر فوق قواعد البيانات، ثم انقر فوق عرض توضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام:
SELECT id, SUBSTRING(name, 1, 15 ) AS name_initial FROM Book ORDER BY id;
الخطوة 4) انقر فوق الزر "تنفيذ".
ينبغي أن يعود ما يلي:
لدينا الآن فكرة أساسية عن اسم كل كتاب.
مطابقة السلاسل الفرعية مع التعبير العادي لـ SQL
لإنجاز نفس الشيء على pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2) انقر على أيقونة أداة الاستعلام.
سيتم فتح نافذة محرر الاستعلام.
الخطوة 3) اكتب الاستعلام التالي في نافذة المحرر.
SELECT SUBSTRING ( 'Your age is 22', '([0-9]{1,2})' ) as age;
الخطوة 4) انقر على أيقونة التنفيذ لتنفيذ الاستعلام.
ينبغي أن يعود ما يلي:
قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي



















