اذهب إلى المحتوى

السؤال

نشر (معدل)

هل يمكن لأحد أن يشرح لي الاسماء المستعارة Aliases في SQLite. و كيف يتم استخدام نفس الجدول مرتين.

تم التعديل في بواسطة Abdelrehman Elsied

Recommended Posts

  • 0
نشر

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

والاسم المستعار يُكتب بواسطة الكلمة المفتاحية AS وتستطيع أيضًا الاكتفاء بوضع مسافة فقط بين الاسم الأصلي والاسم المستعار، وكمثال للأعمدة:

SELECT prod_price AS Price FROM products;

أو:

SELECT prod_price Price FROM products;

لكن الأولى أفضل لأنها أوضح.

ونطبق نفس الفكرة لاختصار اسم الجدول products ليصبح حرف p لتسهيل كتابة الاستعلام.

SELECT p.prod_price FROM products AS p;

وبالمسافة:

SELECT p.prod_price FROM products p;

هنا أيضاً، سيفهم SQLite أن الحرف p هو اختصار واسم مستعار للجدول products.

والفائدة الفعلية تظهر، عندما يتواجد بيانات في الجدول على علاقة ببيانات أخرى داخل نفس الجدول، ولو حاولت كتابة استعلام مثل FROM employees JOIN employees، سيُصاب محرك SQLite بالارتباك لأنه لن يعرف أي نسخة من الجدول تقصد عندما تطلب عمود معين، والحل هو إعطاء اسم مستعار مختلف لكل نسخة من الجدول.

SELECT 
    E.name AS "Employee Name", 
    M.name AS "Manager Name"
FROM employees AS E
LEFT JOIN employees AS M 
    ON E.manager_id = M.id;

 

  • 0
نشر

وعليكم السلام ورحمة الله،

الأسماء المستعارة في SqlLite هي أسماء مؤقتة تعطيها للجداول أو الأعمدة داخل استعلام واحد لتسهيل القراءة أو لحلّ التعارض عندما تستخدم نفس الجدول أكثر من مرة في نفس الاستعلام.

وال Alias لا يغيّر اسم الجدول أو العمود في قاعدة البيانات فهو اسم مؤقت داخل الاستعلام فقط ويستخدم مع الجداول ومع الأعمدة، وغالبا يكتب بواسطة الكلمة AS أو حتى بدونها في SQLite كالتالي:

SELECT
    first_name AS name,
    salary     AS monthly_salary
FROM employees;
فهنا name هو اسم مستعار للعمود first_name.monthly_salary.

  • 0
نشر

الاسم المستعار هو ببساطة اسم مؤقت نعطيه لجدول أو لعمود داخل الاستعلام (Query) لتسهيل قراءته أو لفك التعارض. يتم ذلك عادة باستخدام الكلمة المفتاحية AS.

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

الحل باستخدام الاسماء المستعارة يكون كالتالي

SELECT 
    Sub.CategoryName AS "القسم الفرعي",
    Main.CategoryName AS "القسم الرئيسي"
FROM 
    Categories Sub
JOIN 
    Categories Main ON Sub.ParentID = Main.CategoryID;

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...