TOP

SQL-الدرس 6. الحقول المحسوبة (المحسوبة).

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


1. إجراء العمليات الحسابية

إحدى طرق استخدام الحقول المحسوبة هي إجراء عمليات حسابية على البيانات المحددة. لنأخذ مثالاً لكيفية حدوث ذلك، باستخدام جدول Sumproduct مرة أخرى. لنفترض أنك بحاجة إلى حساب متوسط ​​سعر الشراء لكل منتج. للقيام بذلك، تحتاج إلى إعادة توزيع عمود المبلغ على Quantity (الكمية):

Run SQLSELECT DISTINCT Product, Amount/Quantity 
FROM Sumproduct

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

2. استخدام أسماء مستعارة

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

Run SQLSELECT DISTINCT Product, Amount/Quantity AS AvgPrice 
FROM Sumproduct

نرى أن حقل الحساب الخاص بنا قد حصل على اسمه الخاص AvgPrice. لهذا استخدمنا عامل التشغيل AS، وبعد ذلك حددنا الاسم الذي نحتاجه. تجدر الإشارة إلى أنه يتم دعم العمليات الرياضية الأساسية فقط في لغة SQL: الجمع (+)، والطرح (-)، والضرب (*)، والقسمة (/). يمكنك أيضًا استخدام الأقواس المستديرة لتغيير تسلسل العمليات.

غالبًا ما تُستخدم الأسماء المستعارة ليس فقط لتسمية حقول العمليات الحسابية، ولكن أيضًا لإعادة تسمية الحقول النشطة. قد يكون ذلك ضروريًا إذا كان للحقل النشط اسم طويل أو إذا لم يكن الاسم غنيًا بالمعلومات بشكل كافٍ.

3. اتصال الحقول (التسلسل)

بالإضافة إلى العمليات الحسابية، يمكننا أيضًا دمج النص وعرضه في حقل منفصل. دعونا نفكر في كيفية لصق (تسلسل) النص. لتوصيل نص من أعمدة مختلفة في MS Access، يتم استخدام عامل الجمع (+)، على سبيل المثال:

Run SQLSELECT Month + ' ' + Product AS NewField, Quantity  
FROM Sumproduct

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

عامل التشغيل الزائد (+) غير مدعوم في لهجة MySQL لتوصيل (تسلسل) النص من أعمدة متعددة. في هذه الحالة، استخدم الدالة CONCAT().