MySQL طرق العرض: كيفية إنشاء عرض من الجداول

⚡ ملخص ذكي

MySQL تُعدّ طرق العرض جداول افتراضية لا تخزن أي بيانات خاصة بها، بل تعرض نتيجة استعلام SELECT مُخزّن. يشرح هذا المورد كيفية إنشاء طرق العرض والاستعلام عنها وربطها وحذفها، مع أمثلة عملية من قاعدة بيانات myflixdb.

  • 🧱 التعريف الأساسي: العرض عبارة عن عبارة SELECT مسماة تتصرف مثل الجدول ولكنها لا تحتوي على أي بيانات.
  • 🔐 فائدة أمنية: لا تعرض طرق العرض سوى الأعمدة المصرح بها وتبقي الحقول الحساسة مخفية عن المستخدمين.
  • ♻️ ميزة إعادة الاستخدام: يتم كتابة عبارة JOIN المعقدة متعددة الجداول مرة واحدة وإعادة استخدامها كعبارة SELECT من سطر واحد.
  • 🛠️ صيغة الإنشاء: يُعرّف الأمر CREATE VIEW `view_name` AS SELECT طريقة العرض داخل قاعدة البيانات.
  • 🗑️ أوامر دورة الحياة: يُظهر الأمر SHOW CREATE VIEW الاستعلام المخزن، بينما يقوم الأمر DROP VIEW بحذفه دون المساس بالجداول الأساسية.

MySQL المشاهدات

ما هي وجهات النظر في MySQL?

وجهات نظر هي جداول افتراضية لا تقوم بتخزين أي بيانات خاصة بها ولكنها تعرض البيانات المخزنة في جداول أخرى. بمعنى آخر، طرق العرض ليست سوى استعلامات SQL. يمكن أن تحتوي طريقة العرض على كافة الصفوف أو بضعة صفوف من الجدول. أ MySQL يمكن للعرض إظهار البيانات من جدول واحد أو عدة جداول.

MySQL بناء جملة المشاهدات

دعونا الآن نلقي نظرة على بناء الجملة الأساسي المستخدم لإنشاء عرض فيه MySQL.

CREATE VIEW `view_name` AS SELECT statement;

WHERE

  • "إنشاء عرض `اسم_العرض`" يروي MySQL الخادم لإنشاء كائن عرض في قاعدة البيانات باسم "view_name".
  • "بيان AS SELECT" هي عبارات SQL التي سيتم تعبئتها في ملف MySQL الآراء. يمكن أن تحتوي عبارة SELECT على بيانات من جدول واحد أو جداول متعددة.

لماذا استخدام وجهات النظر؟

قبل بناء أي منها، من المفيد معرفة ما الذي يوفره لك المنظر بالفعل.

قد ترغب في استخدام وجهات النظر بشكل أساسي للأسباب الثلاثة التالية

  • في النهاية، ستستخدم SQL المعرفة اللازمة لإنشاء تطبيقات تستخدم قاعدة بيانات لتلبية متطلبات البيانات. يُنصح باستخدام طرق عرض (VIEWS) لهيكل الجدول الأصلي في تطبيقك بدلاً من استخدام الجداول نفسها. يضمن هذا أنه عند إعادة هيكلة قاعدة البيانات، سيتمكن الكود القديم من رؤية المخطط الأصلي عبر طريقة العرض دون التأثير على التطبيق.
  • تزيد طرق العرض من إمكانية إعادة الاستخدام. لن تضطر إلى إنشاء استعلامات معقدة تتضمن عمليات الانضمام بشكل متكرر. يتم تحويل كل التعقيد إلى سطر واحد من الاستعلام باستخدام طرق العرض. سيكون من الأسهل دمج هذا الكود المكثف في تطبيقك. سيؤدي هذا إلى القضاء على احتمالات الأخطاء المطبعية وسيكون الكود الخاص بك أكثر قابلية للقراءة.
  • تساعد طرق العرض في تأمين البيانات. يمكنك استخدام طرق العرض لإظهار المعلومات المسموح بها فقط للمستخدمين وإخفاء البيانات الحساسة مثل أرقام بطاقات الائتمان.

كيفية إنشاء طرق عرض في MySQL

بعد تحديد الصيغة والفوائد، تقوم الخطوات التالية ببناء عرض عمل متكامل من البداية إلى النهاية.

فيما يلي عملية خطوة بخطوة لإنشاء عرض في MySQL:

الخطوة 1) قم بإنشاء العرض الأول الخاص بنا باستخدام "myflixdb"

لنقم الآن بإنشاء العرض الأول الخاص بنا باستخدام "myflixdb" حيث سنقوم بإنشاء عرض بسيط يقيد الأعمدة التي تظهر في جدول الأعضاء.

لنفترض أن متطلبات التفويض تنص على أن قسم الحسابات لا يمكنه رؤية سوى رقم العضو واسمه وجنسه من جدول الأعضاء. لتحقيق ذلك، يمكنك إنشاء عرض (VIEW) –

CREATE VIEW `accounts_v_members` AS SELECT `membership_number`,`full_names`,`gender` FROM `members`;

الخطوة 2) توسيع عقدة وجهات النظر

تنفيذ البرنامج النصي أعلاه في MySQL إن العمل مع myflixdb وتوسيع عقدة العرض في مستكشف قاعدة البيانات يعطينا النتائج التالية.

إنشاء طرق عرض في MySQL

لاحظ أن كائن account_v_members أصبح الآن مرئيًا في كائنات عرض قاعدة البيانات.

الخطوة 3) تنفيذ عبارة SELECT

لننفذ الآن أ اختيار البيان الذي يحدد كافة الحقول من العرض كما هو موضح أدناه MySQL إنشاء مثال للعرض.

SELECT * FROM `accounts_v_members`;

الخطوة 4) تنفيذ البرنامج النصي

تنفيذ البرنامج النصي أعلاه في MySQL يعطينا workbench ضد myflixdb النتائج التالية الموضحة أدناه.

membership_number full_names gender
1 Janet Jones Female
2 Janet Smith Jones Female
3 Robert Phil Male
4 Gloria Williams Female
5 Leonard Hofstadter Male
6 Sheldon Cooper Male
7 Rajesh Koothrappali Male
8 Leslie Winkle Male
9 Howard Wolowitz Male

تم عرض الأعمدة المعتمدة فقط لقسم الحسابات. أما التفاصيل الأخرى الموجودة في جدول الأعضاء فقد تم إخفاؤها.

إذا أردنا رؤية عبارات SQL التي تشكل طريقة عرض معينة، فيمكننا استخدام البرنامج النصي الموضح أدناه للقيام بذلك.

SHOW CREATE VIEW `accounts_v_members`;

يمنحك تنفيذ البرنامج النصي أعلاه اسم العرض وعبارات SQL SELECT المستخدمة لإنشاء العرض.

الانضمامات والمشاهدات في MySQL

يُعدّ عرض الجدول الواحد أبسط الحالات. وتزداد قيمة العروض بشكل كبير عندما تُغلّف استعلامًا متعدد الجداول.

دعونا الآن نلقي نظرة على مثال معقد إلى حد ما يتضمن جداول متعددة ويستخدم ينضم.

سنقوم بتجميع JOIN الذي تم إنشاؤه والذي يحصل على معلومات من ثلاثة (3) جداول وهي الأعضاء والأفلام وتأجير الأفلام. وفيما يلي النص الذي يساعدنا على تحقيق ذلك.

CREATE VIEW `general_v_movie_rentals` AS SELECT mb.`membership_number`,mb.`full_names`,mo.`title`,mr.`transaction_date`,mr.`return_date`
FROM `movierentals` AS mr
INNER JOIN `members` AS mb ON mr.`membership_number` = mb.`membership_number`
INNER JOIN `movies` AS mo ON mr.`movie_id` = mo.`movie_id`;

يؤدي تنفيذ البرامج النصية أعلاه إلى إنشاء العرض المسمى General_v_movie_rentals في myflixdb الخاص بنا

لنقم الآن بتحديد كافة الحقول من جدول يسمى General_v_movie_rentals.

SELECT * FROM `general_v_movie_rentals`;

تنفيذ البرنامج النصي أعلاه في MySQL طاولة العمل مقابل myflixdb يعطينا النتائج التالية الموضحة أدناه.

membership_number full_names title transaction_date return_date
1 Janet Jones Pirates of the Caribean 4 20-06-2012 28-06-2012
1 Janet Jones Forgetting Sarah Marshal 22-06-2012 25-06-2012
3 Robert Phil Forgetting Sarah Marshal 22-06-2012 25-06-2012
2 Janet Smith Jones Forgetting Sarah Marshal 21-06-2012 24-06-2012
3 Robert Phil X-Men 23-06-2012 28-06-2012

لاحظ أننا لم نكن مضطرين إلى كتابة استعلام JOIN المعقد للحصول على معلومات حول الأعضاء والأفلام وتفاصيل تأجير الأفلام. لقد استخدمنا ببساطة العرض في عبارة SELECT عادية مثل أي جدول عادي آخر. يمكن استدعاء العرض من أي مكان في نظام التطبيق الذي يعمل أعلى myflixdb.

قطرةping المشاهدات في MySQL

يمكن استخدام أمر DROP لحذف طريقة عرض من الملف قاعدة بيانات هذا لم يعد مطلوبا. بناء الجملة الأساسي لإسقاط طريقة العرض هو كما يلي.

DROP VIEW `general_v_movie_rentals`;

قطرةping لا يقوم العرض إلا بإزالة الاستعلام المخزن؛ أما الجداول الأساسية وبياناتها فتبقى دون تغيير.

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

أحيانًا. تعمل أوامر INSERT وUPDATE وDELETE فقط على العروض البسيطة التي تحتوي على جميع الأعمدة غير الفارغة في الجدول الأساسي. أما العروض المبنية على عمليات الربط أو الدوال التجميعية فلا يمكن تحديثها.

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

لا. يقوم العرض بتشغيل استعلام SELECT الأساسي في كل استدعاء، لذا فإن الأداء يطابق الاستعلام الأصلي. MySQL لا يحتوي على طرق عرض مادية، ولا تزال السرعة تعتمد على فهارس الجدول الأساسي.

نعم. مساعدو الذكاء الاصطناعي في أدوات مثل MySQL طاولة العمل يمكنك صياغة عبارة CREATE VIEW من وصف. تحقق من قائمة الأعمدة ومفاتيح الربط قبل تشغيلها.

جزئياً. يمكن للذكاء الاصطناعي تحديد الأعمدة الحساسة، مثل أرقام البطاقات، واقتراح قائمة أعمدة أكثر أماناً. مع ذلك، يجب أن يلتزم القرار النهائي بسياسة الوصول إلى البيانات الخاصة بمؤسستك.

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