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

يمكنك استرداد البيانات من الجدول باستخدام عبارة 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;
NOTE: استخدم الأمر \c للاتصال بقاعدة البيانات التي تحتوي على الجدول الذي تريد الاستعلام عنه. في حالتنا، نحن متصلون بقاعدة البيانات guru99.
الخطوة 2) إذا أردتَ عرض جميع الأعمدة في جدولٍ مُحدد، يُمكنك استخدام رمز النجمة (*) كحرف بدل. هذا يعني أنه يتحقق من جميع الاحتمالات، وبالتالي سيعرض جميع الأعمدة.
SELECT * FROM tutorials;
يعرض جميع سجلات جدول الدروس.
الخطوة 3) يمكنك استخدام جملة ORDER لفرز البيانات في جدول بناءً على عمود معين. تنظم جملة ORDER البيانات بالترتيب من A إلى Z.
SELECT * FROM tutorials ORDER BY id;
يمكنك الفرز من Z إلى A باستخدام "DESC" بعد عبارة "ORDER BY".
SELECT * FROM tutorials ORDER BY id DESC;
الخطوة 4) عبارة SELECT DISTINCT في PostgreSQL يمكن استخدام العبارة لإزالة الصفوف المكررة من النتيجة. يحتفظ بصف واحد لكل مجموعة من التكرارات.
Syntax: SELECT DISTINCT column_1 FROM table_name;
لنقم بالاستعلام عن قيم المعرفات المميزة في Postgres من خلال دروسنا التعليمية باستخدام استعلامات مميزة في PostgreSQL:
SELECT DISTINCT(id) FROM tutorials;
الخطوة 5) يمكنك استخدام PostgreSQL عبارة LIMIT لتقييد عدد السجلات التي يتم إرجاعها بواسطة استعلام SELECT.
SELECT * FROM tutorials LIMIT 4;
PostgreSQL حدد العبارة في pgAdmin
الخطوة 1) في شجرة الكائنات:
- انقر بزر الماوس الأيمن على الجدول.
- اختر البرامج النصية.
- انقر على "تحديد البرنامج النصي".
الخطوة 2) في اللوحة على اليمين:
- قم بتعديل استعلام SELECT إذا لزم الأمر.
- انقر على أيقونة البرق.
- لاحظ الناتج.
مميز في أعمدة متعددة
يمكن تطبيق عبارة 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 يقيد عدد السجلات التي يتم إرجاعها بواسطة الاستعلام. |








