عبارة SELECT في SQL
يتم استخدام عبارة SELECTلتحديد البيانات واظهارها أو استخراجها من قاعدة البيانات وعرضها. يتم تخزين البيانات التي تم استرجاعها وعرضها في جدول نتائج يسمى مجموعة النتائج Result-Set.
بناء جملة SELECT
الشكل العام لاستخدام وبناء أمر SELECTفي لغة SQL(أي SELECT Syntax) يتم كما يلي:
SELECT Column1, Column2, ... From table_name; |
حيث يمثل العمود الأول Column 1، والعمود الثاني Column 2أسماء حقول الجدول الذي تريد تحديد واستخراج البيانات منه. ويمثل الاسم table_name اسم ذلك الجدول. إذا كنت تريد تحديد جميع الحقول المتوفرة في الجدول، فاستخدم بناء الجملة التالية:
SELECT * FROM table_name; |
مثال على استخدام أمر SELECT في SQL
الجدول التالي يوضح مجموعة مختارة من جدول "الزبائن" Customers
Country | City | Address | CustomerName | CustomerID |
UK | London | 120 Hanover Sq. | John | 100 |
USA | New York | 109 E 16th St | Marry | 200 |
Jordan | Amman | Al-Mutanabbi St. | Ahmad | 300 |
USA | New York | 110 E 20th St | Ali | 400 |
Egypt | Cairo | El Tahrir St | Ahmad | 500 |
مثال 1: تحديد وإظهار حقول محددة ومختارة باستخدام SELECT
فرضاً أننا أردنا اظهار "اسم الزبون" CustomerNameو"المدينة" التي يعيش فيها فقط City. تحدد جملة SQLالتالية عمودي "CustomerName" و "City" من جدول "Customers":
SELECT CustomerName, City FROM Customers; |
ليظهر الجدول التالي:
City | CustomerName |
London | John |
New York | Marry |
Amman | Ahmad |
New York | Ali |
Cairo | Ahmad |
مثال 2: تحديد وإظهار جميع الحقول (الأعمدة) باستخدام الأمر SELECT *
تقوم عبارة SQLالتالية بتحديد وإظهار جميع الأعمدة (أي الحقول) من جدول "الزبائن" Customers:
SELECT * FROM Customers; |
العبارة SELECT DISTINCT في SQL
يتم استخدام عبارة SELECT DISTINCT لإرجاع قيم مميزة (مختلفة) فقط واستثناء اظهار المكرر منها.
داخل الجدول، يحتوي العمود (الحقل) غالباً على العديد من القيم المكررة؛ وأحياناً تريد فقط سرد وإظهار القيم المختلفة فقط أي (Distinct) ومن دون أن يتم إظهار المكرر من تلك القيم.
بناء جملة SELECT DISTINCT
الشكل العام لاستخدام وبناء الأمر SELECT DISTINCTفي لغة SQL(أي SELECT DISTINCT Syntax) تتم كما يلي:
SELECT DISTINCT Column1, Column2 FROM table_name; |
حيث يمثل العمود الأول Column 1، والعمود الثاني Column 2أسماء حقول الجدول الذي تريد تحديد واستخراج البيانات منها بدون تكرار.
مثال على استخدام أمر SELECT DISTINCT في SQL
الجدول التالي يوضح مجموعة مختارة من جدول "الزبائن" Customers
Country | City | Address | CustomerName | CustomerID |
UK | London | 120 Hanover Sq. | John | 100 |
USA | New York | 109 E 16th St | Marry | 200 |
Jordan | Amman | Al-Mutanabbi St. | Ahmad | 300 |
USA | New York | 110 E 20th St | Ali | 400 |
Egypt | Cairo | El Tahrir St | Ahmad | 500 |
نلاحظ في الجدول أعلاه، أن الحقل (العمود) Country يشمل على قيمة مكررة مثل USA وأن حقل الأسماء CustomerName يشمل على اسم مكرر مثل Ahmad، ومن هنا يأتي دور الأمر SELECT DISTINCTوالذي يقوم بإظهار القيم في العمود أو الحقل المطلوب من دون أن يظهر القيم المكررة الأخرى.
مثال على الأمر SELECT بدون DISTINCT
كما نعلم سابقاً، تقوم جملة SQL التالية بإظهار جميع القيم (بما في ذلك القيم المتكررة) من العمود "البلد" Country في جدول "الزبائن" Customersكما يلي:
SELECT Country FROM Customers; |
Country |
UK |
USA |
Jordan |
USA |
Egypt |
مثال على الأمر SELECT مع DISTINCT
الآن، دعنا نستخدم الكلمة الأساسية DISTINCT مع عبارة SELECT أعلاه ونرى النتيجة.
SELECT DISTINCT Country FROM Customers; |
الجدول الظاهر من استخدام العبارة السابقة هو
Country |
UK |
USA |
Jordan |
Egypt |
لاحظ أنه تم اظهار الكلمة USAمرة واحدة ولم يتم اظهار القيمة المتكررة الأخرى.
حساب عدد مدخلات الحقل غير المتكررة في جدول قواعد بيانات SQL
في بعض الأحيان، وعند وجود قيم متكررة في نفس الحقل، يتم استخدام دالة COUNT لحساب عدد المدخلات المتمايزة المختلفة في الحقل المطلوب كما يلي
SELECT COUNT (DISTINCT Country) FROM Customers; |
ملاحظة: المثال أعلاه لن يعمل في بيئة ميكروسوفت أكسس Microsoft Access؛ لأن الأمر COUNT(DISTINCT column_name) غير معتمد في قواعد بيانات Microsoft Access. لذلك، وكبديل لذلك الأمر، تستخدم قواعد بيانات أكسس Accessالأمر التالي:
SELECT COUNT (*) AS DistinctCountries FROM (SELECT DISTINCT Country FROM Customers); |