Return True - SQL - کار با SELECT ORDER BY در دیتابیس

SQL - کار با SELECT ORDER BY در دیتابیس

توی این مقاله، در باره ORDER BY  حرف میزنیم و نحوه مرتب کردن اطلاعات Query  رو با هم میبینیم. پس با ما همراه باشین تا نحوه کار با ORDER BY  و ویژگی هاش رو ببینیم.

مقدمه ای بر ORDER BY

وقتی از جدول بواسطه SELECT  اطلاعات رو میخونیم، این اطلاعات به شکل نا مشخصی برامون مرتب میشن. برای اینکه ترتیب ردیف های بازگشتی از Query  رو خودمون مشخص کنیم، از ORDER BY  استفاده توی SELECT  میکنیم. در واقع ORDER BY به شما امکان مرتب کردن ردیف های برگشتی از دستور  SELECT  رو به دو شکل افزایشی و یا کاهشی میده.

دستور ORDER BY توی SELECT  به شکل زیر هست:

SELECT
	select_list
FROM
	table_name
ORDER BY
	sort_expression1 [ASC | DESC],
        ...
	sort_expressionN [ASC | DESC];

توی این دستور:

  • sort_expression1: میتونه اسم یک ستون باشه و یا یک اصطلاح که شما قصد مرتب کردن ردیف ها براساس اون رو دارین. اگه نیاز دارین اطلاعات براساس بیش از یک ستون و یا اصطلاح مرتب بشن، اسم هرکدوم از ستون ها و یا اصطلاح ها رو با علامت کاما (",") از هم جدا میکنیم.
  • در ادامه میتونیم از ASC برای مرتب کردن به شکل صعودی و یا از DESC برای مرتب کردن به شکل نزولی استفاده کنیم. اگه هیچکدوم از این موارد رو نذاریم، به شکل پیشفرض صعودی ( ASC ) مرتب میشه.

مثال هایی از  ORDER BY

 بیاین با هم چنتا مثال از  ORDER BY ببینیم تا بهتر درکش کنیم:

فرض کنین ما یک جدول به اسم  customer داریم با یک سری اطلاعات پیشفرض توش که ساختار زیر رو داره:

SQL - کار با SELECT ORDER BY در دیتابیس

1) استفاده از  ORDER BY برای مرتب کردن یک ستون

دستور زیر، اطلاعات جدول رو بهمون نشون میده. ما به وسیله  ORDER BY اطلاعات رو مرتب کردین.

SELECT
	first_name,
	last_name
FROM
	customer
ORDER BY
	first_name ASC;

و نتیجه به شکل زیر خواهد بود:

SQL - کار با SELECT ORDER BY در دیتابیس

همونطور که توی نتیجه میبینین، اطلاعات براساس ستون first_name  به شکل صعودی مرتب شده که اینجا یعنی بر اساس حروف الفبا. همونطور که قبلا گفتیم، توی ORDER BY مرتب سازی به شکل پیشفرض ASC هست. پس درواقع توی دستور قبل، نیازی به گفتنش نبود. یعنی میتونیم مثل کد زیر بگیم و نتیجه یکسانی بگیریم:

SELECT
	first_name,
	last_name
FROM
	customer
ORDER BY
	first_name;

2) استفاده از ORDER BY  برای مرتب کردن اطلاعات به شکل نزولی:

توی دستور زیر، همون اطلاعات قبل رو داریم ولی این بار، اطلاعات رو براساس ستون last_name  و به شکل نزولی مرتب کردیم:

SELECT
       first_name,
       last_name
FROM
       customer
ORDER BY
       last_name DESC;

و نتیجه دستور بالا به شکل زیر خواهد بود:

SQL - کار با SELECT ORDER BY در دیتابیس

3) استفاده از ORDER BY  برای مرتب سازی نتیجه Query بر اساس بیش از یک ستون

دستور زیر، اطلاعات جدول رو بر اساس ستون first_name  صعودی و last_name  نزولی مرتب میکنه:

SELECT
	first_name,
	last_name
FROM
	customer
ORDER BY
	first_name ASC,
	last_name DESC;

و نتیجه دستور بالا به شکل زیر خواهد بود:

SQL - کار با SELECT ORDER BY در دیتابیس

همونطور که میبینین، در ابتدا ستون first_name اهمیت داره که به شکل صعودی مرتب شده. ولی یه جا که دو نفر اسم مشابه دارن ( یعنی Kelly  )  مرتب سازی بر اساس last_name  و نزولی اتفاق افتاده.

4) استفاده از  ORDER BY برای اصطلاحات

توی دیتابیس ما یکسری توابع داریم که یکی از اونها تابع LENGTH  هست. این تابع مقدار String  میپذیره و در جواب، طول رشته رو بهمون میده.

توی دستور زیر، ما مقادیر first_name  و طول هرکدوم رو از دیتابیس Query  میگیریم. به طول هرکدوم یک اسم میدیم. درواقع یک ستون فرضی میسازیم به اسم len. در ادامه، نتیجه رو براساس همین ستون ( len ) و نزولی مرتب می کنیم. ( انگار بخوایم ببینیم اسم کی از همه کوچیکتره و به ترتیب بهمون نشونشون بده ). دستور به شکل زیر هست:

SELECT 
	first_name,
	LENGTH(first_name) len
FROM
	customer
ORDER BY 
	len DESC;

و نتیجه به شکل زیر خواهد بود:

SQL - کار با SELECT ORDER BY در دیتابیس

در نتیجه،  ORDER BY برای مرتب سازی ردیف هایی هست که میخوایم از دیتابیس بخونیم. امیدوارم این مقاله براتون مفید باشه ;) .

نظرات