مميز في PostgreSQL: التحديد والترتيب حسب والحد (أمثلة)

⚡ ملخص ذكي

مميز في PostgreSQL تُستخدم هذه العبارة مع جملة SELECT لإزالة الصفوف المكررة وإرجاع القيم الفريدة فقط. ويشمل ذلك شرح صيغة SELECT، وواجهة SQL Shell، وpgAdmin، واستخدام DISTINCT على عمود واحد أو عدة أعمدة، والفرق بين DISTINCT وGROUP BY.

  • 🔎 تحديد: استرجع الأعمدة من جدول باستخدام الأمر SELECT column FROM table.
  • 🧹 خامد: قم بإزالة الصفوف المكررة واحتفظ بصف واحد لكل قيمة فريدة.
  • ↕️ ترتيب حسب: يتم الفرز تصاعدياً بشكل افتراضي، أو تنازلياً باستخدام DESC.
  • 🔢 LIMIT: قم بتقييد عدد السجلات التي يُرجعها الاستعلام.
  • 🖥️ الأدوات: قم بتشغيل نفس الاستعلامات في SQL Shell أو pgAdmin.

مميز في PostgreSQL

يمكنك استرداد البيانات من الجدول باستخدام عبارة SELECT.

بناء الجملة:

SELECT [column names] FROM [table_name]

هنا،

  • أسماء الأعمدة: اسم الأعمدة التي تريد استرداد قيمتها.
  • من عند: تحدد عبارة FROM جدول مصدر واحد أو أكثر لعملية SELECT.
  • اسم الطاولة: اسم الجدول الموجود الذي تريد الاستعلام عنه.

ما هو تعريف DISTINCT في PostgreSQL?

استخدم DISTINCT بند في PostgreSQL تُستخدم عبارة SELECT DISTINCT مع جملة SELECT لإزالة الصفوف المكررة من مجموعة النتائج. عندما يحتوي عمود على قيم متكررة، تُرجع عبارة SELECT DISTINCT القيم الفريدة فقط.ping صف واحد لكل مجموعة من البيانات المكررة. يُفيد هذا عند الرغبة في الحصول على قائمة ببيانات مميزة، مثل مدن العملاء الفريدة أو فئات المنتجات، دون تكرار.

تقوم عبارة DISTINCT بتقييم جميع الأعمدة المدرجة في عبارة SELECT لتحديد ما إذا كان الصف فريدًا أم لا. PostgreSQL كما توفر الدالة DISTINCT ON، التي تُعيد الصف الأول لكل قيمة مميزة لتعبير مُحدد. يمكنك دمج DISTINCT مع ORDER BY للتحكم في الصفوف المعروضة، ومع LIMIT لتحديد عدد النتائج.

PostgreSQL حدد بيان في SQL Shell

الخطوة 1) لدينا جدول باسم "tutorials" يحتوي على عمودين، "id" و"tutorial_name". لنقم بالاستعلام عنه. استخدم الاستعلام التالي لعرض البيانات في الجدول:

SELECT id,tutorial_name FROM tutorials;

PostgreSQL حدد بيان في SQL Shell

NOTE: استخدم الأمر \c للاتصال بقاعدة البيانات التي تحتوي على الجدول الذي تريد الاستعلام عنه. في حالتنا، نحن متصلون بقاعدة البيانات guru99.

الخطوة 2) إذا أردتَ عرض جميع الأعمدة في جدولٍ مُحدد، يُمكنك استخدام رمز النجمة (*) كحرف بدل. هذا يعني أنه يتحقق من جميع الاحتمالات، وبالتالي سيعرض جميع الأعمدة.

SELECT * FROM tutorials;

PostgreSQL حدد بيان في SQL Shell

يعرض جميع سجلات جدول الدروس.

الخطوة 3) يمكنك استخدام جملة ORDER لفرز البيانات في جدول بناءً على عمود معين. تنظم جملة ORDER البيانات بالترتيب من A إلى Z.

SELECT * FROM tutorials ORDER BY id;

PostgreSQL حدد بيان في SQL Shell

يمكنك الفرز من Z إلى A باستخدام "DESC" بعد عبارة "ORDER BY".

SELECT * FROM tutorials ORDER BY id DESC;

PostgreSQL حدد بيان في SQL Shell

الخطوة 4) عبارة SELECT DISTINCT في PostgreSQL يمكن استخدام العبارة لإزالة الصفوف المكررة من النتيجة. يحتفظ بصف واحد لكل مجموعة من التكرارات.

Syntax:
SELECT DISTINCT column_1 FROM table_name;

لنقم بالاستعلام عن قيم المعرفات المميزة في Postgres من خلال دروسنا التعليمية باستخدام استعلامات مميزة في PostgreSQL:

SELECT DISTINCT(id) FROM tutorials;

PostgreSQL حدد بيان في SQL Shell

الخطوة 5) يمكنك استخدام PostgreSQL عبارة LIMIT لتقييد عدد السجلات التي يتم إرجاعها بواسطة استعلام SELECT.

SELECT * FROM tutorials LIMIT 4;

PostgreSQL حدد بيان في SQL Shell

PostgreSQL حدد العبارة في pgAdmin

الخطوة 1) في شجرة الكائنات:

  1. انقر بزر الماوس الأيمن على الجدول.
  2. اختر البرامج النصية.
  3. انقر على "تحديد البرنامج النصي".

PostgreSQL حدد العبارة في pgAdmin

الخطوة 2) في اللوحة على اليمين:

  1. قم بتعديل استعلام SELECT إذا لزم الأمر.
  2. انقر على أيقونة البرق.
  3. لاحظ الناتج.

PostgreSQL حدد العبارة في pgAdmin

مميز في أعمدة متعددة

يمكن تطبيق عبارة SELECT DISTINCT على أكثر من عمود واحد. عند إدراج عدة أعمدة بعد DISTINCT، PostgreSQL يتعامل مع مجموعة تلك الأعمدة كوحدة واحدة ويزيل الصفوف التي تتكرر فيها تلك المجموعة بأكملها.

Syntax:
SELECT DISTINCT column_1, column_2 FROM table_name;

على سبيل المثال، لإرجاع التركيبات الفريدة لـ tutorial_name و id من جدول الدروس التعليمية:

SELECT DISTINCT tutorial_name, id FROM tutorials;

في هذه الحالة، يُحذف الصف فقط عندما يتطابق كل من اسم البرنامج التعليمي (tutorial_name) ومعرّفه (id) مع صف آخر. إذا كان هناك صفان يشتركان في نفس اسم البرنامج التعليمي ولكن لهما قيم معرّف مختلفة، فسيتم الاحتفاظ بهما، لأن التركيبة تظل فريدة. من المهم تذكر هذا السلوك: لا يقوم الأمر DISTINCT بإزالة التكرارات من عمود واحد عند تحديد عدة أعمدة؛ بل يقوم بإزالة التكرارات من مجموعة الأعمدة المحددة بالكامل معًا.

الفرق بين DISTINCT و GROUP BY PostgreSQL

يمكن لكل من DISTINCT و GROUP BY إزالة القيم المكررة، لكنهما يخدمان أغراضًا مختلفة:

  • DISTINCT ببساطة، يقوم بإرجاع الصفوف الفريدة من النتيجة، وهو الأفضل عندما تحتاج فقط إلى قائمة خالية من التكرارات.
  • GROUP BY تُجمّع الصفوف التي تشترك في قيمة معينة حتى تتمكن من تطبيق دوال التجميع مثل COUNT و SUM أو AVG لكل مجموعة.

على سبيل المثال، الاستعلامان أدناه يُرجعان قيم المعرفات الفريدة:

SELECT DISTINCT id FROM tutorials;
SELECT id FROM tutorials GROUP BY id;

استخدم DISTINCT لعرض قائمة بسيطة من القيم الفريدة، واستخدم GROUP BY عندما تحتاج أيضًا إلى إجراء عملية حسابية لكل مجموعة، مثل حساب عدد الدروس التعليمية التي تشترك في كل معرّف. في الاستعلامات البسيطة، غالبًا ما يُنتج مُخطط الاستعلام أداءً متقاربًا لكلا الخيارين، ولكن GROUP BY ضروري عند إجراء أي عملية تجميع.

ورقة الغش

SELECT [column names] FROM [table_name] [clause]

فيما يلي المعايير المختلفة:

  • أسماء الأعمدة: اسم الأعمدة التي تريد استرداد قيمتها.
  • من عند: تحدد عبارة FROM جدول مصدر واحد أو أكثر لعملية SELECT.
  • اسم الطاولة: اسم الجدول الموجود الذي تريد الاستعلام عنه.

أحكام مختلفة هي:

أوامر الوصف
* يسترجع السجلات لجميع الصفوف في الجدول.
DISTINCT مميز في PostgreSQL يساعدك على إزالة العناصر المكررة من النتيجة.
ترتيب حسب يُرتب الصفوف بناءً على عمود. الترتيب الافتراضي تصاعدي. استخدم الكلمة المفتاحية DESC للترتيب تنازليًا.
مما سيحدث الحد في PostgreSQL يقيد عدد السجلات التي يتم إرجاعها بواسطة الاستعلام.

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

نعم. يمكن للمساعدين المدعومين بالذكاء الاصطناعي تحويل الوصف إلى عبارات SELECT DISTINCT، وإضافة ORDER BY أو LIMIT، وشرح النتيجة. مع ذلك، يُنصح باختبار الاستعلام على مخطط قاعدة البيانات قبل تشغيله في بيئة الإنتاج.

نعم. تستطيع أدوات الذكاء الاصطناعي قراءة خطة الاستعلام من خلال الأمر EXPLAIN ANALYZE واقتراح الفهارس أو إعادة كتابة DISTINCT كـ GROUP BY. يُنصح دائمًا بالتحقق من صحة الاقتراحات باستخدام بيانات حقيقية، لأن الأداء يعتمد على حجم الجدول والفهارس.

تزيل عبارة DISTINCT الصفوف المكررة في جميع الأعمدة المحددة. أما عبارة DISTINCT ON (تعبير) فتحتفظ بالصف الأول لكل قيمة مميزة لهذا التعبير، مما يسمح لك باختيار صف واحد لكل مجموعة، وعادةً ما يتم دمجها مع عبارة ORDER BY.

قد يكون استخدام دالة DISTINCT أبطأ مع الجداول الكبيرة لأنها تتطلب مقارنة البيانات المكررة وإزالتها، وغالبًا ما تستخدم خوارزمية فرز أو تجزئة. يساعد استخدام الفهارس المناسبة وتحديد الأعمدة المختارة على تقليل تكلفتها.

تلخيص هذه التدوينة بـ: