استعلامات خادم SQL. مثال على إنشاء استعلام (استعلام) في قاعدة بيانات MS SQL Server

آخر تحديث: 07/05/2017

في الموضوع الأخير ، تم إنشاء قاعدة بيانات بسيطة مع جدول واحد في SQL Management Studio. الآن دعنا نحدد وننفذ استعلام SQL الأول. للقيام بذلك ، افتح SQL Management Studio ، وانقر بزر الماوس الأيمن على عنصر المستوى الأعلى في Object Explorer (اسم الخادم) وحدد استعلام جديد من قائمة السياق التي تظهر:

بعد ذلك ، سيتم فتح نافذة لإدخال أوامر SQL في الجزء المركزي من البرنامج.

دعنا ننفذ استعلامًا على الجدول الذي تم إنشاؤه في الموضوع السابق ، على وجه الخصوص ، سنحصل على جميع البيانات منه. تسمى قاعدة البيانات الخاصة بنا بالجامعة ، والجدول هو dbo.Students ، لذلك للحصول على البيانات من الجدول ، سنقوم بإدخال الاستعلام التالي:

اختر * من university.dbo.Students

تسمح لك عبارة SELECT بتحديد البيانات. يحدد FROM المصدر من مكان الحصول على البيانات. في الواقع ، مع هذا الاستعلام نقول "حدد الكل من جدول university.dbo.Students". من الجدير بالذكر أن المسار الكامل للجدول يستخدم لاسم الجدول ، مع الإشارة إلى قاعدة البيانات والمخطط.

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

نتيجة لتنفيذ الاستعلام ، سيظهر جدول صغير في أسفل البرنامج ، والذي سيعرض نتائج الاستعلام - أي جميع البيانات من جدول الطلاب.

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

استخدم الجامعة اختر * من الطلاب

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

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

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

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

محرر الاستعلام

لفتح لوحة محرر الاستعلام محرر الاستعلام، في شريط أدوات SQL Server Management Studio ، انقر فوق الزر استعلام جديد. يمكن توسيع هذه اللوحة لعرض الأزرار لإنشاء جميع الاستعلامات الممكنة ، وليس فقط استعلامات محرك قاعدة البيانات. افتراضيًا ، يتم إنشاء استعلام "مشغل قاعدة بيانات" جديد ، ولكن يمكنك أيضًا إنشاء استعلامات MDX و XMLA واستعلامات أخرى بالنقر فوق الزر المقابل على شريط الأدوات.

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

يوفر تحرير الاستعلامات في وضع عدم الاتصال مرونة أكبر مما لو كنت متصلاً بخادم. لا يتعين عليك الاتصال بخادم لتحرير الاستعلامات ، ويمكن فصل نافذة محرر الاستعلام عن خادم واحد (باستخدام استعلام أمر القائمة -> اتصال -> قطع الاتصال) والاتصال بخادم آخر دون فتح نافذة محرر أخرى. لتحديد وضع التحرير دون اتصال ، في مربع حوار اتصال الخادم الذي يظهر عند تشغيل المحرر لنوع استعلام معين ، ما عليك سوى النقر فوق الزر "إلغاء".

يمكنك استخدام محرر الاستعلام لإجراء المهام التالية:

    إنشاء وتنفيذ عبارات SQL للعمليات ؛

    حفظ جمل Transact-SQL التي تم إنشاؤها في ملف ؛

    إنشاء وتحليل خطط التنفيذ للاستفسارات الشائعة ؛

    توضيح رسومي لخطة تنفيذ الاستعلام المحدد.

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

تحدد عبارة استعلام USE الأولى لاستخدام قاعدة بيانات SampleDb كقاعدة بيانات حالية. العبارة الثانية ، SELECT ، تسترد جميع الصفوف في جدول الموظف. لتشغيل هذا الاستعلام وعرض النتائج ، في شريط أدوات محرر الاستعلام ، انقر فوق الزر تنفيذ أو اضغط على F5.

يمكنك فتح العديد من نوافذ محرر الاستعلام ، أي قم بإجراء اتصالات متعددة بمثيل واحد أو أكثر من مثيلات محرك قاعدة البيانات. يتم إنشاء اتصال جديد عن طريق النقر فوق الزر "استعلام جديد" على شريط أدوات SQL Server Management Studio.

يعرض شريط الحالة الموجود أسفل نافذة محرر الاستعلام المعلومات التالية المتعلقة بتنفيذ عبارات الاستعلام:

    حالة العملية الحالية (على سبيل المثال ، "اكتمل الطلب بنجاح") ؛

    اسم خادم قاعدة البيانات ؛

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

    اسم قاعدة البيانات الحالية ؛

    الوقت المستغرق لإكمال الطلب الأخير ؛

    عدد الأسطر التي تم العثور عليها.

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

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

يدعم SQL Management Studio SQL Intellisense ، وهو نوع من أدوات الإكمال التلقائي. بعبارة أخرى ، تقترح هذه الوحدة استكمالًا على الأرجح لعناصر عبارة Transact-SQL التي تم إدخالها جزئيًا.

يمكن لـ Object Explorer أيضًا المساعدة في تحرير الاستعلام. على سبيل المثال ، إذا كنت تريد معرفة كيفية إنشاء عبارة CREATE TABLE لجدول الموظف ، فانقر بزر الماوس الأيمن فوق الجدول في Object Explorer وحدد Script Table As -> CREATE to -> New Query Editor Window من القائمة المختصرة التي تظهر الجداول -> استخدام إنشاء -> نافذة محرر الاستعلام الجديد). يتم عرض نافذة محرر الاستعلام التي تحتوي على عبارة CREATE TABLE التي تم إنشاؤها على هذا النحو في الشكل أدناه. تنطبق هذه الإمكانية أيضًا على كائنات أخرى مثل الإجراءات والوظائف المخزنة.

يعد مستعرض الكائنات مفيدًا جدًا لعرض خطة التنفيذ بيانياً لاستعلام معين. خطة تنفيذ الاستعلام هي خيار تنفيذ يختاره مُحسِّن الاستعلام من بين عدة خيارات ممكنة لتنفيذ استعلام معين. أدخل الاستعلام المطلوب في اللوحة العلوية للمحرر ، وحدد تسلسل الأوامر من القائمة الاستعلام -> عرض خطة التنفيذ المقدرة (الاستعلام -> إظهار خطة التنفيذ المقدرة) وسيتم عرض خطة التنفيذ لهذا الاستعلام في اللوحة السفلية لنافذة المحرر.

مكتشف الحل

تحرير الاستعلامات في SQL Server Management Studio يعتمد على طريقة الحلول. إذا قمت بإنشاء استعلام فارغ باستخدام الزر "استعلام جديد" ، فسيعتمد على حل فارغ. يمكن ملاحظة ذلك عن طريق تشغيل تسلسل الأوامر من قائمة عرض -> مستكشف الحلول مباشرة بعد فتح استعلام فارغ.

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

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

تصحيح أخطاء SQL Server

يحتوي SQL Server ، بدءًا من SQL Server 2008 ، على مصحح رموز مضمن. لبدء جلسة تصحيح الأخطاء ، حدد تسلسل الأوامر التالي Debug -> Start Debugging من القائمة الرئيسية لـ SQL Server Management Studio. سننظر في تشغيل مصحح الأخطاء باستخدام مثال باستخدام حزمة الأوامر. الدُفعة عبارة عن تسلسل منطقي لعبارات SQL والامتدادات الإجرائية التي يتم إرسالها إلى مشغل قاعدة البيانات لتنفيذ جميع العبارات التي تحتوي عليها.

يوضح الشكل أدناه حزمة تحسب عدد الموظفين العاملين في مشروع p1. إذا كان هذا الرقم 4 أو أكثر ، فسيتم عرض الرسالة المقابلة. خلاف ذلك ، يتم عرض أسماء وألقاب الموظفين.

لإيقاف تنفيذ الحزمة عند تعليمات معينة ، يمكنك تعيين نقاط التوقف ، كما هو موضح في الشكل. للقيام بذلك ، انقر على يسار السطر الذي تريد التوقف عنده. عند بدء التصحيح ، يتوقف التنفيذ عند السطر الأول من التعليمات البرمجية ، والذي تم تمييزه بسهم أصفر. لمتابعة التنفيذ وتصحيح الأخطاء ، قم بتنفيذ أمر القائمة Debug -> Continue (تصحيح الأخطاء -> متابعة). سيستمر تنفيذ تعليمات الحزمة حتى نقطة الإيقاف الأولى ، وسيتوقف السهم الأصفر عند هذه النقطة.

يتم عرض المعلومات المتعلقة بعملية التصحيح في جزأين أسفل نافذة محرر الاستعلام. يتم تجميع المعلومات حول أنواع مختلفة من معلومات تصحيح الأخطاء في هذه اللوحات في عدة علامات تبويب. تحتوي اللوحة اليمنى على علامة التبويب السيارات (تلقائي) ، والسكان المحليون (محلي) وما يصل إلى خمس علامات تبويب مشاهدة (مرئية). يحتوي الجزء الأيمن على علامات التبويب Call Stack والخيوط ونقاط التوقف ونافذة الأوامر والنافذة الفورية والإخراج. تعرض علامة التبويب Locals قيمًا متغيرة ، وتعرض علامة التبويب Call Stack قيم مكدس الاستدعاءات ، وتعرض علامة التبويب Breakpoints معلومات حول نقاط التوقف.

لإيقاف عملية التصحيح ، قم بتنفيذ تسلسل الأوامر من القائمة الرئيسية Debug -> Stop Debugging أو اضغط على الزر الأزرق على شريط أدوات المصحح.

في SQL Server 2012 ، تم تحسين مصحح الأخطاء المضمن في SQL Server Management Studio بالعديد من الميزات الجديدة. يمكنك الآن إجراء عدد من العمليات التالية فيه:

    حدد شرط نقطة التوقف. شرط نقطة التوقفهو تعبير SQL تحدد قيمته المقيمة ما إذا كان سيتم إيقاف تنفيذ الكود عند نقطة معينة أم لا. لتحديد شرط نقطة التوقف ، انقر بزر الماوس الأيمن فوق الرمز الأحمر لنقطة التوقف المطلوبة وحدد الشرط من قائمة السياق. يفتح مربع الحوار Breakpoint Condition ، حيث تحتاج إلى إدخال التعبير المنطقي الضروري. بالإضافة إلى ذلك ، إذا كنت تريد إيقاف التنفيذ إذا كان التعبير صحيحًا ، فيجب عليك تعيين مفتاح Is True. إذا كان التنفيذ بحاجة إلى التوقف إذا تغير التعبير ، فأنت بحاجة إلى ضبط المفتاح عند التغيير (التغيير).

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

    1. غير مشروط (إجراء افتراضي) (استراحة دائمًا) ؛

      إذا كان عدد الزيارات يساوي القيمة المحددة (استراحة عندما يساوي عدده قيمة محددة) ؛

      إذا كان عدد مرات الدخول هو مضاعف القيمة المحددة (استراحة عندما يساوي عدد مرات الدخول مضاعف قيمة محددة) ؛

      إذا كان عدد الزيارات يساوي أو أكبر من القيمة المحددة (استراحة عندما يكون العدد أكبر أو يساوي قيمة محددة).

    لتعيين عدد مرات الدخول أثناء التصحيح ، انقر بزر الماوس الأيمن فوق رمز نقطة التوقف المطلوبة في علامة التبويب نقاط التوقف ، وحدد Hit Count من قائمة السياق ، ثم حدد أحد الشروط التالية في مربع الحوار Breakpoint Hit Count الذي يظهر: من القائمة أعلاه . بالنسبة للخيارات التي تتطلب قيمة ، أدخلها في مربع النص الموجود على يمين القائمة المنسدلة للشروط. لحفظ الشروط المحددة ، انقر فوق الزر "موافق".

    حدد عامل تصفية نقاط التوقف. يقيد عامل تصفية نقطة التوقف عملية نقطة التوقف على أجهزة كمبيوتر أو عمليات أو مؤشرات ترابط محددة فقط. لتعيين عامل تصفية نقاط التوقف ، انقر بزر الماوس الأيمن فوق نقطة التوقف المطلوبة وحدد تصفية من قائمة السياق. بعد ذلك ، في مربع الحوار Breakpoint Filters الذي يفتح ، حدد الموارد التي تريد تقييد تنفيذ نقطة الإيقاف هذه عليها. لحفظ الشروط المحددة ، انقر فوق "موافق".

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

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

    استخدم نافذة Quick Watch. في نافذة QuickWatch ، يمكنك عرض قيمة تعبير Transact-SQL ، ثم حفظ هذا التعبير في نافذة Watch Values. لفتح نافذة Quick Watch ، حدد Quick Watch من قائمة Debug. يمكن تحديد التعبير الموجود في هذه النافذة إما من القائمة المنسدلة Expression (Expression) أو إدخاله في هذا الحقل.

    استخدم تلميح أداة المعلومات السريعة. عندما تحوم فوق معرّف رمز ، تعرض أداة Quick Info إعلانها في نافذة منبثقة.

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

    جداول مشتقة

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

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

الجداول المشتقة

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

USE SampleDb ؛ حدد شهر (EnterDate) كـ enter_month FROM Works_on GROUP BY enter_month ؛

ستؤدي محاولة تنفيذ هذا الاستعلام إلى إرجاع رسالة الخطأ التالية:

msg 207 ، مستوى 16 ، حالة 1 ، سطر 5 اسم عمود غير صالح "enter_month". (الرسالة 207: المستوى 16 ، الحالة 1 ، السطر 5 اسم العمود غير صالح enter_month)

سبب الخطأ هو معالجة جملة GROUP BY قبل معالجة القائمة المقابلة من عبارة SELECT ، ولا يُعرف الاسم المستعار للعمود enter_month عند معالجة المجموعة.

يمكن حل هذه المشكلة باستخدام طريقة عرض تحتوي على الاستعلام السابق (بدون عبارة GROUP BY) ، لأنه يتم تنفيذ جملة FROM قبل عبارة GROUP BY:

USE SampleDb ؛ حدد enter_month من (SELECT MONTH (EnterDate) كـ enter_month FROM Works_on) AS m GROUP BY enter_month ؛

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

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

نتيجة هذا الاستعلام:

تعبيرات الجدول العامة

تعبير الجدول المشترك (OTB) (اختصار CTE اختصارًا)هو تعبير جدول مسمى تدعمه لغة Transact-SQL. يتم استخدام تعبيرات الجدول الشائعة في نوعي الاستعلامات التاليين:

    غير متكرر

    العودية.

تتم مناقشة هذين النوعين من الطلبات في الأقسام التالية.

استعلامات OTB وغير العودية

يمكن استخدام الشكل غير التكراري لـ OTB كبديل للجداول وطرق العرض المشتقة. عادة ما يتم تعريف OTB بواسطة C البنودواستعلام إضافي يشير إلى الاسم المستخدم في عبارة WITH. في Transact-SQL ، معنى الكلمة الأساسية WITH غامض. لتجنب الغموض ، يجب إنهاء العبارة التي تسبق عبارة WITH بفاصلة منقوطة.

استخدام AdventureWorks2012 ؛ حدد SalesOrderID من Sales.SalesOrderHeader حيث TotalDue> (حدد AVG (TotalDue) من Sales.SalesOrderHeader حيث YEAR (تاريخ الطلب) = "2005") والشحن> (حدد AVG (إجمالي الدين) من Sales.SalesOrderHeader حيث العام (تاريخ الطلب) = "2005 ") /2.5 ؛

يحدد الاستعلام في هذا المثال الطلبات التي يكون إجمالي ضرائبها (TotalDue) أكبر من متوسط ​​جميع الضرائب ، وتكون رسوم الشحن (Freight) الخاصة بها أكبر من 40٪ من متوسط ​​الضرائب. الخاصية الرئيسية لهذا الاستعلام هي كثرة حجمه ، حيث يجب كتابة الاستعلام المتداخل مرتين. تتمثل إحدى الطرق الممكنة لتقليل نطاق بنية الاستعلام في إنشاء طريقة عرض تحتوي على استعلام فرعي. لكن هذا الحل صعب بعض الشيء لأنه يتطلب إنشاء العرض ثم حذفه بعد انتهاء الاستعلام. أفضل طريقة هي إنشاء OTB. يوضح المثال أدناه استخدام OTB غير العودي ، والذي يختصر تعريف الاستعلام أعلاه:

استخدام AdventureWorks2012 ؛ مع price_calc (year_2005) AS (حدد AVG (TotalDue) من Sales.SalesOrderHeader حيث YEAR (تاريخ الطلب) = "2005") حدد SalesOrderID من Sales.SalesOrderHeader WHERE TotalDue> (حدد year_2005 من price_calc) والشحن> (حدد سعر السنة_2005) /2.5 ؛

صيغة جملة WITH في الاستعلامات غير العودية هي كما يلي:

المعلمة cte_name هي اسم OTB الذي يعرّف الجدول الناتج ، ومعلمة العمود_القائمة هي قائمة الأعمدة في تعبير الجدول. (في المثال أعلاه ، يُطلق على OTB اسم price_calc ويحتوي على عمود واحد ، year_2005.) تمثل المعلمة inner_query عبارة SELECT التي تحدد مجموعة النتائج لتعبير الجدول المقابل. يمكن بعد ذلك استخدام تعبير الجدول المحدد في الاستعلام الخارجي. (يستخدم الاستعلام الخارجي في المثال أعلاه OTB price_calc وعموده year_2005 لتبسيط الاستعلام المتداخل المزدوج.)

استعلامات OTB والعودية

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

المعلمات cte_name و column_list لها نفس المعنى كما في OTB للاستعلامات غير العودية. يتكون نص جملة WITH من استعلامين مرتبطين بالبيان اتحاد الكل. يتم استدعاء الاستعلام الأول مرة واحدة فقط ، ويبدأ في تجميع نتيجة العودية. لا يشير المعامل الأول لمشغل UNION ALL إلى OTB. يسمى هذا الاستعلام استعلام مرجعي أو مصدر.

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

ينضم عامل التشغيل UNION ALL إلى الصفوف التي تراكمت حتى الآن ، بالإضافة إلى الصفوف الإضافية التي تمت إضافتها بواسطة الاستدعاء الحالي إلى العضو المتكرر. (يعني وجود عامل التشغيل UNION ALL أنه لن تتم إزالة الصفوف المكررة من النتيجة.)

أخيرًا ، تحدد المعلمة external_query الاستعلام الخارجي الذي يستخدمه OTB للحصول على جميع المكالمات إلى اتحاد كلا العضوين.

لإثبات الشكل العودي لـ OTB ، نستخدم جدول طائرة محددًا ومليئًا بالشفرة الموضحة في المثال أدناه:

USE SampleDb ؛ إنشاء طائرة جدول (تحتوي على تجميع VARCHAR (10) ، تحتوي على تجميع VARCHAR (10) ، الكمية المحتوية على INT ، وحدة التكلفة العشرية (6،2)) ؛ أدخل في قيم الطائرة ("الطائرة" ، "جسم الطائرة" ، 1 ، 10) ؛ أدخل قيم الطائرة ("الطائرة" ، "الأجنحة" ، 1 ، 11) ؛ أدخل قيم الطائرة ("الطائرة" ، "الذيل" ، 1 ، 12) ؛ أدخل في قيم الطائرة ("جسم الطائرة" ، "صالون" ، 1 ، 13) ؛ أدخل في قيم الطائرة ("جسم الطائرة" ، "قمرة القيادة" ، 1 ، 14) ؛ أدخل في قيم الطائرة ("جسم الطائرة" ، "الأنف" ، 1 ، 15) ؛ أدخل قيم الطائرة ("الصالون" ، NULL ، 1،13) ؛ أدخل في قيم الطائرة ("الكابينة" ، NULL ، 1 ، 14) ؛ أدخل في قيم الطائرة ("الأنف" ، NULL ، 1 ، 15) ؛ أدخل قيم الطائرة ("الأجنحة" ، NULL ، 2 ، 11) ؛ أدخل قيم الطائرة ("الذيل" ، NULL ، 1 ، 12) ؛

يتكون جدول الطائرة من أربعة أعمدة. يعرّف عمود "التجميع المتضمن" التجميع ، ويحدد العمود "التجميع المتضمن" الأجزاء (واحدة تلو الأخرى) التي تشكل التجميع المقابل. يوضح الشكل أدناه رسمًا توضيحيًا لنوع محتمل من الطائرات والأجزاء المكونة لها:

يتكون جدول الطائرة من الصفوف الـ 11 التالية:

يستخدم المثال التالي جملة WITH لتحديد استعلام يحسب التكلفة الإجمالية لكل بناء:

USE SampleDb ؛ مع list_of_parts (التجميع 1 ، الكمية ، التكلفة) AS (حدد احتواء التجميع ، الكمية المحتواة ، تكلفة الوحدة من الطائرة حيث يكون التجميع لاغيًا ، الاتحاد الكل حدد أ. يحتوي على التجميع ، أ. الكمية المحتواة ، CAST (الكمية * لتر التكلفة كعشرية (6،2) ) من list_of_parts l ، الطائرة a حيث l.assembly1 = a.ContainedAssembly) حدد التجميع 1 "الجزء" والكمية "الكمية" والتكلفة "السعر" من list_of_parts ؛

تحدد جملة WITH قائمة OTB المسماة list_of_parts ، وتتكون من ثلاثة أعمدة: التجميع 1 والكمية والتكلفة. يتم استدعاء عبارة SELECT الأولى في المثال مرة واحدة فقط لتخزين نتائج الخطوة الأولى من عملية العودية. تعرض عبارة SELECT في السطر الأخير من المثال النتيجة التالية.

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

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

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

طاولة - دعنا نتخيل مجلدًا يخزن المستندات المجمعة وفقًا لسمة معينة ، على سبيل المثال ، قائمة الطلبات للشهر الماضي. هذا هو الجدول الموجود في الكمبيوتر ، والجدول المنفصل له اسم فريد خاص به.

نوع البيانات - نوع المعلومات المسموح تخزينها في عمود أو صف معين. يمكن أن تكون أرقامًا أو نصوصًا بتنسيق معين.

العمود والصف- لقد عملنا جميعًا مع جداول البيانات التي تحتوي أيضًا على صفوف وأعمدة. تعمل أي قاعدة بيانات علائقية مع الجداول بنفس الطريقة. تسمى الصفوف أحيانًا سجلات.

المفتاح الأساسي- يمكن أن يحتوي كل صف في الجدول على عمود أو أكثر لتعريفه بشكل فريد. بدون مفتاح أساسي ، من الصعب جدًا تحديث وتعديل وحذف الصفوف المطلوبة.

ما هو SQL؟

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

منذ عام 1992 ، كان هناك معيار مقبول بشكل عام يسمى ANSI SQL. إنه يحدد البنية الأساسية ووظائف المشغلين ويدعمه جميع رواد سوق DBMS مثل ORACLE. من المستحيل تغطية جميع إمكانيات اللغة في مقال صغير واحد ، لذلك سننظر بإيجاز في استعلامات SQL الأساسية فقط. توضح الأمثلة بساطة اللغة وإمكانياتها:

  • إنشاء قواعد البيانات والجداول.
  • أخذ عينات البيانات
  • إضافة السجلات
  • تعديل وحذف المعلومات.

أنواع بيانات SQL

تخزن جميع الأعمدة في جدول قاعدة البيانات نفس نوع البيانات. أنواع البيانات في SQL هي نفسها في لغات البرمجة الأخرى.

إنشاء الجداول وقواعد البيانات

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

  • من خلال وحدة تحكم DBMS
  • استخدام أدوات الإدارة التفاعلية المضمنة مع خادم قاعدة البيانات.

يتم إنشاء قاعدة بيانات جديدة من قبل المشغل إنشاء قاعدة بيانات<наименование базы данных>; . كما ترى ، الصيغة بسيطة وموجزة.

نقوم بإنشاء جداول داخل قاعدة البيانات باستخدام عبارة CREATE TABLE مع المعلمات التالية:

  • اسم الطاولة
  • أسماء الأعمدة وأنواع البيانات

كمثال ، دعنا ننشئ جدول السلع بالأعمدة التالية:

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

إنشاء سلعة الجدول

(السلعة_id CHAR (15) NOT NULL ،

vendor_id CHAR (15) NOT NULL ،

السلعة_name CHAR (254) NULL ،

السلع_السعر_العادي (8،2) NULL ،

سلعة _desc فاركار (1000) NULL) ؛

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

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

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

حدد اسم السلعة من السلع

بعد عبارة SELECT ، نحدد اسم العمود للحصول على المعلومات ، و FROM يحدد الجدول.

ستكون نتيجة تنفيذ الاستعلام عبارة عن جميع صفوف الجدول مع قيم Commodity_name بالترتيب الذي تم إدخالها به في قاعدة البيانات ، أي بدون أي فرز. يتم استخدام عبارة ORDER BY إضافية لطلب النتيجة.

للاستعلام عن حقول متعددة ، قم بإدراجها مفصولة بفواصل ، كما في المثال التالي:

حدد معرّف السلعة ، اسم_سلعة ، سعر_سلعة من السلع الأساسية

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

حدد * من السلع

  • بالإضافة إلى ذلك ، يدعم SELECT:
  • فرز البيانات (ORDER BY بيان)
  • اختر وفقا للشروط (أين)
  • مصطلح التجميع (GROUP BY)

مضيفا خط

لإضافة صف إلى جدول ، يتم استخدام استعلامات SQL مع عبارة INSERT. يمكن إجراء الإضافة بثلاث طرق:

  • إضافة سطر كامل جديد ؛
  • جزء من خيط
  • نتائج الاستعلام.

لإضافة صف كامل ، يجب تحديد اسم الجدول وقيم الأعمدة (الحقول) للصف الجديد. هذا مثال:

أدخل في قيم السلع ("106" ، "50" ، "Coca-Cola" ، "1.68" ، "بدون كحول ،)

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

إذا أضفت جزءًا فقط من صف ، فيجب عليك تحديد أسماء الأعمدة صراحةً ، كما في المثال:

أدخل السلع (معرّف السلعة ، معرّف_المورد ، اسم_السلعة)

القيم ("106"، "50"، "Coca Cola"،)

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

إضافة نتائج الاستعلام

يستخدم INSERT بشكل أساسي لإضافة صفوف ، ولكن يمكن استخدامه أيضًا لإضافة نتائج عبارة SELECT.

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

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

  • تم تحديث جميع الصفوف في الجدول.
  • فقط لخط معين.

يتكون التحديث من ثلاثة عناصر رئيسية:

  • الجدول الذي من الضروري إجراء تغييرات فيه ؛
  • أسماء الحقول وقيمها الجديدة ؛
  • شروط اختيار الصفوف لتغييرها.

تأمل في مثال. لنفترض أن سعر المنتج بالمعرف = 106 قد تغير ، لذلك يجب تحديث هذا الصف. نكتب البيان التالي:

قم بتحديث مجموعة السلع الأساسية بسعر السلعة = "3.2" حيث معرّف السلعة = "106"

حددنا اسم الجدول ، في حالتنا Commodity ، حيث سيتم إجراء التحديث ، ثم بعد SET - القيمة الجديدة للعمود والعثور على السجل المطلوب عن طريق تحديد قيمة المعرف المطلوبة في WHERE.

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

تحديث مجموعة السلع اسم_السلع = "فانتا" ، سعر_السلع = "3.2" حيث معرّف السلعة = "106"

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

قم بتحديث مجموعة السلع Goods_desc = NULL حيث يوجد معرّف سلعة = "106"

إزالة الصفوف

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

  • يتم حذف صفوف معينة من الجدول ؛
  • يتم حذف جميع الصفوف في الجدول.

مثال على حذف صف واحد من جدول:

حذف من السلع حيث معرف_السلع = "106"

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

لا تحدد عبارة DELETE أسماء الأعمدة أو الأحرف الأولية. يزيل الصفوف تمامًا ، لكن لا يمكنه إزالة عمود واحد.

استخدام SQL في Microsoft Access

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

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

ملحقات SQL

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

اللهجات الأكثر شيوعًا في اللغة:

  • Oracle Database - PL / SQL
  • Interbase ، Firebird - PSQL
  • Microsoft SQL Server - Transact-SQL
  • PostgreSQL - PL / pgSQL.

SQL إلى الويب

يتم توزيع MySQL DBMS بموجب رخصة جنو العمومية العامة. هناك رخصة تجارية مع القدرة على تطوير وحدات مخصصة. كجزء لا يتجزأ ، يتم تضمينه في أكثر مجموعات خوادم الإنترنت شيوعًا ، مثل XAMPP و WAMP و LAMP ، وهو أكثر نظم إدارة قواعد البيانات شيوعًا لتطوير التطبيقات على الإنترنت.

تم تطويره بواسطة Sun Microsystems وتديره حاليًا شركة Oracle Corporation. يدعم قواعد بيانات تصل إلى 64 تيرابايت ، ومعيار بناء جملة SQL: 2003 ، وتكرار قواعد البيانات والخدمات السحابية.

SQL- لغة الاستعلام الهيكلية.
في هذه المراجعة ، سننظر في الأنواع الأكثر شيوعًا لاستعلامات SQL.
يتم تعريف معيار SQL ANSI(المعهد الوطني الأمريكي للمعايير).
SQL هي لغة تستهدف بشكل خاص قواعد البيانات العلائقية.

انقسام SQL:


DDL
(لغة تعريف البيانات) - تتكون ما يسمى بلغة وصف المخطط في ANSI ، من أوامر تنشئ كائنات (جداول ، وفهارس ، وطرق عرض ، وما إلى ذلك) في قاعدة البيانات.
DML(لغة معالجة البيانات) عبارة عن مجموعة من الأوامر التي تحدد القيم الموجودة في الجداول في أي وقت.
DCD(لغة إدارة البيانات) يتكون من وسائل تحدد ما إذا كان سيتم السماح للمستخدم بتنفيذ إجراءات معينة أم لا. هم جزء من DDL في ANSI. لا تنس هذه الأسماء. هذه ليست لغات مختلفة ، ولكن أقسام أوامر SQL مجمعة حسب وظيفتها.

أنواع البيانات:

خادم SQL - أنواع البيانات

وصف

بيجينت (كثافة العمليات 8)

بيجينت (كثافة العمليات 8)

الثنائية(ن)

الثنائية(ولا صورة

شخصية
(مرادف شار)

وطني شخصيةأو ntext

شخصية متفاوتة(مرادف varchar شار متفاوتة)

الطابع القومي متفاوتةأو ntext

التاريخ والوقت

التاريخ والوقت

عدد عشري

هو عددي

دقة مزدوجة

دقة مزدوجة

عدد صحيح (كثافة العمليات 4) (مرادف: int)

عدد صحيح (كثافة العمليات 4)

طابع وطني(مرادف: طابع وطني, نشار)

طابع وطني

رقمي(المرادفات: عدد عشري, ديسمبر)

الطابع القومي متفاوتة(المرادفات: الطابع القومي متفاوتة, نفارشار)

الطابع القومي متفاوتة

سمولداتيمي

التاريخ والوقت

الصغيرة (كثافة العمليات 2)

الصغيرة (كثافة العمليات 2)

مال صغير

sql_variant

لم يعد مدعومًا

Ntext
بدءًا من SQL Server 2005 ، لا يوصى باستخدامه.

الطابع الزمني

غير مدعوم

تينيينت (كثافة العمليات 1)

تينيينت (كثافة العمليات 1)

معرف فريد

معرف فريد

متنوع(ن)

متنوع(ولا صورة

سمولداتيمي

التاريخ والوقت

الصغيرة (كثافة العمليات 2)

الصغيرة (كثافة العمليات 2)

أموال صغيرة

sql_variant

غير مدعوم

الطابع الزمني

غير مدعوم

تينيينت (كثافة العمليات 1)

تينيينت (كثافة العمليات 1)

معرف فريد

معرف فريد

متنوع(ن)

متنوع(ولا صورة

جدول نوع البيانات في SQL Server 2000

ما هو الطلب؟

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

أمر SELECT:

يختار"تحديد" هو الأمر الأكثر استخدامًا ، حيث يتم استخدامه لتحديد البيانات من الجدول.
نوع الاستعلام باستخدام SELECT:

حدد المعرف ، اسم المستخدم ، المدينة ، يوم الميلاد من قاعدة المستخدمين ؛

سيعرض مثل هذا الاستعلام من جدول users_base جميع قيم الأعمدة المحددة بفاصلة بعد الأمر SELECT. يمكنك أيضًا عرض جميع الأعمدة بحرف واحد ، * أي حدد * من users_base ؛ - سيعرض هذا الاستعلام جميع البيانات من الجدول.

حدد هيكل الأمر:

حدد (أسماء الأعمدة المفصولة بفواصل ليتم عرضها في الاستعلام) من (اسم الجدول في قاعدة البيانات)
هو أبسط نوع من الطلبات. هناك أوامر إضافية لسهولة استخراج البيانات (انظر أدناه "الوظائف")

أوامر DML:

يمكن وضع القيم وإزالتها من الحقول باستخدام ثلاثة أوامر DML (لغة معالجة البيانات):
إدراج(إدراج)
تحديث(تحديث ، تعديل) ،
يمسح(حذف)

أمر INSERT:

INSERT INTO users_base (user_name، city، birth_day) VALUES ('Alexander'، 'Rostov'، '20 .06.1991 ') ؛

يأتي الأمر INSERT مع البادئة INTO (in to - in) ، ثم بين قوسين هي أسماء الأعمدة التي يجب علينا إدراج البيانات فيها ، ثم يأتي الأمر VALUES (القيم) ، وفي الأقواس توجد قيم بدورها (من الضروري مراقبة ترتيب القيم بالأعمدة ، يجب أن تأتي القيم بنفس ترتيب الأعمدة التي تحددها).

أمر التحديث:

UPDATE users_base SET user_name = "أليكس" ،

يقوم الأمر UPDATE بتحديث القيم الموجودة في جدول. يأتي أولاً أمر UPDATE نفسه ، ثم اسم الجدول ، بعد الأمر SET (مجموعة) ، ثم اسم العمود وقيمته بين علامتي اقتباس (يتم وضع علامات الاقتباس إذا كانت القيمة تحتوي على تنسيق سلسلة ، إذا كانت قيمة رقمية وكان العمود غير مرتبط بنوع بيانات vchar وأي أنواع سلاسل أخرى ، فإن علامات الاقتباس لا معنى لها.)

أمر DELETE:

احذف من users_base WHERE user_name = 'Vasily' ؛

يحذف الأمر DELETE السطر بأكمله ، ويحدد السطر بواسطة معيار WHERE (أين). في هذه الحالة ، سيؤدي هذا الاستعلام إلى إزالة جميع الصفوف حيث كانت قيمة عمود اسم المستخدم هي فاسيلي. سنتحدث عن معايير WHERE وغيرها بعد قليل.

المعايير والوظائف والشروط وما إلى ذلك. مما يساعدنا في SQL:

عبارة WHERE في الأمر SELECT وأوامر DML الأخرى التي تسمح لك بتعيين المسندات التي يمكن أن تكون حالتها إما صحيحة أو خاطئة لأي صف في جدول. يستخرج الأمر فقط تلك الصفوف من الجدول التي يكون فيها هذا البيان صحيحًا.
مثال:
حدد المعرف والمدينة و Birth_day FROM users_base WHERE user_name = 'Alex' ؛- سيعرض هذا الاستعلام فقط تلك الصفوف التي ستطابق الشرط WHERE ، أي جميع الصفوف التي يكون فيها عمود اسم المستخدم قيمة Alex.

ORDER BY - شرط فرز الصفوف المحددة. لديها معياران ASC و DESC. ASC (فرز A إلى Z أو 0 إلى 9)

DESC (مقابل ASC).
مثال:
حدد المعرف والمدينة و Birth_day من users_base ORDER BY user_name ASC ؛ - سيعرض هذا الاستعلام القيم التي تم فرزها بواسطة عمود اسم المستخدم من الألف إلى الياء (من الألف إلى الياء ؛ 0-9)

يمكن أيضًا استخدام هذا الشرط جنبًا إلى جنب مع عبارة WHERE.
مثال:
حدد المعرف والمدينة و Birth_day من users_base WHERE user_name = 'Alex' ORDER BY id ASC ؛

DISTINCT (مميز) هي وسيطة توفر لك طريقة لإزالة القيم المكررة من عبارة SELECT الخاصة بك. أولئك. إذا كنت قد كررت القيم في عمود ، دعنا نقول user_name ، فسيعرض DISTINCT قيمة واحدة فقط لك ، على سبيل المثال ، لديك شخصان باسم Alexey في قاعدة البيانات ، ثم الاستعلام باستخدام وظيفة DISTINCT سيعرض قيمة واحدة فقط يصادف أولاً ...
مثال:
حدد DISTINCT user_name من users_base ؛- سيعرض هذا الاستعلام قيم جميع السجلات في عمود اسم المستخدم ، لكنها لن تتكرر ، أي إذا كان لديك عدد لا حصر له من القيم المكررة ، فلن يتم عرضها ...

AND - تأخذ منطقتين (في الشكل A و B) كوسيطتين وتقيمهما مقابل الصواب لمعرفة ما إذا كان كلاهما صحيحًا.
مثال:
حدد * من users_base WHERE city = 'Rostov' AND user_name = 'Alexander' ؛- يعرض جميع القيم من الجدول حيث يظهر اسم المدينة في سطر واحد (في هذه الحالة ، Rostov واسم المستخدم Alexander.

أو - يأخذ منطقتان (في الشكل أ أو ب) كوسيطات ويقيم ما إذا كان أحدهما صحيحًا.

حدد * من users_base WHERE city = 'Rostov' OR user_name = 'Alexander' ؛- يعرض جميع القيم من الجدول حيث يحتوي السطر على اسم مدينة روستوف أو اسم المستخدم الكسندر.

NOT - تأخذ قيمة منطقية واحدة (في صيغة NOT A) كوسائط وتغير قيمتها من خطأ إلى صحيح أو صحيح إلى خطأ.
حدد * من users_base WHERE city = 'Rostov' OR NOT user_name = 'Alexander' ؛- سيعرض جميع القيم من الجدول حيث يظهر اسم مدينة روستوف في سطر واحد أو لن يكون اسم المستخدم هو الإسكندر تمامًا.

IN - تحدد مجموعة من القيم التي يمكن أو لا يتم تضمينها فيها.
حدد * من users_base أين تقع المدينة ("فلاديفوستوك" ، "روستوف") ؛- سيعرض هذا الاستعلام جميع القيم من الجدول الذي يحتوي على أسماء المدن المحددة في عمود المدينة

بين - على غرار عامل IN. على عكس التحديد بالأرقام من مجموعة ، كما يفعل IN ، يحدد BETWEEN نطاقًا يجب أن تنخفض قيمه لجعل المسند صحيحًا.
حدد * من users_base حيث المعرف بين 1 و 10 ؛- يعرض جميع القيم من الجدول التي ستكون في النطاق من 1 إلى 10 في عمود المعرف

COUNT - ينتج أرقام صفوف أو قيم غير فارغة للحقول التي حددها الاستعلام.
حدد COUNT (*) من users_base ؛- يعرض عدد الصفوف في الجدول المحدد.
حدد COUNT (DISTINCT user_name) من users_base ؛- سيعرض عدد الأسطر بأسماء المستخدمين (غير مكرر)

SUM - ينتج المجموع الحسابي لجميع القيم المحددة في الحقل المحدد.
حدد المجموع (المعرف) من users_base ؛- يعرض مجموع قيم جميع صفوف عمود المعرف.

AVG - متوسط ​​جميع القيم المحددة للحقل المحدد.
حدد AVG (المعرف) من users_base ؛- سيتم إخراج متوسط ​​جميع القيم المحددة لعمود المعرف

MAX - ينتج أكبر عدد من القيم المحددة في الحقل المحدد.

MIN - ينتج أصغر القيم المحددة للحقل المحدد.

إنشاء الجدول:

CREATE TABLE users_base (رقم التعريف الصحيح ، نص اسم المستخدم ، نص المدينة ، تاريخ الميلاد والوقت) ؛- سيؤدي تنفيذ مثل هذا الأمر إلى إنشاء جدول ، ووفقًا لذلك أعطيت أمثلة ... كل شيء بسيط هنا ، نكتب الأمر CREATE TABLE ، ثم اسم الجدول الذي نريد إنشاؤه ، ثم بين قوسين ، مفصولة بفواصل ، أسماء الأعمدة ونوع بياناتها. هذه هي الطريقة القياسية لإنشاء جدول في SQL. سأقدم الآن مثالاً على إنشاء الجداول في SQL Server 2005:

ضبط ANSI_NULLS على
يذهب
ضبط QUOTED_IDENTIFIER على
يذهب
إذا لم يكن EXISTS (حدد * من sys.objects WHERE object_id = OBJECT_ID (N ".") واكتب (N "U"))
يبدأ
اصنع جدول .(

غير فارغة،
غير فارغة،
غير فارغة،
المفتاح الأساسي مغلق
ASC


نهاية
يذهب
ضبط ANSI_NULLS على
يذهب
ضبط QUOTED_IDENTIFIER على
يذهب
إذا لم يكن EXISTS (حدد * من sys.objects WHERE object_id = OBJECT_ID (N ".") واكتب (N "U"))
يبدأ
اصنع جدول .(
الهوية (1،1) ليست فارغة ،
باطل،
باطل،
المفتاح الأساسي مغلق
ASC
) مع (IGNORE_DUP_KEY = إيقاف) قيد التشغيل
) في TEXTIMAGE_ON
نهاية
يذهب
ضبط ANSI_NULLS على
يذهب
ضبط QUOTED_IDENTIFIER على
يذهب
إذا لم يكن EXISTS (حدد * من sys.objects WHERE object_id = OBJECT_ID (N ".") واكتب (N "U"))
يبدأ
اصنع جدول .(
الهوية (1،1) ليست فارغة ،
باطل،
باطل،
المفتاح الأساسي مغلق
ASC
) مع (IGNORE_DUP_KEY = إيقاف) قيد التشغيل
) على
نهاية

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

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