0Pricing
SQL Academy · درس

أساسيات أعمدة المصفوفات

أنشئ قيم المصفوفات واقرأها

أساسيات أعمدة المصفوفات درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.

ما عمود المصفوفة؟

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

يمكن أن تحتوي المصفوفات على أعداد صحيحة أو نصوص أو قيم منطقية أو تواريخ أو أي نوع آخر من أنواع PostgreSQL. وتكون الصياغة مثل integer[] أو text[].

التصريح عن عمود مصفوفة

أضيفوا [] بعد اسم أي نوع عند كتابة عبارة CREATE TABLE للتصريح عن عمود مصفوفة. يخزن الجدول أدناه قائمة من الوسوم لكل مقالة.

CREATE TABLE articles (
  id      serial PRIMARY KEY,
  title   text NOT NULL,
  tags    text[]
);

إدراج قيم المصفوفة

استخدموا القيم الحرفية ذات الأقواس المعقوفة والمحاطة بعلامتي اقتباس مفردتين لإدراج بيانات المصفوفة. افصلوا بين كل عنصر وآخر بفاصلة داخل الأقواس: '{"sql","database"}'.

يمكنكم بديلًا استخدام صياغة الباني ARRAY[...] الموضحة في الصف الثاني.

INSERT INTO articles (title, tags) VALUES
  ('Intro to SQL',    '{"sql","beginner"}'),
  ('Advanced Joins',  ARRAY['sql','joins','performance']),
  ('NULL Handling',   '{"sql","nulls","tips"}');

قراءة المصفوفة كاملة

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

SELECT id, title, tags
FROM   articles;

الوصول إلى عنصر واحد

تبدأ فهارس المصفوفات في PostgreSQL من 1 (أي إن العنصر الأول موجود في الفهرس 1 وليس 0). استخدموا الأقواس المربعة بعد اسم العمود للوصول إلى عنصر محدد.

SELECT title,
       tags[1] AS first_tag,
       tags[2] AS second_tag
FROM   articles;

تقطيع المصفوفة

يمكنكم استخراج نطاق من العناصر باستخدام صياغة التقطيع lower:upper داخل الأقواس المربعة. ويُضمَّن الحدّان كلاهما.

SELECT title,
       tags[1:2] AS first_two_tags
FROM   articles;

التصفية باستخدام ANY

للعثور على الصفوف التي تحتوي مصفوفتها على قيمة محددة، استخدموا التعبير = ANY(column). يعيد هذا التعبير الصفوف التي يتطابق فيها عنصر واحد على الأقل من المصفوفة مع القيمة المحددة.

SELECT id, title, tags
FROM   articles
WHERE  'joins' = ANY(tags);

التصفية باستخدام العامل @>

يتحقق عامل contains‏ @> مما إذا كانت المصفوفة اليسرى تحتوي على جميع عناصر المصفوفة اليمنى. ويفيد ذلك عندما تريدون الصفوف التي تتضمن مجموعة من الوسوم المطلوبة.

SELECT id, title, tags
FROM   articles
WHERE  tags @> ARRAY['sql','tips'];

الحصول على طول المصفوفة

تعيد الدالة array_length(arr, dimension) عدد العناصر على امتداد بُعد محدد. استخدموا 1 كوسيط ثانٍ للمصفوفة أحادية البعد.

SELECT title,
       array_length(tags, 1) AS tag_count
FROM   articles
ORDER  BY tag_count DESC;

إلحاق العناصر

استخدموا الدالة array_append(array, element) أو عامل التسلسل || لإضافة عنصر جديد إلى نهاية عمود مصفوفة موجود.

UPDATE articles
SET    tags = array_append(tags, 'featured')
WHERE  title = 'Intro to SQL';

SELECT title, tags FROM articles WHERE title = 'Intro to SQL';

تحويل المصفوفة إلى صفوف

توسّع الدالة unnest(array) المصفوفة إلى مجموعة من الصفوف — صف واحد لكل عنصر. ويفيد ذلك في التجميعات وعمليات الربط وأي عملية تحتاج إلى التعامل مع كل عنصر على حدة.

SELECT title, unnest(tags) AS tag
FROM   articles
ORDER  BY title, tag;

تحقق سريع

اختبروا مدى فهمكم لأعمدة المصفوفات في PostgreSQL.

مراجعة: أساسيات أعمدة المصفوفات

في هذا الدرس تعلمتم كيفية عمل أعمدة المصفوفات في PostgreSQL من البداية إلى النهاية:

  • التصريح عن المصفوفات باستخدام صياغة type[] في CREATE TABLE
  • إدراج القيم باستخدام القيم الحرفية ذات الأقواس المعقوفة أو ARRAY[...]
  • الوصول إلى العناصر باستخدام فهرس يبدأ من 1، وإلى المقاطع باستخدام lower:upper
  • التصفية باستخدام = ANY(col) لقيمة واحدة أو @> لمجموعة جزئية
  • قياس الطول باستخدام array_length(col, 1)
  • إضافة العناصر باستخدام array_append() أو ||
  • توسيع المصفوفات إلى صفوف باستخدام unnest()

تُعد المصفوفات ميزة قوية في PostgreSQL، ويمكنها تبسيط المخططات عندما تنتمي قائمة من القيم إلى كيان واحد.

الأسئلة الشائعة

هل درس «أساسيات أعمدة المصفوفات» مجاني؟

نعم — نص درس «أساسيات أعمدة المصفوفات» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7) وفتح باقي دورة SQL Academy، انتقل إلى CoddyKit PRO. تتضمن دورة SQL Academy 4 دروس في المجموع.

ماذا ستتعلم في «أساسيات أعمدة المصفوفات»؟

أنشئ قيم المصفوفات واقرأها تتمرن على SQL Academy مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.

هل أحتاج إلى خبرة سابقة لأبدأ SQL Academy؟

لا تُشترط خبرة سابقة. SQL Academy على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 1 من أصل 4.

كم من الوقت يستغرق درس «أساسيات أعمدة المصفوفات»؟

معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.

هل يمكنني كتابة وتشغيل أكواد في درس SQL Academy هذا؟

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

جميع الدروس في هذه الدورة

  1. أساسيات أعمدة المصفوفات
  2. البحث داخل المصفوفات
  3. UNNEST والتجميع
  4. المصفوفات مقابل الجداول المطَبَّعة
← العودة إلى SQL Academy