أهم أقسام المدونة

الصفحات

الأحد، 31 يوليو 2016

جملة التحديد SELECT Statement


جملة التحديد SELECT Statement:

تمكنك الجملة SELECT من إنشاء اسنعلام SQL يسترجع جزءا من صفوف الجدول.. وأبسط صورة لهذه الجملة هي:
SELECT أسماء الأعمدة
FROM أسماء الجداول
لاحظ ما يلي:
1- جمل SQL غير حساسة لحالة الأحرف، لكن جرى العرف على كتابة كلماتها المفتاحية كاملة بحروف كبيرة Capital على سبيل التمييز، لهذا لو كتبت select فلن تختلف في شيء عن Select ولا عن SELECT.

2- أسماء الأعمدة والجداول يفصل بينها العلامة ",".. مثال:
SELECT Author, Book
FROM    Authors, Books
لاحظ أنك لو جرّبت هذا المثال فستفاجأ بنتائج غريبة، حيث سيتم تكرار كل سجل من سجلات المؤلفين مع كل أسماء الكتب، ممّا يبدو معه كأن كل مؤلف قد ألف كل الكتب!.. هذا خطأ متوقّع، لأننا لم نضع أيّ شرط يوضح طريقة الربط بين حقول الجدولين، وهو ما سنتعلمه بعد قليل.

3- إذا كان اسم الجدول أو اسم الحقل يحتوي على أيّ رموز غير مقبولة برمجيّا (مثل المسافات أو العلامات ":" أو "+" أو "=" ... إلخ) فيجب وضعه بين قوسين مضلعين [ ].. وعامة، يمكنك وضع اسم أي جدول أو اسم أي حقل بين قوسين مضلعين.. مثال:
SELECT [Author], [Book]
FROM    [Authors], [Books]

4- إذا تشابهت بعض أسماء الحقول في أكثر من جدول، فيجب التمييز بينها بكتابة اسم كل حقل على الصيغة: (اسم الجدول.اسم الحقل).. وعموما، يمكنك كتابة اسم الجدول قبل اسم أي حقل حتى ولو لم يكن له شبيه.. مثال:
SELECT [Authors].[Author], [Books].[Book]
FROM    [Authors], [Books]
ويمكنك إزالة الأقواس المضلعة إذا لم تكن هناك حاجة إليها:
SELECT Authors.Author, Books.Book
FROM    Authors, Books

5- ستظهر الحقول في السجلات المعادة بالترتيب الذي كتبت أسماءها به في جملة SELECT.. هذا يعني أن الحقل Author سيظهر أولا ثم الحقل Book في نتيجة الاستعلام السابق.

6- يمكنك كتابة جملة SQL على أكثر من سطر، فهي ليست كأوامر فيجيوال بيزيك تنتهي بنهاية السطر، ولكنها كأوامر C# تنتهي بالفاصلة المنقوطة ";"، وإن كان من الممكن عدم كتابة الفاصلة المنقوطة كاختصار.. هذا معناه أن الجملة التالية صحيحة:
SELECT Author, Book FROM Authors, Books
لكن تقسيمها على سطرين يجعل قراءتها أسهل.. هذا مجرد تنسيق.

7- معظم الأخطاء التي تحدث في كتابة جملة SQL تنتج عن الخطإ في كتابة أسماء الحقول والجداول، فانتبه لذلك جيّدا.

8- لتحديد كل سجلات الجدول، يمكنك كتابة أسمائها جميعا والفصل بينها بالفاصلة.. ولكن هذا سيكون مأساويا لو كان الجدول يحتوي على عشرين عمودا مثلا!.. لهذا تمنحك SQL تسهيلا رائعا، وهو استخدام العلامة "*" (أو الكلمة ALL) للدلالة على تحديد كل أعمدة الجدول كالتالي:
SELECT *
FROM Authors
أو:
SELECT All
FROM Authors
ولو أردت استرجاع كل الحقول من جدولين، فاستخدم جملة كالتالية:
SELECT Authors.*, Books.*
FROM Authors, Books

9- يمكنك كتابة اسم مختصر للجدول بعد اسمه الحقيقيّ مباشرةً، واستخدامه في باقي جملة الاستعلام للتسهيل.. مثال:
SELECT A.*, B.ID, B.Book
FROM Authors A, Books B
كما يمكنك استخدام الكلمة AS بين الاسم الحقيقي والاسم المختصر كالتالي:
SELECT A.*, B.ID, B.Book
FROM Authors As A, Books As B

من كتاب: من الصفر إلى الاحتراف برمجة قواعد البيانات في فيجوال بيزيك دوت نت ADO .NET.. للتنزيل:

هناك تعليقان (2):

  1. نبي حل السؤال هذا لو سمحت����
    أين من الجمل التأليه جمل تحديد قانونيه ؟ وليماذا؟
    ;C:=1
    ;C:=l

    ردحذف
  2. نبي حل السؤال هذا لو سمحت����
    أين من الجمل التأليه جمل تحديد قانونيه ؟ وليماذا؟
    ;C:=1
    ;C:=l

    ردحذف

ملحوظة: يمكن لأعضاء المدونة فقط إرسال تعليق.