logo

طرق عرض SQL

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

يمكنه جلب البيانات من جدول واحد أو أكثر وتقديمها بتنسيق مخصص يسمح للمطورين بما يلي:

  • تبسيط الاستعلامات المعقدة: تغليف الصلات والشروط المعقدة في كائن واحد.
  • تعزيز الأمن: تقييد الوصول إلى أعمدة أو صفوف محددة.
  • تقديم البيانات بمرونة: توفير طرق عرض بيانات مخصصة لمختلف المستخدمين.

سوف نستخدم هذين الجدولين SQL للحصول على أمثلة.



تفاصيل الطالب:

-- Create StudentDetails table  
CREATE TABLE StudentDetails (
S_ID INT PRIMARY KEY
NAME VARCHAR(255)
ADDRESS VARCHAR(255)
);

INSERT INTO StudentDetails (S_ID NAME ADDRESS)
VALUES
(1 'Harsh' 'Kolkata')
(2 'Ashish' 'Durgapur')
(3 'Pratik' 'Delhi')
(4 'Dhanraj' 'Bihar')
(5 'Ram' 'Rajasthan');

الإخراج:

S_ID

اسم

عنوان

1

صارِم

كولكاتا

2

اشيش

دورجابور

3

يمارس

دلهي

4

دانراج

بيهار

5

كبش

راجستان

علامات الطالب:

-- Create StudentMarks table  
CREATE TABLE StudentMarks (
ID INT PRIMARY KEY
NAME VARCHAR(255)
Marks INT
Age INT
);

INSERT INTO StudentMarks (ID NAME Marks Age)
VALUES
(1 'Harsh' 90 19)
(2 'Suresh' 50 20)
(3 'Pratik' 80 19)
(4 'Dhanraj' 95 21)
(5 'Ram' 85 18);

الإخراج:

بطاقة تعريف

اسم

ماركس

عمر

1

صارِم

90

19

2

سوريش

50

20

3

يمارس

80

19

4

دانراج

95

21

5

كبش

85

18

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

يمكننا إنشاء طريقة عرض باستخدام عبارة CREATE VIEW. يمكن إنشاء طريقة عرض من جدول واحد أو جداول متعددة.

بناء الجملة:

CREATE VIEW view_name AS  
SELECT column1 column2.....
FROM table_name
WHERE condition;

المصطلحات الرئيسية:

  • view_name : اسم العرض
  • table_name : اسم الجدول
  • حالة : شرط لتحديد الصفوف

المثال 1: إنشاء طريقة عرض بسيطة من جدول واحد

مثال 1.1: في هذا المثال سوف نقوم بإنشاء طريقة عرض تسمى عرض التفاصيل من الجدول تفاصيل الطالب.

استفسار:

CREATE VIEW DetailsView AS  
SELECT NAME ADDRESS
FROM StudentDetails
WHERE S_ID < 5;

استخدم الاستعلام أدناه لاسترداد البيانات من طريقة العرض هذه

SELECT * FROM DetailsView;

الإخراج: 

اسم

عنوان

صارِم

كولكاتا

اشيش

دورجابور

يمارس

دلهي

دانراج

بيهار

مثال 1.2: سنقوم هنا بإنشاء طريقة عرض باسم StudentNames من الجدول StudentDetails.

استفسار:

CREATE VIEW StudentNames AS  
SELECT S_ID NAME
FROM StudentDetails
ORDER BY NAME;

إذا قمنا الآن بالاستعلام عن العرض كـ

    SELECT    *     FROM    StudentNames;

الإخراج: 

S_ID

اسم

2

اشيش

4

دانراج

1

صارِم

3

يمارس

5

كبش

روجيرا بانيرجي

المثال 2: إنشاء طريقة عرض من جداول متعددة

في هذا المثال، سنقوم بإنشاء View MarksView الذي يجمع البيانات من كلا الجدولين StudentDetails وStudentMarks. لإنشاء طريقة عرض من جداول متعددة، يمكننا ببساطة تضمين جداول متعددة في ملف يختار إفادة.

استفسار:

CREATE VIEW MarksView AS  
SELECT StudentDetails.NAME StudentDetails.ADDRESS StudentMarks.MARKS
FROM StudentDetails StudentMarks
WHERE StudentDetails.NAME = StudentMarks.NAME;

لعرض بيانات عرض MarksView:

SELECT * FROM MarksView;

الإخراج:

اسم

عنوان

ماركس

صارِم

كولكاتا

90

يمارس

دلهي

80

دانراج

بيهار

95

كبش

راجستان

85

إدارة طرق العرض: تحديث القائمة وحذفها

1. إدراج جميع طرق العرض في قاعدة البيانات

يمكننا سرد جميع طرق العرض في قاعدة البيانات باستخدام عبارة SHOW FULL TABLES أو عن طريق الاستعلام عن جداول information_schema.

USE 'database_name';  
SHOW FULL TABLES WHERE table_type LIKE '%VIEW';

باستخدام information_schema

SELECT table_name  
FROM information_schema.views
WHERE table_schema = 'database_name';

OR

SELECT table_schema table_name view_definition
FROM information_schema.views
WHERE table_schema = 'database_name';

2. حذف طريقة العرض

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

بناء الجملة:

DROP VIEW view_name;

مثال: في هذا المثال نقوم بحذف View MarksView.

DROP VIEW MarksView;

3. تحديث تعريف العرض

إذا أردنا تحديث البيانات الموجودة داخل العرض، استخدم  تحديث  إفادة.

UPDATE view_name  
SET column1 = value1 column2 = value2.... columnN = valueN
WHERE [condition];

إذا كنت تريد تحديث تعريف العرض دون التأثير على البيانات، فاستخدم عبارة إنشاء أو استبدال العرض. على سبيل المثال دعونا نضيفAgeالعمود إلىMarksView:

CREATE OR REPLACE VIEW view_name AS  
SELECT column1 column2 ...
FROM table_name
WHERE condition;

ملحوظة: لا يمكن تحديث كافة طرق العرض باستخدام عبارة UPDATE.

قواعد لتحديث طرق العرض في SQL:

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

  1. يجب ألا تتضمن عبارة SELECT المستخدمة لإنشاء طريقة العرض عبارة GROUP BY أو الطلب حسب بند.
  2. يجب ألا تحتوي عبارة SELECT على متميز الكلمة الرئيسية.
  3. يجب أن يحتوي العرض على جميع القيم NOT NULL.
  4. لا ينبغي إنشاء طريقة العرض باستخدام استعلامات متداخلة أو استعلامات معقدة.
  5. يجب إنشاء العرض من جدول واحد. إذا تم إنشاء العرض باستخدام جداول متعددة، فلن يُسمح لنا بتحديث العرض.

تقنيات متقدمة مع وجهات النظر

1. تحديث البيانات من خلال المشاهدات

يمكننا استخدام عبارة CREATE OR REPLACE VIEW لإضافة أو استبدال الحقول من طريقة عرض إذا أردنا تحديث طريقة العرض MarksView وإضافة الحقل AGE إلى طريقة العرض هذه من جدول StudentMarks يمكننا القيام بذلك عن طريق:

مثال:

CREATE OR REPLACE VIEW MarksView AS  
SELECT StudentDetails.NAME StudentDetails.ADDRESS StudentMarks.MARKS StudentMarks.AGE
FROM StudentDetails StudentMarks
WHERE StudentDetails.NAME = StudentMarks.NAME;

إذا جلبنا جميع البيانات من MarksView الآن على النحو التالي:

SELECT * FROM MarksView;

الإخراج:

اسم

عنوان

ماركس

عمر

صارِم

كولكاتا

90

19

يمارس

دلهي

80

19

دانراج

بيهار

95

21

كبش

راجستان

85

18

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

مثال:

INSERT INTO DetailsView(NAME ADDRESS)  
VALUES('Suresh''Gurgaon');

إذا قمنا بجلب كافة البيانات من عرض التفاصيل الآن باسم

SELECT * FROM DetailsView;

الإخراج:

اسم

عنوان

log4j

صارِم

كولكاتا

اشيش

دورجابور

يمارس

دلهي

دانراج

بيهار

سوريش

جورجاون

3. حذف صف من طريقة العرض

يعد حذف الصفوف من طريقة العرض أمرًا بسيطًا أيضًا مثل حذف الصفوف من الجدول. يمكننا استخدام عبارة DELETE الخاصة بـ SQL لحذف الصفوف من طريقة العرض. يؤدي أيضًا حذف صف من طريقة العرض إلى حذف الصف من الجدول الفعلي أولاً ثم ينعكس التغيير في طريقة العرض. في هذا المثال، سنقوم بحذف الصف الأخير من طريقة العرض "عرض التفاصيل" الذي أضفناه للتو في المثال أعلاه لإدراج الصفوف.

مثال:

DELETE FROM DetailsView  
WHERE NAME='Suresh';

إذا قمنا بجلب كافة البيانات من عرض التفاصيل الآن باسم

SELECT * FROM DetailsView;

الإخراج: 

اسم

عنوان

صارِم

كولكاتا

اشيش

دورجابور

يمارس

دلهي

دانراج

بيهار

4. مع بند خيار الاختيار

تعد جملة "مع التحقق من الخيار" في SQL عبارة مفيدة جدًا لطرق العرض. ينطبق على طريقة عرض قابلة للتحديث. يتم استخدامه لمنع تعديل البيانات (باستخدام INSERT أو UPDATE) إذا لم يتم استيفاء الشرط الموجود في جملة WHERE في عبارة CREATE VIEW.

إذا استخدمنا جملة مع خيار التحقق في عبارة CREATE VIEW وإذا كانت جملة UPDATE أو INSERT لا تفي بالشروط، فسوف يُرجعون خطأ. في المثال أدناه، نقوم بإنشاء عرض SampleView من جدول StudentDetails باستخدام عبارة "مع خيار التحقق".

مثال:

CREATE VIEW SampleView AS  
SELECT S_ID NAME
FROM StudentDetails
WHERE NAME IS NOT NULL
WITH CHECK OPTION;

في طريقة العرض هذه، إذا حاولنا الآن إدراج صف جديد بقيمة فارغة في عمود الاسم، فسيعطي خطأ لأنه تم إنشاء العرض بشرط عمود الاسم على أنه ليس فارغًا. على سبيل المثال، على الرغم من أن طريقة العرض قابلة للتحديث، فإن الاستعلام أدناه لطريقة العرض هذه غير صالح أيضًا:

INSERT INTO SampleView(S_ID)  
VALUES(6);
إنشاء اختبار