---
title: SQL Syntax
localeTitle: بناء جملة SQL
---
## بناء جملة SQL

### المقدمة

يوفر هذا الدليل وصفًا أساسيًا وعالي المستوى لبنية جملة عبارات SQL.

تعتبر SQL معيارًا دوليًا (ISO) ، ولكنك ستجد العديد من الاختلافات بين عمليات التنفيذ. يستخدم هذا الدليل MySQL كمثال. إذا كنت تستخدم أحد مديري قواعد البيانات العلائقية الأخرى (DBMS) ، فستحتاج إلى التحقق من دليل نظام إدارة قواعد البيانات (DBMS) هذا إذا لزم الأمر.

### ما سوف نغطي

*   الاستخدام (يحدد قاعدة البيانات التي سيستخدمها البيان)
*   اختر من جمل
*   حيث البند (و / أو ، IN ، بين ، LIKE)
*   اطلب بواسطة (ASC، DESC)
*   مجموعة من قبل وبعد

### كيف يستعمل هذا

يتم استخدام هذا لتحديد قاعدة البيانات التي تحتوي على جداول عبارات SQL الخاصة بك:

 `use fcc_sql_guides_database; -- select the guide sample database 
` 

### اختر من جمل

يُستخدم الجزء Select عادةً لتحديد أعمدة البيانات التي تريد إظهارها في النتائج. هناك أيضًا خيارات يمكنك استخدامها لعرض البيانات التي لا تمثل عمودًا في الجدول.

يوضح هذا المثال عمودين تم تحديدهما من جدول "الطالب" ، واثنين من الأعمدة المحسوبة. أول عمود محسوب هو رقم لا معنى له ، والآخر هو تاريخ النظام.

 `    select studentID, FullName, 3+2 as five, now() as currentDate 
    from student; 
` 

![صورة 1](https://github.com/SteveChevalier/guide-images/blob/master/syntax01.JPG)

### حيث البند (و / أو ، IN ، بين و LIKE)

يتم استخدام جملة WHERE لتحديد عدد الصفوف التي يتم إرجاعها.

في هذه الحالة سيتم استخدام كل خمسة من هذه سخيفة إلى حد ما حيث جملة.

قارن هذه النتيجة بعبارة SQL المذكورة أعلاه لمتابعة هذا المنطق.

سيتم عرض الصفوف التالية:

*   امتلاك هويات الطلاب بين 1 و 5 (ضمنا)
*   أو studentID = 8
*   أو لديك "Maxmimo" في الاسم

المثال التالي مشابه ، لكنه يحدد كذلك أنه إذا كان لدى أي من الطلاب درجات SAT معينة (1000 ، 1400) ، فلن يتم تقديمها:

 `    select studentID, FullName, sat_score, recordUpdated 
    from student 
    where ( 
        studentID between 1 and 5 
        or studentID = 8 
        or FullName like '%Maximo%' 
        ) 
        and sat_score NOT in (1000, 1400); 
` 

![صورة 1](https://github.com/SteveChevalier/guide-images/blob/master/syntax02.JPG)

### اطلب بواسطة (ASC، DESC)

ترتيب يمنحنا طريقة لفرز مجموعة النتائج بواسطة عنصر واحد أو أكثر من العناصر في قسم SELECT. في ما يلي القائمة نفسها الواردة أعلاه ، ولكن تم فرزها حسب الطلاب بالاسم الكامل. ترتيب الفرز الافتراضي هو تصاعدي (ASC) ، ولكن للفرز بالترتيب المعاكس (تنازلي) تستخدم DESC ، كما في المثال أدناه:

 `    select studentID, FullName, sat_score 
    from student 
    where (studentID between 1 and 5 -- inclusive 
        or studentID = 8 
        or FullName like '%Maximo%') 
        and sat_score NOT in (1000, 1400) 
    order by FullName DESC; 
` 

![صورة 1](https://github.com/SteveChevalier/guide-images/blob/master/syntax03.JPG)

### مجموعة من قبل وبعد

Group By يعطينا طريقة لدمج الصفوف والبيانات الإجمالية. يشبه جملة "تضمين" الجملة الواردة أعلاه ، باستثناء أنها تعمل على البيانات المجمعة.

هذه البيانات مأخوذة من بيانات مساهمات الحملة التي نستخدمها في بعض هذه الأدلة.

يجيب بيان SQL هذا على السؤال التالي: "أي من المرشحين حصلوا على أكبر عدد من المساهمات (وليس مبلغًا بالقيمة ، ولكن عدد (\*)) في عام 2016 ، ولكن فقط أولئك الذين حصلوا على أكثر من 80 اشتراكًا؟"

إن ترتيب مجموعة البيانات هذه بترتيب تنازلي (DESC) يضع المرشحين الذين لديهم أكبر عدد من المساهمات في أعلى القائمة.

 `    select Candidate, Election_year, sum(Total_$), count(*) 
    from combined_party_data 
    where Election_year = 2016 
    group by Candidate, Election_year 
    having count(*) > 80 
    order by count(*) DESC; 
` 

![صورة 1](https://github.com/SteveChevalier/guide-images/blob/master/syntax04.JPG)

_كما هو الحال مع كل هذه الأشياء SQL هناك أكثر من ذلك بكثير من ما هو موجود في هذا الدليل التمهيدي. آمل أن يمنحك هذا على الأقل ما يكفي للبدء. يرجى الاطلاع على دليل مدير قاعدة البيانات الخاص بك والمتعة محاولة خيارات مختلفة بنفسك._