جملة التحديد 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.. للتنزيل: