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

السؤال

Recommended Posts

  • 1
نشر

تُستخدم الأسماء المستعارة لـ SQL لإعطاء اسم مؤقت لجدول أو عمود في جدول.

  • غالبًا ما تستخدم الأسماء المستعارة لجعل أسماء الأعمدة أكثر قابلية للقراءة.
  • الاسم المستعار موجود فقط لمدة هذا الاستعلام.
  • يتم إنشاء اسم مستعار باستخدام الكلمة الأساسية AS.
  • يوجد أكثر من جدول واحد متضمن في الاستعلام
  • يتم استخدام functions في الاستعلام
  • أسماء الأعمدة كبيرة أو غير مقروءة جيدًا
  • يتم دمج عمودين أو أكثر معًا فنعطي اسم العمود الناتج عن الدمج اسم يعبر عنه
  • يمكن استخدام column_alias في عبارة ORDER BY ، ولكن لا يمكن استخدامها في جملة WHERE أو GROUP BY أو HAVING.
  • لا يسمح SQL القياسي بالإشارة إلى الأسماء المستعارة للأعمدة في جملة WHERE. يتم فرض هذا التقييد لأنه عند تقييم جملة WHERE ، يكون لم يتم تحديد قيمة العمود بعد، بسبب ترتيب تنفيذ  أجزاء الاستعلامات.
  • يمكن إعطاء اسم مستعار لنتيجة subquery أي استعلام جزئي
  • يمكن إعطاء اسم مستعار لنتيجة دالة تجميع aggregation function مثل sum - man - avg

أمثلة عامة:

-- اسم مستعار لعمود Alias Column 
SELECT column_name_1 AS alias_name_1, column_name_2 AS alias_name_2,
FROM table_name_1;

-- اسم مستعار لجدول Alias Table 
SELECT column_name_s, *..
FROM table_name AS alias_name_table;

اسم مستعار لعمود مع دوال التجميع:

SELECT SQRT(a*b) AS root_square 
FROM math_table
GROUP BY root HAVING root_square > 0;


SELECT id, COUNT(*) AS count 
FROM employees
GROUP BY id HAVING count > 0;


SELECT id AS 'Customer identity' -- اسم توضيحي
FROM Customer;

دمج جدول مع نفسه:

SELECT o.OrderID, o.OrderDate, c.CustomerName -- استخدام الاسم المستعار في SELECT

FROM Customers c, Orders o -- يمكن تجاهل زضع as

WHERE c.CustomerName LIKE "wael%" AND c.CustomerID=o.CustomerID;

إعادة تسمية ناتج دمج عدة أعمدة:

SQL SERVER:

SELECT Name, CONCAT(Address,', ',City,', ',Country) AS Address
FROM Customers;


MySQL:

SELECT Name, Address + ', ' + City + ', ' + Country AS Address
FROM Customers;

 

  • 0
نشر (معدل)

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

وسبب أخر مهم و هو أكثر موضوعية. إذا ظهر الجدول أكثر من مرة في جملة From فأنت بحاجة إلى أسماء مستعاره  للجدول من أجل الاحتفاظ بما قمت باستخراجة مميزا. تنضم إلى الاحتياج ذاته  الحالات التي يحتوي فيها الجدول على مفتاح أجنبي foreign key يشير إلى المفتاح الأساسي primary key لنفس الجدول

أما عن طريقة استخدامها فهي كالتالي:

SELECT
	inv_no AS invoice_no,
	amount,
	due_date AS 'Due date',
	cust_no 'Customer No'
FROM
	invoices;

مثال أخر:

SELECT emp.deptno as "DeptID", SUM(emp.sal) as "DeptSal"

FROM employees emp

GROUP BY emp.deptno

HAVING emp.deptno = 20;

 

تم التعديل في بواسطة Ahmed Sharshar
  • 0
نشر

بالإضافة إلى إجابة أستاذ أحمد, يوجد مواقف تحتاج أن تستخدم فيها الأسماء المستعارة (aliases) حتى تتمكن من تنفيذ الجملة الإستعﻻمية المُراد تنفيذها, مثلاً إن كان لدينا الجدول employee وأردنا أن نجلب جميع الموظفين الذين لديهم نفس المدينة, وقتها نحتاج أن نقوم بما يُدعى بالself join حيث أنك تقوم بكتابة جملة join ولكن بدلاً من أن تكون بين جدولين تكون بين الجدول ونفسه,  مثال:

SELECT a.name AS name1, n.name AS name2, a.City
FROM Customers a, Customers n
WHERE a.id <>n.id
AND a.City = n.City

بدون إعطاء أسماء مستعارة لن نتمكن من تفنيذ جملة مثل السابقة

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...