العروض العادية: إعادة الاستخدام المنطقية
أنشئ عروضًا لتغليف الاستعلامات المعقدة، وتبسيط التقارير، ومنح صلاحية القراءة لمجموعة فرعية من الأعمدة
العروض العادية: إعادة الاستخدام المنطقية درس مجاني في SQL Academy على CoddyKit. هذا هو الدرس 1 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في SQL Academy، وتقدمك يتزامن عبر الويب وتطبيق CoddyKit. تتضمن دورة SQL Academy 4 دروس في المجموع.
ما العرض؟
الـعرض هو استعلام SELECT محفوظ. في كل مرة تستعلمون فيها عن العرض، يُنفَّذ استعلام SELECT الأساسي. وهو يشبه استعلامًا ذا اسم يمكنكم إجراء JOIN والتصفية والتجميع عليه.
CREATE VIEW active_users AS
SELECT id, email, full_name
FROM users
WHERE deleted_at IS NULL;استخدام عرض
استعلموا عنه كما تستعلمون عن أي جدول:
SELECT COUNT(*) FROM active_users;
SELECT * FROM active_users WHERE email LIKE '%@gmail.com';العروض غير مخزّنة
يُخزَّن تعريف العرض، لا النتيجة. يوسّع كل استعلام العرض ويُشغّل استعلام SELECT الأساسي. وتنطبق اعتبارات خطة الاستعلام نفسها.
لماذا نستخدم العروض؟
- إعادة الاستخدام — عرّفوا استعلامًا معقدًا مرة واحدة
- التجريد — أخفوا تفاصيل التنفيذ، مثل ضم 3 جداول لإنشاء «active_users»
- الأمان — امنحوا صلاحية SELECT على العرض من دون كشف الجداول الأساسية
- التوافق — حافظوا على عمل صيغ الاستعلامات القديمة بعد تغييرات المخطط
CREATE OR REPLACE
حدّثوا عرضًا في مكانه — ولكن فقط إذا تطابقت أنواع الأعمدة وترتيبها:
CREATE OR REPLACE VIEW active_users AS
SELECT id, email, full_name, last_login
FROM users
WHERE deleted_at IS NULL;
-- ERROR if columns conflict; DROP VIEW + CREATE VIEW instead.العروض مع JOIN والتجميعات
حالة شائعة: إنشاء ملخّص لكل مستخدم:
CREATE VIEW user_stats AS
SELECT u.id, u.email,
COUNT(o.id) AS order_count,
COALESCE(SUM(o.total), 0) AS revenue
FROM users u
LEFT JOIN orders o ON o.user_id = u.id
GROUP BY u.id, u.email;العروض القابلة للتحديث
تكون العروض البسيطة، أي التي تستخدم جدولًا واحدًا ولا تحتوي على تجميع أو DISTINCT، قابلة للتحديث — ويمكنكم تنفيذ INSERT/UPDATE/DELETE من خلالها. ويحدّثها PostgreSQL تلقائيًا حيثما أمكن.
العروض المؤهلة بالمخطط
ضعوا عروض الأدوات المساعدة في مخطط مخصص:
CREATE SCHEMA api;
CREATE VIEW api.users_public AS
SELECT id, email, full_name FROM users WHERE deleted_at IS NULL;
GRANT SELECT ON api.users_public TO app_reader;العروض والصلاحيات
يعمل العرض افتراضيًا بامتيازات المستخدم الذي يجري الاستعلام — ولا يزال هذا المستخدم بحاجة إلى صلاحية على الجداول الأساسية. وللسماح لمستخدم منخفض الامتيازات بالاستعلام عن جدول حساس، استخدموا دوال SECURITY DEFINER بدلًا من ذلك.
اعتبارات الأداء
يوسّع المخطِّط العروض ويطبّق تحسيناته المعتادة. وقد تمنع عبارة GROUP BY في العرض دفع شروط التصفية إلى الجداول الأساسية — فقسّموا الاستعلام أو أعيدوا كتابته إذا أظهر EXPLAIN وجود مشكلة.
تبعيات العرض
يُمنع حذف جدول أساسي إذا كان هناك عرض يعتمد عليه. استخدموا DROP TABLE ... CASCADE فقط عندما تقصدون ذلك. أدرجوا العناصر التابعة:
SELECT * FROM pg_depend
WHERE refobjid = 'users'::REGCLASS;مراجعة
العروض هي استعلامات SELECT قابلة لإعادة الاستخدام.
- عرّفوا مرة واحدة واستعلموا مرات عديدة
- التجريد والأمان
- قابلة للتحديث عندما تكون بسيطة
- يُعاد تنفيذها مع كل استعلام — ولا يوجد تخزين مؤقت مضمّن
تحقق سريع
هل يؤدي الاستعلام عن عرض إلى تخزين نتيجته؟
الأسئلة الشائعة
هل درس «العروض العادية: إعادة الاستخدام المنطقية» مجاني؟
نعم — نص درس «العروض العادية: إعادة الاستخدام المنطقية» كامل متاح مجاناً هنا على الويب. لتمرينه بشكل تفاعلي (محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 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 يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- العروض العادية: إعادة الاستخدام المنطقية
- العروض القابلة للتحديث ومشغلات INSTEAD OF
- العروض المادية واستراتيجيات REFRESH
- متى يجب التجميع المسبق