آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

آموزش Alias در MySQL

امین علیپور  8 سال پیش  8 سال پیش
+3 0

این مقاله رو خوندم خیلی مفید بود گفتم برا شما هم بزارم

در این مقاله میخواهم درباره Alias صحبت کنم و اینکه چگونه با استفاده از Alias , کوئری ها را خواناتر نماییم .

همانطور که می دانید MySql از 2 نوع Alias پشتیبانی می نماید  که هر یک را به صورت جداگانه معرفی می نمایم :

  1. column alias
  2. table alias

MySQL alias for columns

بعضی وقت ها پیش می آید که نام ستون های جداولمان را خیلی فنی انتخاب می کنیم .این فنی بودن ممکن است هنگام خروجی گرفتن از کوئری ها , آن ها را یکم گنگ نماید و لازم باشد نام جداول  خروجی را کمی تغییر بدهیم تا خوانایی آن بیشتر شود.. به این روش column alias می گویند  که در واقع یک نام مستعار برای ستون انتخاب می کنیم .

 SELECT 
[column_1 | expression] AS descriptive_name
FROM table_name;

برای اینکه به یک ستون نام مستعار بدهید کافی است از کلمه ی کلیدی AS استفاده کنید .

اگر نام مستعار شما دارای space باشد , باید آن را داخل quote قرار دهید .

 SELECT 
[column_1 | expression] AS `descriptive name`
FROM table_name;

مثال :

 SELECT department, MAX(salary) AS "highest salary"
FROM employees
GROUP BY department

در مثال بالا برای فیلدی که شامل بزرگترین حقوق است (MAX(salary  نام مستعار (highest salary) را اختصاص داده ایم .

  • در ضمن می توانیم حتی کلمه کلیدی AS را ننویسیم.زیرا اختیاری می باشد.
 SELECT department, MAX(salary)  "highest salary"
FROM employees
GROUP BY department

مثال :

جدولی به نام employees داریم شامل فیلدهای زیر :

آموزش MySQL در Alias

آموزش MySQL در Alias

که میخواهیم کوئری بنویسم که نام و نام خانوادگی کارمندان را بهم بچسباند و در خروجی نمایش دهد . برای ترکیب دو فیلد نام و نام خانوادگی از تابع CONCAT_WS استفاده می کنیم :

 SELECT 
CONCAT_WS(', ', lastName, firstname)
FROM
employees;

خروجی به صورت زیر می شود  . همانطور که مشاهده می کنید عنوان فیلد زیاد جالب نیست و باید با استفاده از Alias یک نام مستعار به آن بدهیم تا خوانا تر شود .

آموزش MySQL در Alias

 SELECT
CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
employees;

حالا نام مستعار  Full name را به آن اختصاص دادیم . حالا خروجی به صورت زیر می شود که  عنوان آن خیلی بهتر و خواناتر شد  :

آموزش Alias

آموزش Alias

در MySQL ما می توانیم در ORDER BY, GROUP BY و HAVING نام مستعار را که در واقع به ستون اشاره می کند , صدا بزنیم .

 SELECT
CONCAT_WS(', ', lastName, firstname) `Full name`
FROM
employees
ORDER BY
`Full name`;

خروجی  :

آموزش Alias

آموزش Alias

در این مثال حالا از Alias در GROUP BY و HAVING استفاده می کنیم :

 SELECT
orderNumber `Order no.`,
SUM(priceEach * quantityOrdered) total
FROM
orderdetails
GROUP BY
`Order no.`
HAVING
total > 60000;
آموزش Alias

آموزش Alias

MySQL alias for tables

خب حالا بریم سراغ table alias .

شما می توانید Alias را به یک جدول اختصاص دهید و به آن نام مستعار بدهید . این کار با استفاده از کلمه کلیدی AS همانند سینتکس زیر انجام می شود  :

 table_name AS table_alias
  • همانند نام Alias در ستون ها , استفاده از کلمه کلیدی AS در table alias نیز اختیاری است .
  • معمولا از table alias در (INNER JOIN , LEFT JOIN, self join,  subqueries) استفاده می شود .

مثال :

فرض کنید جداول customers و orders را به صورت زیر داریم :

آموزش Alias در mysql

آموزش Alias در mysql

هر دو این جداول فیلد هم نامی به نام column name دارند که از طریق این فیلد باهم در ارتباط هستند .

 SELECT
customerName,
COUNT(o.orderNumber) total
FROM
customers c
INNER JOIN orders o ON c.customerNumber = o.customerNumber
GROUP BY
customerName
ORDER BY
total DESC;

کوئری بالا  customer name و تعداد order های اون مشتری را انتخاب می کند . در اینکوئری برای جدول customers از نام مستعار C و برای جدول Order از نام مستعار O استفاده کردیم .

همچنین به فید (COUNT(o.orderNumber نام مستعار total را اختصاص دادیم و  در خط شماره 10 داخل ORDER BY از آن استفاده کرده ایم .

پس در مثال بالا هم به ستون Alias داده ایم و هم به جدول ها .

آموزش کامل Alias

آموزش کامل Alias

اگر در مثال بالا از Alias استفاده نکنیم , باعث می شود که کوئری ما طولانی تر شود زیرا هر دفه باید نام کامل جداول را به جای نام مستعار آنها بنویسیم :

 SELECT
customers.customerName,
COUNT(orders.orderNumber) total
FROM
customers
INNER JOIN orders ON customers.customerNumber = orders.customerNumber
GROUP BY
customerName
ORDER BY
total DESC

خب امیدوارم با کاربر Alias آشنا شده باشید .

منبع

 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .