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

ما هي وجهات النظر في 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 وتوسيع عقدة العرض في مستكشف قاعدة البيانات يعطينا النتائج التالية.
لاحظ أن كائن 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 لا يقوم العرض إلا بإزالة الاستعلام المخزن؛ أما الجداول الأساسية وبياناتها فتبقى دون تغيير.

