آموزش Alias در MySQL

Image تحقیقات

آموزش Alias در MySQL

با سلام خدمت شما دوستان گرامی

در این مقاله میخواهم درباره 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

آموزش 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 آشنا شده باشید .

خب مقاله امروز هم به پایان رسید.خوشحال میشم مثل همیشه نظراتتون رو اعلام کنید.