إنشاء سلاسل فرعية من السلاسل في PostgreSQL

Ansha Slasl Fr Yt Mn Alslasl Fy Postgresql



هناك حالات قد ترغب فيها في استخراج قسم معين (سلسلة فرعية) من سلسلة. من الممكن أنك مهتم فقط بالقسم المحدد وتريد استبعاد القسم الآخر من السلسلة في مخرجاتك. تخيل حالة يكون لديك فيها اسم كامل مثل 'fname lname' كسلسلة واحدة وتريد فقط استخراج 'fname' في مخرجاتك. للقيام بذلك، يجب عليك استخدام وظيفة السلسلة الفرعية PostgreSQL. قمنا بإعداد دليل مفصل للمتابعة، بما في ذلك أمثلة لمساعدتك على فهم كيفية إنشاء سلاسل فرعية من السلاسل في PostgreSQL.

أمثلة على كيفية إنشاء سلاسل فرعية من السلاسل في PostgreSQL

أول شيء يجب علينا التحقق منه هو بناء الجملة.

سلسلة فرعية (اسم السلسلة/العمود، موضع البداية، الطول)

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







مثال 1: تحديد طول السلسلة الفرعية

عندما يكون لديك السلسلة المستهدفة، يمكنك تعيين المدة التي يجب أن تكون عليها السلسلة الفرعية. على سبيل المثال، إذا كانت لديك السلسلة الخاصة بك باسم 'Linuxhint' وتريد إنشاء سلسلتك الفرعية باسم 'Linux'، فقم بتنفيذ الأمر التالي:



SELECT SUBSTRING('Linuxhint' FROM 1 FOR 5) كاسم مستخدم؛

نحن نستخدم الكلمة الأساسية FROM لتحديد موضع البداية والكلمة الأساسية FOR لتحديد طول السلسلة الفرعية. 'اسم المستخدم' هو الاسم الذي نطلقه على مخرجاتنا.



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





افترض أنك تريد إنشاء السلسلة الفرعية من موضع بداية مختلف في السلسلة. على سبيل المثال، إذا كنت تريد 'تلميح' كسلسلة فرعية، فما عليك سوى تغيير موضع البداية والطول.



ومن أجل ذلك ننفذ أمرنا كما يلي:

المثال 2: تحديد موضع السلسلة الفرعية

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

في هذا المثال، لدينا سلسلتنا باسم 'Hello Linuxhint'. للحصول على 'Linuxhint' كسلسلة فرعية دون تحديد موضعها، نحتاج فقط إلى تحديد الموضع الذي نريد إنشاء السلسلة الفرعية فيه. في هذه الحالة نبدأ من الموضع 6. وبالتالي فإن أمرنا هو كما يلي:

SELECT SUBSTRING('Hello Linuxhint' FROM 6) كاسم مستخدم؛

المثال 3: تحديد موضعي البداية والنهاية

بالنظر إلى سلسلة، يمكنك إنشاء سلسلة فرعية عن طريق تحديد موضعي البداية والنهاية. بهذه الطريقة، حتى لو كان طول السلسلة أطول من السلسلة الفرعية المطلوبة، فسيتم إنشاؤها فقط بناءً على مواضع البداية والنهاية المحددة.

باستخدام 'Hello Linuxhint' كسلسلة لدينا، يمكننا إنشاء سلسلتنا الفرعية باسم 'Hello Linux' وحذف الأقسام الأخرى عن طريق تحديد موضعي البداية والنهاية كما يلي:

SELECT SUBSTRING('Hello Linuxhint', 1, 11) كاسم مستخدم؛

ليست هناك حاجة لكلمة رئيسية في هذه الحالة، فقط مواضع البداية والنهاية.

المثال 4: العمل مع جدول PostgreSQL

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

لنفترض أننا نستهدف عمود 'cust_email' ونريد إنشاء سلسلة فرعية عن طريق تحديد الطول. سيكون لدينا أمرنا على النحو التالي:

لاحظ كيف أن الإخراج لكل قيمة في العمود هو سلسلة فرعية بطول 3 من السلسلة الأصلية.

لنقم بتحديث الجدول بالاسم الكامل في عمود الاسم الخاص بنا. يبدو جدولنا الجديد كما يلي:

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

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

نقوم بتشغيل أمرنا على النحو التالي:

حدد order_id, SUBSTRING(name FROM 1 FOR POSITION( ' ' IN name) - 1) AS client_fname من العملاء؛

نختار 'order_id' والسلسلة الفرعية، وتظهر مخرجاتنا كما يلي:

هذه هي الطريقة التي يمكنك بها إنشاء سلاسل فرعية من سلاسل في جدول PostgreSQL.

خاتمة

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