آموزش Alias در MySQL
این مقاله رو خوندم خیلی مفید بود گفتم برا شما هم بزارم
در این مقاله میخواهم درباره Alias صحبت کنم و اینکه چگونه با استفاده از Alias , کوئری ها را خواناتر نماییم .
همانطور که می دانید MySql از 2 نوع Alias پشتیبانی می نماید که هر یک را به صورت جداگانه معرفی می نمایم :
- column alias
- 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 داریم شامل فیلدهای زیر :
که میخواهیم کوئری بنویسم که نام و نام خانوادگی کارمندان را بهم بچسباند و در خروجی نمایش دهد . برای ترکیب دو فیلد نام و نام خانوادگی از تابع CONCAT_WS استفاده می کنیم :
SELECT
CONCAT_WS(', ', lastName, firstname)
FROM
employees;
خروجی به صورت زیر می شود . همانطور که مشاهده می کنید عنوان فیلد زیاد جالب نیست و باید با استفاده از Alias یک نام مستعار به آن بدهیم تا خوانا تر شود .
SELECT
CONCAT_WS(', ', lastName, firstname) AS `Full name`
FROM
employees;
حالا نام مستعار Full name را به آن اختصاص دادیم . حالا خروجی به صورت زیر می شود که عنوان آن خیلی بهتر و خواناتر شد :
در MySQL ما می توانیم در ORDER BY, GROUP BY و HAVING نام مستعار را که در واقع به ستون اشاره می کند , صدا بزنیم .
SELECT
CONCAT_WS(', ', lastName, firstname) `Full name`
FROM
employees
ORDER BY
`Full name`;
خروجی :
در این مثال حالا از Alias در GROUP BY و HAVING استفاده می کنیم :
SELECT
orderNumber `Order no.`,
SUM(priceEach * quantityOrdered) total
FROM
orderdetails
GROUP BY
`Order no.`
HAVING
total > 60000;
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 را به صورت زیر داریم :
هر دو این جداول فیلد هم نامی به نام 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 استفاده نکنیم , باعث می شود که کوئری ما طولانی تر شود زیرا هر دفه باید نام کامل جداول را به جای نام مستعار آنها بنویسیم :
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 آشنا شده باشید .
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .