PostgreSQL المصفوفة: الوظائف، النوع، المثال
⚡ ملخص ذكي
PostgreSQL تتيح لك المصفوفة تعريف عمود جدول كمصفوفة من أي نوع بيانات صالح. وهي تشمل إنشاء أعمدة المصفوفة، وإدراج القيم باستخدام مُنشئ ARRAY أو الأقواس المعقوفة، والاستعلام عن العناصر وتعديلها، والبحث باستخدام ANY().

ما هي تفاصيل PostgreSQL مجموعة مصفوفة؟
In PostgreSQLيمكننا تعريف العمود على أنه مصفوفة من أنواع البيانات الصالحة. يمكن أن يكون نوع البيانات مضمنًا، أو مُعرَّفًا من قِبل المستخدم، أو نوعًا مُعدَّدًا. بالإضافة إلى ذلك، تلعب المصفوفات دورًا مهمًا في PostgreSQL.
كل المقابلة PostgreSQL يأتي نوع البيانات مصحوبًا بنوع مصفوفة مناسب. على سبيل المثال، نوع البيانات الصحيح له نوع المصفوفة integer[]، ونوع البيانات الحرفي له نوع المصفوفة character[]، وهكذا.
خلق PostgreSQL المصفوفات
في المثال التالي، سنقوم بإنشاء جدول باسم "الموظفين" مع تحديد عمود جهة الاتصال كمصفوفة نصية:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
يجب أن يعمل الأمر بنجاح.
إدراج PostgreSQL قيم المصفوفة
دعونا الآن أدخل القيم في الجدول أعلاه:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
يجب أن يتم تشغيل الإدراج بنجاح.
تم إدخال قيم العمود الثالث، أي بيانات الاتصال، على شكل مصفوفة. وقد تم ذلك باستخدام مُنشئ المصفوفة (ARRAY). في هذا المثال، قمنا بوضعها بين قوسين مربعين []. لدينا جهتا اتصال للموظفة أليس جون.
لا يزال من الممكن لنا استخدام الأقواس المتعرجة {} كما هو موضح أدناه:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
يجب أن يعمل الأمر بنجاح.
ستؤدي العبارات أعلاه إلى إدراج صفين في جدول الموظفين. عند استخدام الأقواس المتعرجة، يتم وضع المصفوفة داخل علامتي اقتباس مفردتين (') بينما يتم وضع عناصر المصفوفة النصية داخل علامتي اقتباس مزدوجتين (“).
الاستعلام عن بيانات المصفوفة
للاستعلام عن عناصر مصفوفة، نستخدم عبارة SELECT. لعرض محتويات جدول الموظفين، نقوم بتشغيل الأمر التالي:
SELECT * FROM Employees;
هذا يعيد ما يلي:
تم وضع عناصر عمود المصفوفة، أي "التواصل"، بين قوسين معقوفين {}. وللوصول إلى عناصر المصفوفة نفسها، نضيف فهرسًا بين قوسين مربعين []. العنصر الأول في المصفوفة يكون في الموضع 1.
على سبيل المثال، نحتاج إلى الحصول على أسماء الموظفين ومعلومات الاتصال الأولى فقط للموظفين الذين لديهم أكثر من جهة اتصال. يمكننا الوصول إلى هذه المعلومات باستخدام contact[1]. لنلقِ نظرة على ذلك:
SELECT name, contact[1] FROM Employees;
سيؤدي هذا إلى إرجاع ما يلي:
يمكننا استخدام عبارة SELECT مع شرط WHERE لتصفية الصفوف بناءً على عمود المصفوفة. على سبيل المثال، لعرض الموظف الذي لديه (408)-567-78234 كجهة اتصال ثانية، يمكننا تشغيل الأمر التالي:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
سيؤدي هذا إلى إرجاع ما يلي:
تعديل PostgreSQL مجموعة
يمكنك تحديث جميع عناصر المصفوفة أو عنصر واحد منها. فيما يلي محتويات جدول الموظفين:
دعونا نقوم بتحديث رقم الهاتف الثاني للموظف جيمس بوش ورقم تعريفه 3:
قم بتشغيل الأمر التالي:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
يجب أن يعمل الأمر بنجاح:
دعونا نقوم بالاستعلام عن الجدول للتحقق من نجاح التغيير:
كان التغيير ناجحا.
البحث في PostgreSQL مجموعة
حاليًا، جدول الموظفين لدينا هو كما يلي:
لنفترض أننا نريد معرفة مالك جهة الاتصال (408)-783-5731 بغض النظر عن موقعها ضمن مصفوفة جهات الاتصال. يمكننا استخدام الدالة ANY() كما هو موضح أدناه:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
سيؤدي هذا إلى إرجاع ما يلي:
توسيع المصفوفات
يمكننا تقسيم قيم المصفوفة إلى صفوف. تُعرف هذه العملية بتوسيع المصفوفة. في مثال جدول الموظفين، يوجد بعض الموظفين الذين لديهم جهتا اتصال في مصفوفة جهات الاتصال. يمكننا فصل هذه الجهات إلى صفوف منفصلة. PostgreSQL يوفر هذا البرنامج دالة unnest() التي يمكن استخدامها لهذا الغرض. على سبيل المثال:
SELECT name, unnest(contact) FROM Employees;
سيؤدي هذا إلى إرجاع ما يلي:
لدى الموظفين أليس جون وجيمس بوش جهتي اتصال. يمكننا تقسيم هاتين الجهتين إلى صفوف منفصلة.
باستخدام pgAdmin
خلق PostgreSQL المصفوفات
لإنجاز الأمر نفسه من خلال pgAdmin، قم بما يلي:
الخطوة 1) قم بتسجيل الدخول إلى حساب pgAdmin الخاص بك.
الخطوة 2)
- من شريط التنقل الموجود على اليسار، انقر فوق قواعد البيانات.
- انقر على زر العرض التوضيحي.
الخطوة 3) اكتب الاستعلام في محرر الاستعلام لإنشاء جدول الموظفين:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
الخطوة 4) انقر فوق الزر "تنفيذ".
إدراج PostgreSQL قيم المصفوفة
الخطوة 1) اكتب الاستعلام التالي في محرر الاستعلام:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
الخطوة 2) انقر فوق الزر تنفيذ:
الخطوة 3) لاستخدام الأقواس المعقوفة في الاستعلام، اكتب الاستعلام التالي في محرر الاستعلام:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
ثم انقر فوق زر التنفيذ:
الاستعلام عن بيانات المصفوفة
الخطوة 1) لعرض محتويات جدول الموظفين، اكتب الاستعلام التالي في محرر الاستعلامات:
SELECT * FROM Employees;
الخطوة 2) انقر فوق الزر تنفيذ:
ينبغي أن يعود ما يلي:
الخطوة 3) لعرض بيانات الاتصال الأولى للموظفين، اكتب الاستعلام التالي في محرر الاستعلامات وانقر على زر التنفيذ:
SELECT name, contact[1] FROM Employees;
ينبغي أن يعود ما يلي:
الخطوة 4) لدمج عبارة SELECT مع عبارة WHERE، اكتب الأمر التالي في محرر الاستعلام وانقر على زر التنفيذ:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
ينبغي أن يعود ما يلي:
تعديل PostgreSQL مجموعة
الخطوة 1) لتحديث جهة الاتصال الثانية للمستخدم الذي يحمل المعرف 3، قم بتشغيل الأمر التالي:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
الخطوة 2) انقر فوق الزر "تنفيذ".
الخطوة 3) اكتب الأمر التالي في محرر الاستعلام للتحقق مما إذا كان التغيير قد تم بنجاح، ثم انقر فوق زر التنفيذ:
SELECT * FROM Employees;
ينبغي أن يعود ما يلي:
البحث في PostgreSQL مجموعة
الخطوة 1) اكتب الاستعلام التالي في محرر الاستعلام:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
الخطوة 2) انقر فوق الزر "تنفيذ".
ينبغي أن يعود ما يلي:
توسيع المصفوفات
الخطوة 1) اكتب الاستعلام التالي في محرر الاستعلام:
SELECT name, unnest(contact) FROM Employees;
الخطوة 2) انقر فوق الزر "تنفيذ".
ينبغي أن يعود ما يلي:
قم بتنزيل قاعدة البيانات المستخدمة في هذا البرنامج التعليمي






























