استعلامات SQL بسيطة - مساعدة وأمثلة قصيرة. أمثلة على استعلامات SQL في MariaDB (MySQL)

18.08.2019

تتم كتابة الاستعلامات بدون علامات اقتباس الهروب، منذ ذلك الحين ماي إس كيو إل, مرض التصلب العصبي المتعدد SQLو بوستجريهم مختلفون.

استعلام SQL: الحصول على الحقول المحددة (الضرورية) من الجدول

حدد المعرف، عنوان_البلد، عدد_الأشخاص من اسم_الجدول

نحصل على قائمة السجلات: جميع البلدان وسكانها. يتم الإشارة إلى أسماء الحقول المطلوبة مفصولة بفواصل.

حدد * من اسم الجدول

* تشير إلى جميع الحقول. أي أنه سيكون هناك عروض كل شئحقول البيانات.

استعلام SQL: إخراج السجلات من جدول باستثناء التكرارات

حدد عنوان_البلد المميز من اسم_الجدول

نحصل على قائمة السجلات: البلدان التي يتواجد فيها مستخدمونا. يمكن أن يكون هناك العديد من المستخدمين من بلد واحد. في هذه الحالة هو طلبك.

استعلام SQL: عرض السجلات من جدول بناءً على شرط معين

حدد المعرف، عنوان البلد، عنوان المدينة من اسم الجدول حيث عدد الأشخاص> 100000000

نحصل على قائمة السجلات: البلدان التي يزيد عدد سكانها عن 100.000.000.

استعلام SQL: عرض السجلات من جدول مع الطلب

حدد المعرف، city_title من table_name ORDER BY city_title

نحصل على قائمة السجلات: المدن حسب الترتيب الأبجدي. في البداية أ، في النهاية ز.

حدد المعرف، city_title من table_name ORDER BY city_title DESC

نحصل على قائمة السجلات: المدن في الاتجاه المعاكس ( DESC) تمام. في البداية أنا وفي النهاية أ.

استعلام SQL: حساب عدد السجلات

حدد COUNT(*) من اسم الجدول

نحصل على عدد (عدد) السجلات في الجدول. في هذه الحالة لا توجد قائمة السجلات.

استعلام SQL: إخراج النطاق المطلوب من السجلات

حدد * من اسم الجدول LIMIT 2، 3

نحصل على سجلين (ثانيًا) و 3 (ثالثًا) من الجدول. يكون الاستعلام مفيدًا عند إنشاء التنقل على صفحات الويب.

استعلامات SQL مع الشروط

عرض السجلات من جدول بناءً على شرط معين باستخدام العوامل المنطقية.

استعلام SQL: والبناء

حدد المعرف، city_title من table_name حيث البلد = "روسيا" والنفط = 1

نحصل على قائمة السجلات: مدن من روسيا والحصول على النفط. متى تستخدم المشغل و، فيجب أن يتطابق كلا الشرطين.

استعلام SQL: أو البناء

حدد المعرف، city_title من table_name حيث البلد = "روسيا" أو البلد = "الولايات المتحدة الأمريكية"

نحصل على قائمة السجلات: جميع المدن من روسيا أوالولايات المتحدة الأمريكية. متى تستخدم المشغل أو، فيجب أن يتطابق شرط واحد على الأقل.

استعلام SQL: وليس البناء

حدد المعرف، user_login من table_name حيث البلد = "روسيا" وليس count_comments<7

نحصل على قائمة السجلات: جميع المستخدمين من روسيا ومن صنع ليس أقل 7 تعليقات.

استعلام SQL: في البناء (ب)

حدد المعرف، user_login FROM table_name حيث البلد ("روسيا"، "بلغاريا"، "الصين")

نحصل على قائمة السجلات: جميع المستخدمين الذين يعيشون في ( في) (روسيا أو بلغاريا أو الصين)

استعلام SQL: ليس في البناء

حدد المعرف، user_login من table_name حيث لا توجد دولة في ("روسيا"، "الصين")

نحصل على قائمة السجلات: جميع المستخدمين الذين لا يعيشون في ( ليس في) (روسيا أو الصين).

استعلام SQL: بناء NULL (قيم فارغة أو ليست فارغة)

حدد المعرف، user_login من table_name حيث تكون الحالة فارغة

نحصل على قائمة السجلات: جميع المستخدمين حيث لم يتم تحديد الحالة. NULL هي مشكلة منفصلة ولذلك يتم فحصها بشكل منفصل.

حدد المعرف، user_login من table_name حيث الحالة ليست فارغة

نحصل على قائمة السجلات: جميع المستخدمين حيث يتم تعريف الحالة (ليست فارغة).

استعلام SQL: مثل البناء

حدد المعرف، user_login من table_name حيث اللقب مثل "Ivan %"

نحصل على قائمة السجلات: المستخدمون الذين تبدأ أسماؤهم الأخيرة بالمجموعة "Ivan". علامة % تعني أي عدد من أي أحرف. للعثور على علامة %، عليك استخدام الهروب "Ivan\%".

استعلام SQL: بين البناء

حدد المعرف، user_login من table_name حيث يتراوح الراتب بين 25000 و50000

نحصل على قائمة السجلات: المستخدمون الذين يحصلون على راتب يتراوح من 25000 إلى 50000 شاملاً.

هناك الكثير من العوامل المنطقية، لذا قم بدراسة وثائق خادم SQL بالتفصيل.

استعلامات SQL المعقدة

استعلام SQL: الجمع بين استعلامات متعددة

(معرف SELECT، user_login من table_name1) UNION (معرف SELECT، user_login من table_name2)

نحصل على قائمة الإدخالات: المستخدمين المسجلين في النظام، وكذلك المستخدمين المسجلين بشكل منفصل في المنتدى. يمكن لمشغل UNION الجمع بين استعلامات متعددة. يعمل UNION مثل SELECT DISTINCT، أي أنه يتجاهل القيم المكررة. للحصول على جميع السجلات بشكل كامل، تحتاج إلى استخدام عامل التشغيل UNION ALL.

استعلام SQL: قيمة الحقل تحسب MAX وMIN وSUM وAVG وCOUNT

عرض قيمة عداد قصوى واحدة في الجدول:

حدد الحد الأقصى (العداد) من اسم الجدول

إخراج قيمة عداد واحدة كحد أدنى في الجدول:

حدد MIN(عداد) من table_name

عرض مجموع كل قيم العداد في الجدول:

حدد SUM(عداد) من اسم الجدول

عرض متوسط ​​قيمة العداد في الجدول:

حدد AVG(عداد) من table_name

عرض عدد العدادات في الجدول:

حدد COUNT(عداد) من table_name

عرض عدد العدادات في الورشة رقم 1 في الجدول:

حدد COUNT(counter) من table_name حيث المكتب = "ورشة العمل رقم 1"

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

استعلام SQL: تجميع السجلات

حدد القارة، SUM(country_area) من البلد GROUP BY القارة

نحصل على قائمة السجلات: مع اسم القارة ومجموع مساحات جميع بلدانها. أي أنه إذا كان هناك دليل للبلدان التي تم تسجيل مساحة كل دولة فيها، فيمكنك باستخدام إنشاء GROUP BY معرفة حجم كل قارة (استنادًا إلى التجميع حسب القارات).

استعلام SQL: استخدام جداول متعددة عبر الاسم المستعار

حدد o.order_no، o.amount_pay، c.company من الطلبات AS o، العميل AS حيث o.custno=c.custno وc.city="Tyumen"

نتلقى قائمة السجلات: الطلبات من العملاء الذين يعيشون فقط في تيومين.

في الواقع، مع قاعدة بيانات مصممة بشكل صحيح من هذا النوع، يكون الاستعلام هو الأكثر شيوعًا، لذلك تم إدخال عامل تشغيل خاص في MySQL يعمل بشكل أسرع عدة مرات من الكود المكتوب أعلاه.

حدد o.order_no، o.amount_pay، z.company من الطلبات AS o LEFT JOIN customer AS z ON (z.custno=o.custno)

الاستعلامات الفرعية المتداخلة

اختر * من اسم الجدول حيث الراتب = (اختر الحد الأقصى (الراتب) من الموظف)

نحصل على سجل واحد: معلومات حول المستخدم صاحب الحد الأقصى للراتب.

انتباه!تعد الاستعلامات الفرعية المتداخلة واحدة من أكبر الاختناقات في خوادم SQL. بالإضافة إلى مرونتها وقوتها، فإنها تعمل أيضًا على زيادة الحمل على الخادم بشكل كبير. مما يؤدي إلى تباطؤ كارثي للمستخدمين الآخرين. حالات الاستدعاءات العودية في الاستعلامات المتداخلة شائعة جدًا. ولذلك، أوصي بشدة بعدم استخدام الاستعلامات المتداخلة، بل تقسيمها إلى استعلامات أصغر. أو استخدم مجموعة LEFT JOIN الموضحة أعلاه. بالإضافة إلى ذلك، يعد هذا النوع من الطلبات مصدرًا متزايدًا للانتهاكات الأمنية. إذا قررت استخدام الاستعلامات الفرعية المتداخلة، فأنت بحاجة إلى تصميمها بعناية فائقة وإجراء عمليات تشغيل أولية على نسخ قواعد البيانات (قواعد البيانات الاختبارية).

استعلامات SQL تغيير البيانات

استعلام SQL: إدراج

تعليمات إدراجتسمح لك بإدراج السجلات في الجدول. بكلمات بسيطة، قم بإنشاء صف يحتوي على بيانات في جدول.

الخيار 1. التعليمات التي يتم استخدامها غالبًا هي:

أدخل في اسم الجدول (المعرف، تسجيل الدخول المستخدم) القيم (1، "إيفانوف")، (2، "بيتروف")

إلى الطاولة " اسم الطاولة"سيتم إدراج مستخدمين (اثنين) مرة واحدة.

الخيار 2. إنه أكثر ملاءمة لاستخدام النمط:

INSERT table_name SET id=1, user_login="ivanov"; INSERT table_name SET id=2, user_login="petrov";

وهذا له مزاياه وعيوبه.

العيوب الرئيسية:

  • سيتم تنفيذ العديد من استعلامات SQL الصغيرة بشكل أبطأ قليلاً من استعلام SQL كبير واحد، ولكن سيتم وضع الاستعلامات الأخرى في قائمة الانتظار للخدمة. وهذا هو، إذا استغرق استعلام SQL كبير 30 دقيقة لإكماله، فخلال كل هذا الوقت، ستدخن الاستعلامات المتبقية الخيزران وتنتظر دورها.
  • تبين أن الطلب أكبر من الإصدار السابق.

المزايا الرئيسية:

  • أثناء استعلامات SQL الصغيرة، لا يتم حظر استعلامات SQL الأخرى.
  • سهولة القراءة.
  • المرونة. في هذا الخيار، ليس عليك اتباع البنية، ولكن إضافة البيانات الضرورية فقط.
  • عند إنشاء أرشيفات بهذه الطريقة، يمكنك بسهولة نسخ سطر واحد وتشغيله من خلال سطر الأوامر (وحدة التحكم)، وبالتالي عدم استعادة الأرشيف بأكمله.
  • يشبه أسلوب الكتابة عبارة UPDATE، مما يسهل تذكرها.

استعلام SQL: تحديث

تحديث اسم الجدول SET user_login = "ivanov"، user_surname = "Ivanov" حيث المعرف = 1

في الطاولة " اسم الطاولة"في السجل الذي يحتوي على رقم المعرف = 1، سيتم تغيير قيم حقول user_login وuser_surname إلى القيم المحددة.

استعلام SQL: حذف

احذف من اسم الجدول حيث المعرف = 3

في الجدول table_name سيتم حذف السجل ذو المعرف رقم 3.

  1. يوصى بكتابة جميع أسماء الحقول بأحرف صغيرة، وإذا لزم الأمر، قم بفصلها بمسافة إجبارية "_" للتوافق مع لغات البرمجة المختلفة، مثل دلفي، وبيرل، وبيثون، وروبي.
  2. كتابة أوامر SQL بأحرف كبيرة لسهولة القراءة. تذكر دائمًا أنه يمكن للأشخاص الآخرين قراءة الكود من بعدك، وعلى الأرجح أنت بنفسك بعد فترة زمنية لا تقل عن N.
  3. قم بتسمية الحقول أولاً بالاسم ثم بالفعل. على سبيل المثال: city_status، user_login، user_name.
  4. حاول تجنب الكلمات المحجوزة في اللغات المختلفة والتي يمكن أن تسبب مشاكل في SQL أو PHP أو Perl، مثل (name، count، link). على سبيل المثال: يمكن استخدام الرابط في MS SQL، ولكنه محجوز في MySQL.

تعد هذه المادة مرجعًا قصيرًا للعمل اليومي ولا تتظاهر بأنها مصدر موثوق للغاية، وهو المصدر الأصلي لاستعلامات SQL لقاعدة بيانات معينة.

أنواع البياناتSQL(كيف فيصكما في المعيار)

أنواع السلسلة

أنواع البيانات الرقمية

العملة، الشخصية، أنواع البيانات الثنائية

نوع منطقي. التحويلات

أمثلة على استعلامات SQL البسيطة

أبسط الاستعلامات SELECT

تعد عبارة SQL SELECT هي العبارة الأكثر أهمية والأكثر استخدامًا. وهي مصممة لاسترداد المعلومات من جداول قاعدة البيانات. بناء الجملة المبسط لعبارة SELECT كما يلي.

اختر [الكل | مميز] Select_item_commalist

من table_reference_commalist

[أين التعبير الشرطي]

[المجموعة حسب column_name_commalist]

[ وجود تعبير شرطي ]

[ الطلب حسب order_item_commalist ]

تشير الأقواس المربعة إلى العناصر التي قد لا تكون موجودة في الطلب.

تخبر الكلمة الأساسية SELECT قاعدة البيانات أن هذا البيان هو طلب لاسترداد المعلومات.

بعد كلمة SELECT، يتم إدراج أسماء الحقول (قائمة السمات) المطلوب محتوياتها، مفصولة بفواصل.

الكلمة الأساسية المطلوبة في عبارة استعلام SELECT هي الكلمة FROM. الكلمة الأساسية FROM متبوعة بقائمة مفصولة بفواصل بأسماء الجداول التي يتم استرداد المعلومات منها.

على سبيل المثال، حدد العنوان والوصف من الفيلم

يجب أن ينتهي أي استعلام SQL بالرمز "؛" (فاصلة منقوطة). ستكون نتيجة هذا الاستعلام جدولاً...

يتوافق ترتيب الأعمدة في هذا الجدول مع ترتيب الحقول المحددة في الاستعلام

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

اختر * من الفيلم؛

في هذه الحالة، ستكون نتيجة الاستعلام هي جدول الفيلم بأكمله.

دعونا ننتبه مرة أخرى إلى حقيقة أن الجداول التي تم الحصول عليها نتيجة لاستعلام SQL لا تتوافق تمامًا مع تعريف العلاقة العلائقية. على وجه الخصوص، قد تحتوي على صفوف (صفوف) لها نفس قيم السمات.

على سبيل المثال، يمكن كتابة الاستعلام "قائمة أسماء الممثلين" على النحو التالي.

حدد الاسم الأول من الممثل؛

ستكون نتيجته جدولاً، يحتوي الجدول على صفوف متطابقة. لاستبعاد السجلات المكررة من نتيجة استعلام SELECT، استخدم الكلمة الأساسية DISTINCT.

إذا قام استعلام SELECT باسترداد حقول متعددة، فإن DISTINCT يزيل الصفوف المكررة التي تتطابق فيها قيم جميع الحقول المحددة.

يمكن كتابة الاستعلام السابق على النحو التالي.

حدد الاسم الأول المميز من الممثل؛

ونتيجة لذلك، نحصل على جدول يتم فيه استبعاد الصفوف المكررة.

الكلمة الأساسية ALL تفعل عكس DISTINCT، مما يعني أنه يتم تضمين صفوف مكررة في الإخراج. الوضع المحدد بواسطة الكلمة الأساسية ALL هو الوضع الافتراضي، لذلك لا يتم استخدامه عمليًا لهذه الأغراض في الاستعلامات الحقيقية.

يتيح لك استخدام جملة WHERE في عبارة SELECT تحديد تعبير شرط (مسند) يتم تقييمه إلى صواب أو خطأ لقيم حقل صف الجدول المشار إليها بواسطة عبارة SELECT. تحدد جملة WHERE صفوف الجداول المحددة التي يجب تحديدها. يتضمن الجدول الناتج عن الاستعلام فقط تلك الصفوف التي يتم تقييم الشرط (المسند) المحدد في عبارة WHERE بها على أنه صحيح.

مثال: اكتب استعلامًا يسترجع الأسماء الأخيرة لجميع الممثلين الذين يحملون اسم PENELOPE

اختر last_name من الممثل

حيث first_name = "PENELOPE"؛

يمكن للشروط المحددة في جملة WHERE استخدام عمليات المقارنة المحددة بواسطة عوامل التشغيل = (يساوي)، > (أكبر من)،< (меньше), >= (أكبر من أو يساوي)،<- (меньше или равно), <>(غير متساو)، بالإضافة إلى العوامل المنطقية AND وOR وNOT.

على سبيل المثال، طلب الحصول على أسماء وأوصاف الأفلام القصيرة (أقل من 60 دقيقة)، والتي يكلف استئجارها أقل من 3 دولارات، سيبدو كما يلي:

حدد العنوان والوصف من الفيلم

حيث الطول< 60 and rental_rate < 3

تبدو نتيجة هذا الاستعلام كما يلي:

تأجير - تأجير

المخزون - المخزون والأسهم

متجر - مخزون، متجر

يحتاج كل مطور ويب إلى معرفة SQL لكتابة استعلامات قاعدة البيانات. وعلى الرغم من أن phpMyAdmin لم يتم إلغاؤه، إلا أنه غالبًا ما يكون من الضروري أن تتسخ يديك لكتابة SQL ذات المستوى المنخفض.

ولهذا السبب قمنا بإعداد جولة قصيرة لأساسيات SQL. هيا بنا نبدأ!

1. قم بإنشاء جدول

يتم استخدام عبارة CREATE TABLE لإنشاء الجداول. يجب أن تكون الوسائط هي أسماء الأعمدة بالإضافة إلى أنواع البيانات الخاصة بها.

لنقم بإنشاء جدول بسيط اسمه شهر. يتكون من 3 أعمدة:

  • بطاقة تعريف– رقم الشهر في السنة التقويمية (عدد صحيح).
  • اسم- اسم الشهر (سلسلة، الحد الأقصى 10 أحرف).
  • أيام– عدد أيام هذا الشهر (عدد صحيح).

وهذا ما سيبدو عليه استعلام SQL المقابل:

إنشاء جدول أشهر (معرف int، اسم varchar(10)، أيام int)؛

وأيضًا، عند إنشاء الجداول، يُنصح بإضافة مفتاح أساسي لأحد الأعمدة. سيؤدي هذا إلى الاحتفاظ بالسجلات فريدة وتسريع طلبات الجلب. في حالتنا، ليكن اسم الشهر فريدًا (عمود اسم)

إنشاء أشهر الجدول (معرف int، اسم varchar(10)، أيام int، المفتاح الأساسي (الاسم))؛

التاريخ و الوقت
نوع البياناتوصف
تاريخقيم التاريخ
التاريخ والوقتقيم التاريخ والوقت دقيقة للدقيقة
وقتقيم الوقت

2. إدراج الصفوف

الآن دعونا نملأ طاولتنا شهورمعلومات مفيدة. تتم إضافة السجلات إلى الجدول باستخدام عبارة INSERT. هناك طريقتان لكتابة هذه التعليمات.

الطريقة الأولى ليست تحديد أسماء الأعمدة التي سيتم إدراج البيانات فيها، ولكن تحديد القيم فقط.

طريقة التسجيل هذه بسيطة، ولكنها غير آمنة، حيث لا يوجد ضمان أنه مع توسيع المشروع وتحرير الجدول، ستكون الأعمدة بنفس الترتيب كما كان من قبل. تتطلب الطريقة الآمنة (وفي الوقت نفسه الأكثر تعقيدًا) لكتابة عبارة INSERT تحديد القيم وترتيب الأعمدة:

هذه هي القيمة الأولى في القائمة قيميطابق اسم العمود المحدد الأول، وما إلى ذلك.

3. استخراج البيانات من الجداول

عبارة SELECT هي أفضل صديق لنا عندما نريد استرداد البيانات من قاعدة البيانات. يتم استخدامه كثيرًا، لذا انتبه جيدًا لهذا القسم.

إن أبسط استخدام لعبارة SELECT هو الاستعلام الذي يقوم بإرجاع كافة الأعمدة والصفوف من جدول (على سبيل المثال، الجداول حسب الاسم الشخصيات):

اختر * من "الشخصيات"

رمز النجمة (*) يعني أننا نريد الحصول على البيانات من جميع الأعمدة. بما أن قواعد بيانات SQL تتكون عادة من أكثر من جدول واحد، فمن الضروري تحديد الكلمة الأساسية FROM، متبوعة باسم الجدول، مفصولة بمسافة.

في بعض الأحيان لا نرغب في الحصول على البيانات من جميع الأعمدة الموجودة في الجدول. للقيام بذلك، بدلا من العلامة النجمية (*)، يجب علينا كتابة أسماء الأعمدة المطلوبة، مفصولة بفواصل.

حدد المعرف والاسم من الشهر

بالإضافة إلى ذلك، في كثير من الحالات، نريد فرز النتائج الناتجة بترتيب معين. في SQL نقوم بذلك باستخدام ORDER BY. يمكنه قبول معدل اختياري - فرز ASC (افتراضيًا) بترتيب تصاعدي أو DESC، فرز بترتيب تنازلي:

حدد المعرف والاسم من الشهر ORDER حسب الاسم DESC

عند استخدام ORDER BY، تأكد من أنه يأتي في آخر عبارة SELECT. وإلا سيتم عرض رسالة خطأ.

4. تصفية البيانات

لقد تعلمت كيفية تحديد أعمدة محددة من قاعدة بيانات باستخدام استعلام SQL، ولكن ماذا لو كنا بحاجة أيضًا إلى استرداد صفوف معينة؟ تأتي عبارة WHERE للإنقاذ هنا، مما يسمح لنا بتصفية البيانات حسب الحالة.

في هذا الاستعلام، نختار فقط تلك الأشهر من الجدول شهر، حيث يوجد أكثر من 30 يومًا باستخدام عامل التشغيل الأكبر من (>).

حدد المعرف والاسم من الشهر حيث الأيام > 30

5. تصفية البيانات المتقدمة. عوامل تشغيل AND وOR

في السابق، استخدمنا تصفية البيانات باستخدام معيار واحد. لتصفية بيانات أكثر تعقيدًا، يمكنك استخدام عوامل التشغيل AND وOR وعوامل المقارنة (=،<,>,<=,>=,<>).

لدينا هنا جدول يحتوي على الألبومات الأربعة الأكثر مبيعًا على الإطلاق. دعونا نختار تلك التي تم تصنيفها على أنها موسيقى الروك والتي باعت أقل من 50 مليون نسخة. يمكن القيام بذلك بسهولة عن طريق وضع عامل التشغيل AND بين هذين الشرطين.


اختر * من الألبومات حيث النوع = "موسيقى الروك" والمبيعات في الملايين<= 50 ORDER BY released

6. في/بين/مثل

يدعم WHERE أيضًا العديد من الأوامر الخاصة، مما يسمح لك بالتحقق بسرعة من الاستعلامات الأكثر استخدامًا. ها هم:

  • IN - يستخدم للإشارة إلى مجموعة من الشروط، والتي يمكن استيفاء أي منها
  • بين - يتحقق مما إذا كانت القيمة ضمن النطاق المحدد
  • LIKE - يبحث عن أنماط محددة

على سبيل المثال، إذا أردنا تحديد الألبومات باستخدام البوبو روحالموسيقى، يمكننا استخدام IN("value1"،"value2") .

اختر * من الألبومات حيث النوع ("البوب"، "الروح")؛

إذا أردنا الحصول على جميع الألبومات التي صدرت بين عامي 1975 و1985، علينا أن نكتب:

اختر * من الألبومات التي تم إصدارها بين عامي 1975 و1985؛

7. الوظائف

SQL مليئة بالوظائف التي تقوم بكل أنواع الأشياء المفيدة. وفيما يلي بعض من الأكثر استخداما:

  • COUNT () – ترجع عدد الصفوف
  • SUM() – ترجع المجموع الإجمالي لعمود رقمي
  • AVG() - يُرجع متوسط ​​مجموعة من القيم
  • MIN () / MAX () - يحصل على الحد الأدنى/الحد الأقصى للقيمة من عمود

للحصول على السنة الأخيرة في جدولنا، يجب علينا كتابة استعلام SQL التالي:

حدد MAX(تم إصداره) من الألبومات؛

8. الاستعلامات الفرعية

في الفقرة السابقة، تعلمنا كيفية إجراء عمليات حسابية بسيطة باستخدام البيانات. إذا أردنا استخدام نتيجة هذه الحسابات، فلا يمكننا الاستغناء عن الاستعلامات المتداخلة. لنفترض أننا نريد الإخراج فنان, الألبومو سنة الإصدارلأقدم ألبوم في الجدول.

نحن نعرف كيفية الحصول على هذه الأعمدة المحددة:

حدد الفنان، الألبوم، الذي تم إصداره من الألبومات؛

نحن نعرف أيضًا كيفية الحصول على السنة الأولى:

حدد MIN(تم إصداره) من الألبوم؛

كل ما هو مطلوب الآن هو الجمع بين الاستعلامين باستخدام WHERE:

حدد الفنان، الألبوم، الذي تم إصداره من الألبومات حيث تم إصداره = (SELECT MIN(تم إصداره) من الألبومات)؛

9. الانضمام إلى الجداول

في قواعد البيانات الأكثر تعقيدًا، توجد جداول متعددة مرتبطة ببعضها البعض. على سبيل المثال، يوجد أدناه جدولان حول ألعاب الفيديو ( ألعاب الفيديو) ومطوري ألعاب الفيديو ( game_developers).


في الطاولة ألعاب الفيديويوجد عمود المطور ( معرف_المطور)، ولكنه يحتوي على عدد صحيح، وليس اسم المطور. يمثل هذا الرقم المعرف ( بطاقة تعريف) للمطور المقابل من جدول مطوري اللعبة ( game_developers)، ربط قائمتين بشكل منطقي، مما يسمح لنا باستخدام المعلومات المخزنة في كل منهما في نفس الوقت.

إذا أردنا إنشاء استعلام يُرجع كل ما نحتاج إلى معرفته حول الألعاب، فيمكننا استخدام INNER JOIN لربط الأعمدة من كلا الجدولين.

حدد video_games.name، video_games.genre، game_developers.name، game_developers.country من video_games INNER JOIN game_developers على video_games.developer_id = game_developers.id؛

هذا هو نوع JOIN الأبسط والأكثر شيوعًا. هناك العديد من الخيارات الأخرى، ولكن هذه تنطبق على الحالات الأقل شيوعا.

10. الأسماء المستعارة

إذا نظرت إلى المثال السابق، ستلاحظ أن هناك عمودين يسمى اسم. هذا أمر محير، لذلك دعونا نضع اسمًا مستعارًا لأحد الأعمدة المتكررة، مثل هذا اسممن الطاولة game_developersوسوف يطلق مطور.

يمكننا أيضًا تقصير الاستعلام عن طريق تسمية أسماء الجداول: ألعاب الفيديولنتصل ألعاب, game_developers - devs:

حدد games.name, games.genre, devs.name AS مطور, devs.country من video_games AS games INNER JOIN game_developers AS devs ON games.developer_id = devs.id;

11. تحديث البيانات

غالبًا ما نحتاج إلى تغيير البيانات في بعض الصفوف. في SQL يتم ذلك باستخدام عبارة UPDATE. يتكون بيان UPDATE من:

  • الجدول الذي توجد فيه قيمة الاستبدال؛
  • أسماء الأعمدة وقيمها الجديدة؛
  • الصفوف المحددة باستخدام WHERE التي نريد تحديثها. إذا لم يتم ذلك، ستتغير كافة الصفوف في الجدول.

أدناه هو الجدول مسلسل تلفزيونىمع المسلسلات التلفزيونية وتقييماتها. ومع ذلك، تسلل خطأ صغير إلى الجدول: على الرغم من أن السلسلة لعبة العروشويوصف بالكوميديا، وهو في الحقيقة ليس كذلك. دعونا نصلح هذا!

بيانات الجدول tv_series تحديث tv_series SET النوع = "دراما" WHERE id = 2؛

12. حذف البيانات

يعد حذف صف الجدول باستخدام SQL عملية بسيطة للغاية. كل ما عليك فعله هو تحديد الجدول والصف الذي تريد حذفه. لنحذف الصف الأخير في الجدول من المثال السابق مسلسل تلفزيونى. يتم ذلك باستخدام تعليمات >DELETE.

احذف من tv_series حيث المعرف = 4

كن حذرًا عند كتابة عبارة DELETE وتأكد من وجود جملة WHERE، وإلا سيتم حذف جميع الصفوف في الجدول!

13. حذف جدول

إذا أردنا حذف جميع الصفوف مع ترك الجدول نفسه، فاستخدم الأمر TRUNCATE:

TRUNCATE TABLE table_name;

في الحالة التي نريد فيها حذف كل من البيانات والجدول نفسه، فسيكون أمر DROP مفيدًا لنا:

إسقاط الجدول table_name؛

كن حذرًا جدًا مع هذه الأوامر. ولا يمكن إلغاؤها!/p>

بهذا نختتم برنامجنا التعليمي لـ SQL! هناك الكثير مما لم نقم بتغطيته، ولكن ما تعرفه بالفعل يجب أن يكون كافيًا لتزويدك ببعض المهارات العملية لمسيرتك المهنية على الويب.


محتوى المقال
1. أبسط استعلامات MySQL
2. استعلامات SELECT بسيطة
3. استعلامات INSERT البسيطة (إدخال جديد).
4. استعلامات تحديث بسيطة (الكتابة فوق والإلحاق).
5. استعلامات الحذف البسيطة (حذف السجل).
6. استعلامات DROP البسيطة (حذف الجدول).
7. استعلامات MySQL المعقدة
8. استعلامات MySQL ومتغيرات PHP

1. أبسط استعلامات SQL

1. يعرض قائمة بجميع قواعد البيانات.

عرض قواعد البيانات؛
2. يسرد كافة الجداول في قاعدة البيانات base_name.

إظهار الجداول في base_name؛

2. استعلامات SELECT بسيطة لقاعدة بيانات MySQL

يختار- استعلام يختار البيانات الموجودة من قاعدة البيانات. يمكنك تحديد معلمات اختيار محددة للاختيار. على سبيل المثال، يبدو جوهر الطلب باللغة الروسية مثل هذا: حدد أعمدة كذا وكذا من جدول كذا وكذا حيث تكون معلمة هذا العمود كذا وكذا القيمة.

1. يحدد كافة البيانات في الجدول tbl_name.

اختر * من tbl_name؛
2. يعرض عدد السجلات في الجدول tbl_name.

حدد العد (*) من tbl_name؛
3. يحدد (SELECT) من الجدول (FROM) حد tbl_name (LIMIT) 3 سجلات، بدءًا من 2.

اختر * من tbl_name LIMIT 2,3؛
4. تحديد (SELECT) كافة السجلات (*) من الجدول (FROM) tbl_name وفرزها (ORDER BY) حسب حقل المعرف بالترتيب.

اختر * من tbl_name ORDER BY id؛
5. يحدد (SELECT) كافة السجلات من (FROM) الجدول tbl_name ويفرزها (ORDER BY) حسب حقل المعرف بترتيب عكسي.

اختر * من tbl_name ORDER BY id DESC؛
6. يختار ( يختار) كافة السجلات (*) من ( من) الجداول المستخدمينو يرتبهم ( ترتيب حسب) في الميدان بطاقة تعريفبترتيب تصاعدي، الحد ( حد) أول 5 إدخالات.

اختر * من المستخدمين اطلب حسب المعرف LIMIT 5؛
7. تحديد كافة السجلات من الجدول المستخدمين، أين هو الميدان com.fnameيتوافق مع القيمة جينا.

حدد * من المستخدمين حيث fname = "Gena"؛
8. تحديد كافة السجلات من الجدول المستخدمين، حيث قيمة الحقل com.fnameإبتدئ ب جي.

حدد * من المستخدمين حيث fname LIKE "Ge%"؛
9. تحديد كافة السجلات من الجدول المستخدمين، أين com.fnameينتهي ب غير متوفر، ويقوم بفرز السجلات بترتيب تصاعدي من حيث القيمة بطاقة تعريف.

حدد * من المستخدمين حيث fname مثل "%na" بالترتيب حسب المعرف؛
10. تحديد كافة البيانات من الأعمدة com.fname, lnameمن الطاولة المستخدمين.

حدد fname، lname من المستخدمين؛

11. لنفترض أن لديك بلدًا في جدول بيانات المستخدم الخاص بك. لذلك، إذا كنت ترغب في عرض قائمة القيم التي تحدث فقط (بحيث، على سبيل المثال، لا يتم عرض روسيا 20 مرة، ولكن مرة واحدة فقط)، فإننا نستخدم DISTINCT. سوف يُخرج روسيا وأوكرانيا وبيلاروسيا من كتلة القيم المكررة. وهكذا من الجدول المستخدمينمكبرات الصوت دولةسيتم إخراج جميع القيم الفريدة

اختر دولة مميزة عن المستخدمين؛
12. تحديد كافة بيانات الصف من الجدول المستخدمينأين عمرلديه القيم 18،19 و 21.

اختر * من المستخدمين الذين تتراوح أعمارهم بين (18،19،21)؛
13. يحدد القيمة القصوى عمرفي الطاولة المستخدمين. أي إذا كان لديك أكبر قيمة في جدولك عمر(من عصر اللغة الإنجليزية) هو 55، فإن نتيجة الاستعلام ستكون 55.

حدد الحد الأقصى (العمر) من المستخدمين؛
14. حدد البيانات من الجدول المستخدمينبواسطة الحقول اسمو عمرأين عمريأخذ أصغر قيمة.

حدد الاسم، الحد الأدنى (العمر) من المستخدمين؛
15. حدد البيانات من الجدول المستخدمينفي الميدان اسمأين بطاقة تعريفلا يساوي 2.

حدد الاسم من المستخدمين حيث المعرف! = "2"؛

3. استعلامات INSERT البسيطة (إدخال جديد).

إدراج- استعلام يسمح لك بإدراج سجل في قاعدة البيانات بشكل مبدئي. أي أنه يقوم بإنشاء سجل (سطر) جديد في قاعدة البيانات.

1. يقوم بإدخال جديد في الجدول المستخدمين، في الميدان اسمإدراج سيرجي، وفي هذا المجال عمريُدرج 25. وبالتالي تتم إضافة صف جديد بهذه القيم إلى الجدول. إذا كان هناك المزيد من الأعمدة، فستظل الأعمدة المتبقية إما فارغة أو بقيم افتراضية.

أدخل في قيم المستخدمين (الاسم والعمر) ("سيرجي"، "25")؛

4. استعلامات تحديث بسيطة لقاعدة بيانات MySQL

تحديث– استعلام يسمح لك بحجز قيم الحقول أو إضافة شيء ما إلى صف موجود بالفعل في قاعدة البيانات. على سبيل المثال، يوجد سطر جاهز، ولكن يجب إعادة كتابة معلمة العمر فيه، لأنه تغير مع مرور الوقت.

1. في الجدول المستخدمين عمريصبح 18.

تحديث المستخدمين SET age = "18" WHERE id = "3";
2. كل شيء هو نفسه كما في الطلب الأول، يتم عرض بناء جملة الطلب ببساطة، حيث تتم الكتابة فوق حقلين أو أكثر.
في الطاولة المستخدمينحيث يساوي المعرف 3 قيمة حقل عمريبلغ من العمر 18 عامًا و دولةروسيا.

تحديث المستخدمين SET age = "18"، البلد = "روسيا" WHERE id = "3"؛

5. استعلامات الحذف البسيطة (حذف السجل) لقاعدة بيانات MySQL

يمسح- استعلام يقوم بحذف صف من الجدول.

1. إزالة صف من الجدول المستخدمينأين بطاقة تعريفيساوي 10.

حذف من المستخدمين حيث المعرف = "10"؛

6. استعلامات DROP البسيطة (حذف الجدول) إلى قاعدة بيانات MySQL

يسقط- استعلام يقوم بحذف جدول.

1. حذف الجدول بأكمله tbl_name.

إسقاط الجدول tbl_name؛

7. الاستعلامات المعقدة لقاعدة بيانات MySQL

استفسارات مثيرة للاهتمام يمكن أن تكون مفيدة حتى للمستخدمين ذوي الخبرة

حدد المعرف والاسم والبلد من المستخدمين والمشرفين حيث TO_DAYS(NOW()) - TO_DAYS(registration_date)<= 14 AND activation != "0" ORDER BY registration_date DESC;
هذا الاستعلام المعقد يحدد الأعمدة الهوية، الاسم، البلدفي الجداول المستخدمين والمشرفينأين تاريخ التسجيل(التاريخ) ليس أقدم 14 أيام أنا التنشيطغير متساوي 0 ، ترتيب حسب تاريخ التسجيلبترتيب عكسي (الجديد أولاً).

تحديث المستخدمين SET age = "18+" حيث العمر = (اختر العمر من المستخدمين حيث ذكر = "رجل")؛
أعلاه مثال على ما يسمى طلب داخل طلبفي SQL. تحديث العمر بين المستخدمين إلى 18+، حيث يكون الجنس ذكرًا. لا أوصي بخيارات الطلب هذه. من تجربتي الشخصية، سأقول أنه من الأفضل إنشاء عدة منفصلة - ستتم معالجتها بشكل أسرع.

8. استعلامات قاعدة بيانات MySQL وPHP

في استعلامات MySQL في صفحة PHP، يمكنك إدراج المتغيرات كقيم مقارنة، وما إلى ذلك. بضعة أمثلة

1. تحديد كافة السجلات من الجدول المستخدمين، أين هو الميدان com.fnameيتوافق مع قيمة المتغير اسم $.

حدد * من المستخدمين حيث fname = "$ name"؛
2. في الجدول المستخدمينحيث يساوي المعرف 3 قيمة حقل عمرالتغييرات في قيمة المتغير $age.

تحديث المستخدمين SET age = "$age" WHERE id = "3";

انتباه!إذا كنت مهتمًا بأي مثال آخر، فاكتب سؤالاً في التعليقات!

تعد SQL إحدى لغات البرمجة الأكثر شيوعًا لإنشاء قاعدة بيانات وإدارتها، وكذلك لتنفيذ إجراءات مختلفة مع البيانات نفسها.

كما تظهر الممارسة، من السهل جدًا التعلم وتحقيق أقصى استفادة من مفردات اللغة الإنجليزية القياسية. مثل أي لغة برمجة أخرى، لدى SQL منطقها وبناء الجملة الخاص بها، وهي مجموعة من الأوامر والقواعد الأساسية لاستخدامها.

تصنيف أوامر SQL

يمكن اعتبار جميع المعايير بناءً على الغرض منها. يمكن اتخاذ المجموعات التالية كأساس للتصنيف غير الرسمي:

    أوامر لبناء الاستعلامات.

    أوامر الإجراءات والوظائف المضمنة.

    أوامر للمشغلات وجداول النظام.

    مجموعات من المجموعات للعمل مع متغيرات التاريخ والسلسلة.

    أوامر للعمل مع البيانات والجداول.

يمكن أن يستمر هذا التصنيف إلى أجل غير مسمى، ولكن سيتم بناء المجموعات الرئيسية لأوامر SQL بدقة على أساس هذه الأنواع.

وبالنظر إلى تصنيف اللغة، لا يسع المرء إلا أن يذكر أنها عالمية، كما يتضح من نطاق استخدامها. يتم استخدام لغة البرمجة هذه ومتغيراتها ليس فقط في البيئة القياسية، ولكن أيضًا في البرامج الأخرى التي استخدمتها بطريقة أو بأخرى.

يمكن الاطلاع على نطاق استخدام SQL من وجهة نظر البرامج المكتبية، وهي MicrosoftAccess. هذه اللغة، أو بالأحرى نسختها - MySQL، تسمح لك بإدارة قواعد البيانات على الإنترنت. حتى بيئة تطوير Oracle تستخدم أوامر SQL في جوهر استعلاماتها.

استخدام SQL في MicrosoftAccess

واحدة من أبسط الأمثلة على استخدام لغة لبرمجة قواعد البيانات هي حزمة برامج Microsoft Office. يتم تضمين دراسة هذا المنتج البرمجي في دورة علوم الكمبيوتر بالمدرسة، وفي الصف الحادي عشر تتم مناقشة نظام إدارة قاعدة البيانات MicrosoftAccess.

من خلال تعلم هذا التطبيق، يصبح الطلاب على دراية بلغة تطوير قاعدة البيانات ويكتسبون فهمًا أساسيًا لكل ما يتعلق بها. تعتبر أوامر Access SQL بدائية للغاية، بالطبع، إذا كنت تعتبرها على المستوى المهني. يعد تنفيذ مثل هذه الأوامر أمرًا بسيطًا للغاية، ويتم إنشاؤها في محرر تعليمات برمجية مخصص.

دعونا نلقي نظرة على مثال محدد:

حدد Pe_SurName

حيث Pe_Name = "ماري"؛

بناءً على بناء جملة الأمر، يمكنك أن تفهم أنه سيعيد إلى المستخدم الاسم الأخير للشخص، في هذه الحالة امرأة تدعى ماري، والتي يتم تخزينها في جدول قاعدة بيانات جهات الاتصال.

على الرغم من أن استخدام SQL في Access محدود، إلا أن مثل هذه الاستعلامات البسيطة يمكن أن تبسط المهمة بشكل كبير في بعض الأحيان.

استخدام أوامر SQL في أوراكل

ربما تكون Oracle هي المنافس الجاد الوحيد لـ Microsoft SQL Server. إن بيئة التطوير والإدارة هذه هي التي تؤدي باستمرار إلى تحسين وظائف منتج برامج Microsoft، لأن المنافسة هي محرك التقدم. على الرغم من المنافسة المستمرة، تقوم فرق SQL في Oracle بتكرار SQL. ومن الجدير بالذكر أنه على الرغم من أن Oracle تعتبر نسخة كاملة تقريبًا من SQL، إلا أن منطق هذا النظام واللغة ككل يعتبر أبسط.

نظام أوراكل، عند استخدام مجموعة معينة من الأوامر، ليس لديه مثل هذا الهيكل المعقد. وبالنظر إلى إمكانيات بيئات تطوير قواعد البيانات هذه، لا تمتلك Oracle بنية استعلام متداخلة معقدة.

يتيح لك هذا الاختلاف تسريع العمل مع البيانات عدة مرات، ولكن على العكس من ذلك، يؤدي إلى الاستخدام غير الرشيد للذاكرة، في بعض الحالات الفردية. يعتمد هيكل Oracle بشكل أساسي على الجداول المؤقتة واستخدامها. على سبيل المثال: يتم إنشاء أوامر SQL في هذا النظام عن طريق القياس مع معايير لغة SQL نفسها، على الرغم من اختلافها قليلاً عنها.

SELECTCONCAT(CONCAT(CONCAT('Employee', sname), CONCAT(SUBSTR(fname, 0, 1), SUBSTR(otch, 0, 1)), CONCAT('accepted', Acceptdate)) من الموظفين حيث Acceptdate > to_date ( '01.01.80','dd.mm.yyyy');

سيعرض هذا الاستعلام بيانات حول الموظفين الذين تم تعيينهم في فترة زمنية معينة. على الرغم من اختلاف بنية الاستعلام، إلا أن تنفيذ أوامر SQL في هذه الأنظمة متشابه، باستثناء التفاصيل البسيطة.

استخدام SQL على شبكة الإنترنت

مع ظهور شبكة الويب العالمية، أي الإنترنت، يتوسع نطاق استخدام لغة SQL. كما تعلم، يتم تخزين الكثير من المعلومات على الشبكة، لكن لا يتم وضعها بشكل عشوائي، بل يتم وضعها على المواقع والخوادم وفقًا لمعايير معينة.

قواعد البيانات هي المسؤولة بشكل مباشر عن تخزين المعلومات على شبكة الإنترنت، كما هو الحال في أماكن أخرى، والمواقع الإلكترونية هي أنظمة الإدارة. كقاعدة عامة، يتم تنظيم مواقع الويب ورموز البرامج الخاصة بها بلغات برمجة مختلفة، لكن قواعد البيانات تعتمد على أحد أنواع SQL، وهي لغة إنشاء قاعدة البيانات، الموجهة نحو واجهات الويب MySQL.

يقوم بناء الجملة والمجموعة الأساسية من الأوامر لهذه اللغة بنسخ لغة SQL المألوفة تمامًا، ولكن مع بعض الإضافات الخاصة بها، والتي تجعلها مختلفة عن Microsoft tSQL Server.

أوامر SQL متشابهة تماما ليس فقط في بناء الجملة، ولكن أيضا في المجموعة القياسية من الكلمات الوظيفية. والفرق الوحيد هو في الدعوة وهيكلة الطلب. على سبيل المثال، يمكنك التفكير في طلب إنشاء جدول جديد؛ وهذا هو أول ما يتم تدريسه للأطفال في مدارس علوم الكمبيوتر:

$link = mysqli_connect("localhost"، "root"، ""، "tester");

إذا (!$link) يموت("خطأ");

$query = "إنشاء مستخدمي الجدول(

تسجيل الدخول فارتشار (20)،

كلمة المرور VARCHAR(20)

إذا (mysqli_query($link, $query)) echo "تم إنشاء الجدول.";

elseecho "لم يتم إنشاء الجدول:".mysqli_error();

mysqli_ Close($link);

نتيجة لتنفيذ مثل هذا الاستعلام، يمكنك الحصول على جدول "المستخدمين" الجديد، والذي سيكون له حقلين: تسجيل الدخول وكلمة المرور.

تم تغيير بناء الجملة للويب، ولكنه يعتمد على أوامر MicrosoftSQLServer.

بناء استعلامات MicrosoftSQLServer

يعد الاختيار من جداول مجموعة بيانات معينة أحد المهام الرئيسية لـ SQL. يتم توفير أمر التحديد في SQL لمثل هذه العمليات. وهذا ما سيتم مناقشته أدناه.

قواعد إنشاء أمر بسيطة جدًا، ويتم إنشاء أمر التحديد نفسه في SQL على النحو التالي. على سبيل المثال، يوجد جدول يحتوي على بيانات حول أحد الموظفين، والذي يحمل اسم "شخص" على سبيل المثال. لنقم بتعيين المهمة التي تحتاج من الجدول إلى تحديد بيانات حول الموظفين الذين يقع تاريخ ميلادهم في الفترة من الأول من يناير إلى الأول من مارس من العام الحالي، ضمناً. لمثل هذا التحديد، تحتاج إلى تنفيذ أمر SQL، والذي لن يحتوي فقط على البناء القياسي، ولكن أيضًا شرط التحديد:

اختر * من الشخص

حيث P_BerthDay >= '01/01/2016' وP_BerthDay<= ‘03/01/2016’

سيؤدي تنفيذ مثل هذا الأمر إلى إرجاع جميع البيانات المتعلقة بالموظفين الذين يقع تاريخ ميلادهم في الفترة التي حددتها. في بعض الأحيان قد تكون المهمة هي عرض الاسم الأخير والاسم الأول والعائلي للموظف فقط. للقيام بذلك، تحتاج إلى بناء الطلب بشكل مختلف قليلاً، على سبيل المثال، بهذه الطريقة:

حددP_Name - الاسم

P_SurName - اللقب

P_Patronimic - اسم العائلة

حيث P_BerthDay >= '01/01/2016' وP_BerthDay<= ‘03/01/2016’

ومع ذلك، هذا مجرد اختيار لشيء ما. وهو، في جوهره، لا يؤثر على أي شيء، ولكنه يوفر المعلومات فقط. ولكن إذا قررت أن تأخذ لغة SQL على محمل الجد، فسيتعين عليك تعلم كيفية إجراء تغييرات على قواعد البيانات، لأن بنائها بدون ذلك أمر مستحيل بكل بساطة. كيف يتم ذلك سيتم مناقشته أدناه.

أوامر SQL الأساسية لتغيير البيانات

لم يتم إنشاء بناء جملة اللغة لتنفيذ الاستعلامات فحسب، بل أيضًا لمعالجة البيانات. المهمة الرئيسية لمبرمج قاعدة البيانات هي كتابة البرامج النصية للاختيارات والتقارير، ولكن في بعض الأحيان يكون من الضروري إجراء تغييرات على الجداول. قائمة أوامر SQL لمثل هذه الإجراءات صغيرة وتتكون من ثلاثة أوامر رئيسية:

    إدراج (عبر. إدراج).

    تحديث (عبر التحديث).

    حذف (عبر حذف).

من السهل تحديد الغرض من هذه الأوامر، كل ما عليك فعله هو ترجمة اسمها. هذه الأوامر سهلة الاستخدام ولها بنية بسيطة، ولكن تجدر الإشارة إلى أن بعضها، إذا تم استخدامها بشكل غير صحيح، يمكن أن يسبب ضررا لا يمكن إصلاحه لقاعدة البيانات.

كقاعدة عامة، قبل استخدام أوامر MSSQL هذه، عليك التفكير فيها ومراعاة جميع العواقب المحتملة لتنفيذها.

بعد أن تعلمت هذه الأوامر، يمكنك البدء في العمل بشكل كامل مع جداول قاعدة البيانات، وبالتالي تعديلها وإدخال بعض المتغيرات الجديدة أو حذف المتغيرات القديمة.

أمر الإدراج

لإدراج بيانات في جدول، الأمر الأكثر أمانًا هو الإدراج. يمكن دائمًا حذف البيانات المُدرجة بشكل غير صحيح وإعادة إدخالها في قاعدة البيانات.

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

على سبيل المثال، خذ بعين الاعتبار أمر الإدراج في جدول الأشخاص الموصوف مسبقًا. لإدخال البيانات في جدول، تحتاج إلى تشغيل أمر SQL الذي يسمح لك بإدراج كافة البيانات في الجدول أو تعبئته بشكل انتقائي.

أدخل في الشخص

اختر "غريغوريف"، "فيتالي"، "بتروفيتش"، "1/01/1988"

تقوم الأوامر من هذا النوع بملء جميع خلايا الجدول تلقائيًا بالبيانات المحددة. هناك حالات عندما لا يكون للموظف اسم وسط، على سبيل المثال، جاء للعمل من ألمانيا كطالب تبادل. في هذه الحالة، تحتاج إلى تنفيذ أمر إدراج البيانات، والذي سيُدخل في الجدول فقط ما هو مطلوب. سيكون بناء جملة هذا الأمر كما يلي:

Insertintoperson(P_Name، P_SurName، P_BerthDay)

القيم ("ديفيد"، "هوك"، "1986/02/11")

سيقوم هذا الأمر بملء الخلايا المحددة فقط، وستكون جميع الخلايا الأخرى ذات قيمة فارغة.

أمر لتغيير البيانات

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

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

قم بتعيين P_BerthDay = '02/10/1986' حيث P_ID = 5

لن يسمح لك الشرط (في هذا البرنامج النصي) بتغيير تاريخ الميلاد في جميع سجلات الجدول، ولكنه سيقوم بتحديث السجلات الضرورية فقط.

هذا هو الأمر الذي يستخدمه المبرمجون في أغلب الأحيان، لأنه يسمح لك بتغيير البيانات في الجدول دون التسبب في ضرر كبير لجميع المعلومات.

أوامر لاستخدام الإجراءات والوظائف المضمنة

باستخدام لغة SQL، لا يمكنك إنشاء استعلامات فحسب، بل يمكنك أيضًا إنشاء آليات مدمجة للعمل مع البيانات. كقاعدة عامة، هناك أوقات تحتاج فيها إلى استخدام تحديد تم كتابته مسبقًا في نص طلب واحد.

إذا حكمت بشكل منطقي، فأنت بحاجة إلى نسخ نص التحديد ولصقه في المكان الصحيح، ولكن يمكنك القيام بحل أبسط. لنفكر في مثال عندما يتم عرض زر طباعة تقرير، على سبيل المثال في Excel، على واجهة العمل. سيتم تنفيذ هذه العملية حسب الحاجة. يتم استخدام الإجراءات المخزنة المضمنة لمثل هذه الأغراض. يتم تضمين الأوامر في هذه الحالة في إجراء ويتم استدعاؤها باستخدام الأمر SQLExec.

لنفترض أنه تم إنشاء إجراء لعرض تاريخ ميلاد الموظفين من جدول الأشخاص الموصوف مسبقًا. في هذه الحالة، ليست هناك حاجة لكتابة الطلب بأكمله. للحصول على المعلومات الضرورية، ما عليك سوى تنفيذ الأمر Exec [اسم الإجراء] وتمرير المعلمات اللازمة لأخذ العينات. على سبيل المثال، يمكننا النظر في آلية إنشاء إجراء من هذا النوع:

CREATEPROCEDUREPrintPerson

@DB Smalldatetime

@DE Smalldatetime

اختر * من الشخص

من HumanResources.vEmployeeDepartmentHistory

حيث P_BerthDay >=DB وP_BerthDay<= @DE

ANDEndDateISNULL;

سيعيد هذا الإجراء جميع المعلومات المتعلقة بالموظفين الذين سيكون عيد ميلادهم في فترة زمنية معينة.

تنظيم سلامة البيانات. محفزات

بعض أوامر MS SQL، حتى يمكن للمرء أن يقول بنيات، تسمح لك ليس فقط بتنظيم معالجة البيانات، ولكن أيضًا لضمان سلامتها. لهذه الأغراض، تحتوي اللغة على بنيات النظام التي أنشأها المبرمج نفسه. هذه هي ما يسمى المشغلات التي يمكن أن توفر التحكم في البيانات.

في هذه الحالة، يتم استخدام أوامر استعلام SQL القياسية لتنظيم التحقق من الشروط. في المشغلات، يمكنك إنشاء الكثير من الشروط والقيود للعمل مع البيانات، والتي ستساعد في التحكم ليس فقط في الوصول إلى المعلومات، ولكن أيضًا تحظر حذف البيانات أو تغييرها أو إدراجها.

لا توجد أية قيود على أنواع أوامر SQL التي يمكن استخدامها في المشغل. لنلقي نظرة على مثال.

إذا وصفنا آلية إنشاء المشغل، فإن أنواع أوامر SQL هنا هي نفسها عند إنشاء الإجراء. سيتم وصف الخوارزمية نفسها أدناه.

أولًا، نحتاج إلى وصف أمر الخدمة لإنشاء المشغلات:

نشير إلى عملية البيانات (في حالتنا هي عملية تغيير البيانات).

الخطوة التالية هي تحديد الجداول والمتغيرات:

أعلن @ID int. @Date Smalldatetime @nID int. @nDatesmalldatetime

قم بإلغاء تعريف المؤشر C1 لتحديد P_ID، وP_BerthDay من المدرج

قم بإلغاء تحديد المؤشر C2 لتحديد P_ID، وP_BerthDay من المحذوف

قمنا بتعيين خطوات اختيار البيانات. بعد ذلك نكتب في متن المؤشرات الحالة ورد الفعل عليها:

إذا @ID = @nID و@nDate = "01/01/2016"

sMasseges "لا يمكن إجراء العملية. التاريخ غير مناسب"

ومن الجدير بالذكر أنه لا يمكن إنشاء المشغل فحسب، بل يمكن أيضًا تعطيله مؤقتًا. لا يمكن إجراء هذا المعالجة إلا بواسطة مبرمج عن طريق تنفيذ أوامر SQL SERVER:

AltertablePERSONdisabletriggerall - لتعطيل جميع المشغلات التي تم إنشاؤها لهذا الجدول، وبالتالي،AltertablePERSONenabletriggerall - لتمكينها.

أوامر SQL الأساسية هذه هي الأكثر استخدامًا، ولكن يمكن أن تتنوع مجموعاتها. SQL هي لغة برمجة مرنة للغاية وتمنح المطور أقصى الإمكانيات.

خاتمة

من كل ما سبق، يمكننا استخلاص الاستنتاج الوحيد: معرفة لغة SQL ضرورية ببساطة لأولئك الذين سيشاركون بجدية في البرمجة. وهو يشكل أساس جميع العمليات التي يتم إجراؤها على الإنترنت وفي قواعد البيانات المنزلية. هذا هو السبب في أن المبرمج المستقبلي يجب أن يعرف العديد من أوامر هذه اللغة، لأنه فقط بمساعدتهم يمكن للمرء، إذا جاز التعبير، التواصل مع الكمبيوتر.

بالطبع، هناك عيوب، كما هو الحال في كل شيء في هذا العالم، لكنها ضئيلة للغاية أنها تتضاءل ببساطة مقارنة بالمزايا. من بين جميع لغات البرمجة، يعد SQL هو الوحيد من نوعه، لأنه عالمي، ومعرفة كتابة البرامج النصية والأكواد تكمن وراء جميع المواقع تقريبًا.

يمكن بلا شك اعتبار الميزة الرئيسية لـ SQL بساطتها، لأنها مدرجة في المناهج المدرسية. حتى المبرمج المبتدئ الذي لا يفهم اللغات حقًا يمكنه التعامل معها.