Professional Documents
Culture Documents
االستعالمات Views
Department : Software Engineering – SE : 5
(Amal Saad )MSc of Computer Science )Information System)- UM
الخريف 2021-2020
االستعالمات Views
• قبل التعرف على االستعالمات يجب علينا اوالً ان نتعرف على جملة ).)SELECT
• جملة (:)SELECTهي عبارة عن جملة او تعبير يستخدم في استدعاء السجالت من
الجداول.
1
23/09/1442
االجــــابة-:
-1االستعالم االول:
Use StudentDB
Select * From course
-2االستعالم الثاني:
Use StudentDB
Select matricNo , stName, mobileNo From student
مثال :1في الجدول السابق Courseقم بإنشاء استعالم يقوم بعرض اسم
المادة CNameوكذلك عدد الوحدات مضافا ً اليه العدد (.)2
Use StudentDB
Select cName, Unit+2
From Course
2
23/09/1442
مثال : 2اعد كتابة االستعالم السابق بالشكل التالي وتوقع النتائج -:
Use StudentDB
Select cName, 2*Unit+2
From Course
Use StudentDB
) Select cName, 2*(Unit+2
From Course
ســـؤال :كون جدول يحتوي على القيمة الخالية ( )Nullثم انشاء استعالم
يرجع تلك القيمة وأضف إليها الرقم ()5؟
3
23/09/1442
جملة WHERE
في الجمل السابقة كان يتم استرجاع البيانات بطريقة مباشرة وبسيطة،
ولكن ماذا لو كان هناك شرط معين السترجاع البيانات !!!
في هذه الحالة نستخدم جملة ( )Whereوالتي تكتب بعد السطر الخاص
بـ ( )Fromحيث يكتب الشرط المطلوب .
-الصيغة العامة لها هي-:
)SELECT (expression) FROM (table name) WHERE (condition
مثال :5في الجدول السابق studentقم باسترجاع أسم الطالب عندما يكون
st_ID=70؟
4
23/09/1442
Select stName,BOD,stAdress
From student
Where st_ID=70
مالحظة -:
يمكن استخدام النصوص ايضا ً كشرط للمقارنة مع مالحظة انه اليوجد
مشكلة اذا كانت الحروف كبيرة وتم كتابتها في الشرط بصورة صغيرة
على ان تكتب بين عالمتي اقتباس ‘ ‘.
5
23/09/1442
Use studentDB
* Select
From cTaken
Where grade > 65
مثال :6في الجدول السابق قم باسترجاع رقم القيد matricNoو وتاريخ dateلدرجات
المحصورة بين 75و 84
Select matricNo,date
From cTaken
Where grade Between 75 And 84
مثال :7في جدول Courseقم باسترجاع أسماء المواد التي بها عدد
ساعات العطاء أحدى القيم التالية ()2، 4 ، 6
Select Cname
From course
)Where CreditHour in (2,4,6
6
23/09/1442
.3المعامل : like
يستخدم هذا المعامل في البحث عن أجزاء من النصوص وتستخدم
معه المعامالت التالية-:
.1المعامل ( :)%ويتم التعويض عنه بأي حرف او مجموعة
حروف او الشيء
.2المعامل ’_ ‘ :ويتم التعويض عنه بحرف واحد فقط
.3المعامل ] [ :وهو يعبر عن أي مدى من الحروف او
مجموعة حروف محددة.
.4المعامل ]^ [ :وهو يعبر عن مدى حروف او مجموعة
حروف غير موجودة
عندما يكون اسم المادة على األقل حرفين والحرف الثاني (:)T
SELECT * FROM 'Course where cName like '_T%
7
23/09/1442
اول حرف في االسم البد وان يكون احد الحروف من ( )aالى ( )eوبعد
ذلك أي شيء.
عكس السابقة:
'SELECT * FROM Course where cName like '[^a-e]%
مثال :9في الجدول cTakenقم باسترجاع رقم القيد ورقم المادة للمواد
التي لم ترصد لطالب؟
8
23/09/1442
مثال :10في الجدول Courseقم باسترجاع اسم المواد وذلك عندما تكون عدد الساعات أكثر من
4وعدد الوحدات يساوي .4
Use zStudent
Select courseID,cName From Course
Where CreditHour >4 and Unit =4
-2المعامل (:)or
وهو يستخدم عندما يكون هناك مجموعة من الشروط والتي يجب ان يتحقق
على االقل شرط واحد منها لكي يتم استرجاع البيانات المطلوبة.
1 2
مثال :11في الجدول Courseقم باسترجاع اسم المواد وذلك عندما تكون
عدد الساعات أكثر من 4أوعدد الوحدات يساوي .4
Use StudentDB
Select courseID,cName From Course
Where CreditHour >4 Or Unit =4
9
23/09/1442
-3المعامل (:)not
وهو يستخدم عندما يكون هناك حاجة إلي نفي شرط معين لكي يتم استرجاع
البيانات المطلوبة.
مثال :12في الجدول السابق Courseقم باسترجاع اسم المادة و رمزها وذلك
عندما تكون عدد الوحدات أي قيمة عدا القيم التالية ()2،5،3
Use StudentDB
Select courseID,cName From Course
)Where Unit not in (2,5,3
ويقصد بها أن يتم ترتيب البيانات التي يتم استدعها بنا ًءا على أحد الحقول.
مثال :13في الجدول السابق قم باسترجاع اسماء الطلبة مرتبة ابجديا ً من
.A to Z
Use StudentDB
Select * From Student Order by stName )-- > ( ASC
في هذا المثال نالحظ ان الترتيب يكون تصاعدي ولكن إذا اردنا أن يكون
الترتيب بصورة تنازلية فنكتب جملة ( ) descبعد اسم الحقل مباشرة.
Order by stName desc
10
23/09/1442
مثال :14قم باسترجاع اسم الطالب والمواد التي تم تنزيلها من الجداول Studentو cTakenو
Course؟
Use StudentDB
Select Student.matricNo,stName,cName
From Student,Course,cTaken
Where student.matricNo = cTaken.matricNo
And Course.CourseId = cTaken.CourseID
Use StudentDB
Select matricNo,cName,grade
From Course inner join cTaken
On Course.CourseID= cTaken.CourseID
11
23/09/1442
مثال : 15أعرض جميع المواد والدرجات التي رصدت لطلبة بهذه المواد ؟
Use StudentDB
Select matricNo,cName,grade
From Course cross join cTaken
.5النوع (-:)except
ويقصد االستثناء أي انه لو كان لدينا مدى معين من الحقول ونريد ان نستثني جزئية
معينة من هذا المدى فاننا نستخدم هذا النوع ( أي البيانات التي تنتمي للجملة االولى
وبشرط ان التنتمي الى الثانية).
مثال :16قم بعرض اسماء الطلبة ودرجاتهم واستني من ذالك الطلبة الذين
تحصلوا على درجات بين 50و ( 54مقبول)؟
Use StudentDB
Select student.matricNo,stName,courseID,grade
From student,cTaken
Where grade between 0 and 100
EXCEPT
Select student.matricNo,stName,courseID,grade
From student,cTaken
Where grade between 50 and 54
12
23/09/1442
وهو عكس النوع السابق بحيث يقوم باسترجاع البيانات المطلوبة في المدى المحدد
االول والمدى المحدد الثاني( اى بمعنى استرجاع البيانات التي تنتمي الى الجملة
االولى والجملة الثانية).
مثال : 17نفذ المثال السابق مع وضع ( )intersectبدالً من ( )exceptوتوقع النتائج.
مثال : 18قم بعرض اسماء الطلبة ودرجاتهم الذين تحصلوا على على درجات بين
50و ( 54مقبول)؟
Use StudentDB
Select student.matricNo,stName,courseID,grade
From student,cTaken
Where grade between 0 and 100
INTERSECT
Select student.matricNo,stName,courseID,grade
From student,cTaken
Where grade between 50 and 54
األمر كيف يتم انشاء االستعالم :يتم انشاء االستعالم وذلك باستخدام
(.)CreateView
Use StudentDB
GO
Create View view_student
AS
Select * From student
قم بكتابة عدد من االستعالمات وتخزينها بنا ًءا على ما تم دراسته سابقا ً.
13
23/09/1442
تمارين:
استخدم قاعدة البيانات Northwidإليجاد التالي :
من الجدول Customerقم باسترجاع اسم الشركة واسم المندوب و رقم الهاتف .1
وذلك عندما يكون أسم المنتج يبدأ بالحرفين ’ ‘CO؟
في الجدول السابق قم باسترجاع اسم المنتج وسعر الوحدة و الوصف الخاص بالمنتج .2
وذلك عندما تكون الكمية اكبر من 100وسعر الوحدة يساوي .8.50
في الجدول السابق قم باسترجاع اسم المنتج وسعر الوحدة و الوصف الخاص بالمنتج .3
وذلك عندما تكون الكمية أي قيمة عدا القيم التالية ()10،200،1000
في الجدول السابق قم باسترجاع اسم المنتج وسعر الوحدة و الوصف الخاص بالمنتج .4
بحيث تكون البيانات مرتبه بنا ًءا على اسم المنتج.
قم باسترجاع اسم الزبون والطلب الخاص به من الجدولين customersو .5
C_Order؟
قم بعرض اسماء الزبائن والطلبات التابعة لهم من جدول customersو C_order .6
وذلك باستخدام هذا النوع؟
14
23/09/1442
Questions?
29
15