تطوير قواعد البيانات لموارد الإنترنتعمليا لا يختلف عن قواعد البيانات القياسية المتقدمة في نظام MS SQL SERVER. كقاعدة عامة ، يتم استخدام MY SQL لمثل هذه الموارد ، على الرغم من أنه يمكن تطبيقها أيضًا على تطوير منتجات البرامج القياسية للاستخدام المحلي. لكن المقال لن يناقش هذا.
في كثير من الأحيان عند العمل مع قواعد البيانات في كل مناللغات هي مهمة أخذ عينات البيانات للعرض في مجموعة متنوعة من التقارير ، الرسوم البيانية ، وهلم جرا. كقاعدة عامة ، عند تنفيذ هذا النوع من المهام ، يجب عليك استخدام واحد ، ولكن عدة جداول ، دمجها في استعلام واحد ، مما يعقد تصميمه بشكل كبير. في هذه الحالة ، من الضروري مراعاة كيفية عرض البيانات ، وكيف سيتم "سحب" الجداول ، وما هي النتيجة الأكثر قبولًا للمبرمج. لحل هذه المشكلات ، يتم استخدام أحد الإنشاءات القياسية للغة MySQL - Join.
لغات تطوير قواعد البيانات ، بغض النظر عن بالضبطإنه بالنسبة للغة ، تُؤخذ الكلمات القياسية من قواميس اللغة الإنجليزية كأساس (وهذا هو السبب ، شريطة أن تكون على دراية باللغة الإنجليزية ، سيكون من الأسهل لك العمل مع الجداول). لتنفيذ اتصال الجداول ، يتم أخذ نفس الكلمة في العينة - انضمام. تستخدم لغة برمجة قواعد البيانات My SQL. ترجمة هذه الكلمة الرسمية هي بالضبط نفس اللغة في اللغة نفسها - "جمعية".
تفسير بناء الخلية هو انضمام ، علاوة على ذلكأي منهم سيكون بالضبط نفس الشيء. إذا قمنا بفك تشفير الغرض من الهيكل ، أي مخطط تشغيله ، فسنحصل على القيمة التالية: سوف تسمح لنا الهياكل بجمع الحقول اللازمة من جداول مختلفة أو استعلامات متداخلة في عينة واحدة.
إذا كان مبرمج يحتاج إلى جمع عينة منعدة جداول ويعرف ما هي الحقول الرئيسية فيها ونوع البيانات اللازمة للتقرير ، ثم يمكنك استخدام أحد هياكل الاتحاد الرئيسية لتحقيق النتيجة المرجوة. هناك أربعة إنشاءات رئيسية (للانضمام الجداول):
اعتمادًا على المهمة ، سيعطي كل من التصميمات القياسية نتائج مختلفة ، مما سيسمح لك بتلقي تقارير حول المعلمات المختلفة في وقت قصير.
قبل أن تبدأ ، على سبيل المثال ، خذ بعين الاعتبارآليات للعمل مع بنيات اتحاد البيانات ، يجدر إعداد عدة جداول سنستمر في العمل معها. سيساعد هذا على إظهار جميع مبادئ عوامل التشغيل بشكل مرئي ، بالإضافة إلى ذلك ، بهذه الطريقة سوف يتعلم المبتدئون بسهولة أكبر جميع أساسيات جداول البرمجة.
يصف الجدول الأول بعض الأشياء التي يصادفها الشخص باستمرار طوال حياته.
في الجدول الثاني ، نقوم بوصف بعض خصائص الكائنات من الجدول الأول حتى تتمكن من العمل معهم في المستقبل.
بشكل عام ، سيكون الجدولان كافيين لإظهار عملهما باستخدام مثال. الآن يمكنك البدء في الفحص العملي لتصميماتنا.
عند استخدام بنية MySQL - انضم إلى Ineerيجدر النظر في بعض ميزاته. يتيح لك هذا التصميم الاختيار من كلا الجدولين فقط تلك السجلات الموجودة في الجدولين الأول والثاني. كيف يعمل؟ في الجدول الأول ، لدينا المفتاح الرئيسي - ID ، الذي يشير إلى الرقم التسلسلي للإدخالات في الجدول.
عند إنشاء جدول ثانٍ ، نفس المفتاحيستخدم كرقم تسلسلي ، يمكن رؤية مثال في الأشكال. عند تحديد البيانات ، سيحدد عامل التشغيل Select نتيجة لذلك فقط السجلات التي تتطابق أرقام تسلسلها - مما يعني أنها في الجدولين الأول والثاني.
عند استخدام التصميم ، عليك أن تفهمما نوع البيانات التي تريد الحصول عليها. الخطأ الأكثر شيوعًا ، خاصة لمبرمج قاعدة البيانات المبتدئ ، هو إساءة استخدام بنية الانضمام الداخلي وإساءة استخدامها. كمثال ، MySQL Inner Join ، يمكنك التفكير في نص برمجي سيعرض معلومات حول الكائنات وخصائصها من الجداول الموصوفة والمملوءة سابقًا. ولكن يمكن أن تكون هناك عدة طرق لاستخدام التصميم. في هذا الصدد ، My SQL هي لغة مرنة للغاية. لذا ، يمكنك التفكير في أمثلة على استخدام MySQL Inner Join.
ربط الجداول دون تحديد أي معلمات. في هذه الحالة ، نحصل على نتيجة مثل هذه الخطة:
إذا من خلال كلمة الخدمة باستخدام نشير إلى ذلكيجب أن تأخذ في الاعتبار المفاتيح الرئيسية للسجلات في الجداول ، ثم تتغير نتيجة التحديد بشكل كبير. في هذه الحالة ، نحصل على تحديد يُرجع فقط تلك الصفوف التي لها نفس المفاتيح الرئيسية.
من الممكن أيضًا استخدام حالة ثالثة.الإنشاءات في الاستعلام من خلال كلمة "على" يشار إلى الحقول التي يجب ربط الجداول بها. في هذه الحالة ، سيعيد التحديد البيانات التالية:
إذا كنت تفكر في طريقة أخرى للانضمام إلى الجداول باستخدام بنية MySQL - الانضمام ، يمكنك ملاحظة الاختلاف في البيانات المعروضة. مثل هذه الآلية هي بناء اليسار.
باستخدام بنية Left Join ، يحتوي MySQL على بعض الميزات ، مثل Inner ، يتطلب فهمًا واضحًا للنتيجة التي تحتاج إلى الحصول عليها.
في هذه الحالة ، سيتم تحديد جميع السجلات أولاً.من الجدول الأول ، وسيتم إرفاق السجلات اللاحقة من جدول الخصائص الثاني بها. علاوة على ذلك ، إذا كان هناك سجل في الجدول الأول ، على سبيل المثال ، "البراز" ، ولا توجد خصائص له في الجدول الثاني ، فإن العامل الأيسر سيعرض قيمة فارغة مقابل هذا السجل ، مما يخبر المبرمج أنه لا توجد علامات لهذا النوع من الكائنات .
سيسمح لك استخدام هذا التصميم بتحديد أي الحقول أو ، على سبيل المثال ، البضائع في المتجر لا يتم تسعيرها ، وفترة الضمان ، وما إلى ذلك.
للنظر العملي للعاملتستخدم بنى MySQL Left Join الجداول الموصوفة سابقاً. لنفترض أنك تحتاج إلى تحديد القائمة الكاملة للمنتجات الموجودة في المتجر ، والتحقق من أي منها ليست علامات أو خصائص ملحقة. في هذه الحالة ، سيعرض التحديد جميع المنتجات ، وتلك التي ليس لها خاصية سيكون لها قيم فارغة.
كمعلمة ، يمكن أن تتضمن الصلة ليس فقط إشارة إلى الحقول التي يجب من خلالها ربط الجداول ، ولكن يمكن أن تتضمن أيضًا عامل جملة Where.
على سبيل المثال ، ضع في اعتبارك النص الذي يجبارجع لنا فقط تلك السجلات التي لم يتم لصق السمة الخاصة بها. في هذه الحالة ، من الضروري إضافة عامل تشغيل شرط إلى بنية الانضمام وتحديد ما يجب إرجاعه بالضبط نتيجة لذلك.
عند استخدام MySQL Join - أين ، عليك أن تفهم بوضوح أنه سيتم عرض فقط تلك السجلات التي ينطبق عليها الشرط المحدد ، وعندها سيبدو التحديد كما يلي:
تسمح لك مثل هذه الاستعلامات بالاختيار من خلالبيانات محددة تتعلق بحالة اختارها المبرمج. يمكنك تحديد العديد من هذه الشروط ، مع زيادة دقة معلمات اختيار البيانات من الجداول المدمجة.
بنية الانضمام عالمية بشكل أساسي.لا يسمح فقط بإجراء اختيارات متنوعة ، ولكن أيضًا الاتصال من جدول واحد إلى عدة جداول في الاستعلامات ، لإدخال شروط إضافية في التحديد. يمكن استخدام البناء أيضًا لعمليات البيانات الأخرى. لذلك ، يمكن استخدام Join لتعديل البيانات في جدول. بدلاً من ذلك ، لتوضيح الشروط في الجدول ، أو في تلك الحالات التي تحتاج فيها إلى تحديث البيانات في عدة جداول وفقًا لنفس الشروط.
على سبيل المثال ، خذ بعين الاعتبار هذه المشكلة.يتم إعطاء ثلاثة جداول حيث تتوفر بعض البيانات. تحتاج إلى تعديل البيانات في كلا الجدولين باستخدام استعلام واحد. فقط لحل مثل هذه المهام ، يمكنك استخدام بناء الانضمام في الأمر تحديث. يعتمد نوع الانضمام على نفسه ، بنفس الطريقة كما في حالة أخذ عينات البيانات ، ويعتمد على النتيجة التي يريد المبرمج الحصول عليها.
تأمل أبسط مثال.من الضروري تحديث البيانات بنفس الشروط بطلب واحد. يتم إنشاء مثل هذه الاستعلامات لتحسين العمل مع قاعدة البيانات. لماذا تكتب استفسارات مختلفة لكل جدول ، إذا كان بإمكانك تنفيذ جميع التلاعبات بالبيانات في استعلام واحد؟ مثال على الانضمام إلى MySQL Update في حالتنا سيكون كما يلي:
في كثير من الأحيان عند العمل مع قاعدة بياناتمن الضروري إنشاء استعلامات ليس فقط مع اتحاد عدة جداول ، ولكن أيضًا باستخدام الاستعلامات الفرعية. مثل هذه المهام من الصعب جدًا على مبرمج قواعد البيانات الطموح فهمها. تكمن الصعوبة في حقيقة أنه يجب عليك التفكير في كل خطوة ، وتحديد البيانات من الجدول أو الاستعلام الذي تحتاج إلى الحصول عليه وكيف ستحتاج إلى العمل معهم في المستقبل.
لفهم أكثر تحديدًا ، يمكنك التفكير(في MySQL Join) أمثلة على الاستعلامات المعقدة. إذا كنت مبتدئًا وبدأت للتو في العمل مع قواعد البيانات ، فإن مثل هذا التدريب سيستفيد فقط. ستكون مثالية أمثلة الانضمام إلى MySQL.
سيعيد هذا الطلب 58 إدخالات العقد.المبيعات التي يتم فيها ملء رصيد نقدي أو موجود في التاريخ المحدد. في هذه الحالة ، هذا هو التاريخ الحالي. بالإضافة إلى ذلك ، تمت إضافة شرط إلى التحديد أن اسم العقد يجب أن يحتوي على الأحرف "123". سيتم فرز المعلومات (البيانات) المعروضة على الشاشة - مرتبة حسب رقم العقد.
سيعرض المثال التالي بيانات عن جميع المدفوعات التي سيتم فيها الإشارة إلى رقم العقد.
كما ذكرنا سابقًا ، عند العمل مع قواعد البياناتيمكن دمج البيانات ليس فقط الجداول ، ولكن أيضًا جدول مع استعلام. يستخدم هذا التصميم بشكل أساسي لتسريع الاستعلام وتحسينه.
على سبيل المثال ، إذا لزم الأمر من جدول ذلكيحتوي على عدة مئات من الحقول ، على سبيل المثال ، ألف سجل ، حدد حقلين فقط ، ثم يجب عليك استخدام استعلام يقوم بإرجاع الحقول الضرورية فقط ودمجها مع عينة البيانات الرئيسية. كمثال على MySQL Join Select ، يمكنك التفكير في استعلام من هذا النوع:
هذه ليست كل الطرق لاستخدام المعيارإنشاءات MySQL ، ولكن فقط التركيبات القياسية. كيفية استخدام بناء الانضمام وبأشكاله ، يقرر المبرمج ، ولكن من الجدير بالذكر والنظر في النتيجة التي يجب الحصول عليها عند تنفيذ الطلب.