فیلتر و مرتبسازی دادهها با دستوراتSELECT WHERE ORDER BY در SQL
دستور SELECT در SQL برای بازیابی و مشاهده دادهها از جداول پایگاه داده استفاده میشود. این دستور به شما امکان میدهد اطلاعات مورد نظر را از یک یا چند ستون انتخاب کنید و نتایج را در یک مجموعه نتیجه (result-set) مشاهده نمایید. ساختار کلی دستور SELECT به شرح زیر است:
SELECT column_name(s) FROM table_name;
اگر بخواهید تمام ستونهای یک جدول را برگردانید، از ساختار زیر استفاده میکنید:
SELECT * FROM table_name;
عبارت WHERE در SQL برای فیلتر کردن رکوردهایی استفاده میشود که یک شرط خاص را برآورده میکنند. با استفاده از این شرط، میتوانید تنها دادههای مورد نیاز خود را از پایگاه داده استخراج کنید. اگر عبارت WHERE را حذف کنید، تمام رکوردهای جدول انتخاب خواهند شد. ساختار کلی دستور SELECT همراه با عبارت WHERE به صورت زیر است:
SELECT column_name(s) FROM table_name WHERE condition;
اگر قصد دارید تمام ستونها را برگردانید و همزمان یک شرط را اعمال کنید، ساختار زیر را به کار میبرید:
SELECT * FROM table_name WHERE condition;
عبارت ORDER BY در SQL برای مرتبسازی مجموعه نتایج یک کوئری SELECT بر اساس یک یا چند ستون مشخص استفاده میشود. به صورت پیشفرض، عبارت ORDER BY رکوردها را به ترتیب صعودی مرتب میکند. اگر میخواهید رکوردها را به ترتیب نزولی مرتب کنید، میتوانید از کلمه کلیدی DESC استفاده نمایید. ساختار کلی دستور SELECT همراه با عبارت WHERE و ORDER BY به صورت زیر است:
SELECT column_name(s) FROM table_name WHERE condition ORDER BY column1, column2, ... ASC|DESC;
برای برگرداندن تمام ستونها با اعمال شرط و مرتبسازی، ساختار زیر را به کار میبرید:
SELECT * FROM table_name WHERE condition ORDER BY column1, column2, ... ASC|DESC;
برای نشان دادن نحوه کار این دستورات، از یک جدول نمونه به نام Person با دادههای زیر استفاده میکنیم:
جدول Person:
PersonId | FirstName | LastName | Age | City |
---|---|---|---|---|
1 | Rahul | Gupta | 25 | Pune |
2 | Sita | Sharma | 30 | Mumbai |
3 | Amit | Kumar | 28 | Pune |
4 | Priya | Singh | 35 | Delhi |
5 | Sunil | Yadav | 22 | Mumbai |
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند:
SELECT * FROM Person;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که شهرشان ‘Pune’ است:
SELECT * FROM Person WHERE City = 'Pune';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که شهرشان ‘Pune’ و نام کوچکشان ‘Rahul’ است (با استفاده از عملگر AND):
SELECT * FROM Person WHERE City = 'Pune' AND FirstName = 'Rahul';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که شهرشان ‘Pune’ یا ‘Mumbai’ است (با استفاده از عملگر OR):
SELECT * FROM Person WHERE City = 'Pune' OR City = 'Mumbai';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که شهرشان ‘Pune’ نیست (با استفاده از عملگر NOT):
SELECT * FROM Person WHERE NOT City = 'Pune';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که نام کوچکشان با حرف ‘S’ شروع میشود (با استفاده از عملگر LIKE):
SELECT * FROM Person WHERE FirstName LIKE 'S%';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که نام کوچکشان به حرف ‘a’ ختم میشود:
SELECT * FROM Person WHERE FirstName LIKE '%a';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که حرف ‘a’ در هر جایی از نام کوچکشان وجود دارد:
SELECT * FROM Person WHERE FirstName LIKE '%a%';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که حرف ‘a’ دومین حرف نام کوچکشان است (با استفاده از کاراکتر خط زیر _ برای تطابق یک کاراکتر):
SELECT * FROM Person WHERE FirstName LIKE '_a%';
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که سنشان بین 25 و 30 سال است (با استفاده از عملگر BETWEEN):
SELECT * FROM Person WHERE Age BETWEEN 25 AND 30;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند، اما فقط آنهایی که شهرشان ‘Pune’ یا ‘Delhi’ است (با استفاده از عملگر IN):
SELECT * FROM Person WHERE City IN ('Pune', 'Delhi');
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند و نتایج را بر اساس ستون FirstName به ترتیب صعودی مرتب میکند:
SELECT * FROM Person ORDER BY FirstName;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند و نتایج را بر اساس ستون FirstName به ترتیب نزولی مرتب میکند (با استفاده از کلمه کلیدی DESC):
SELECT * FROM Person ORDER BY FirstName DESC;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند که شهرشان ‘Pune’ است و نتایج را بر اساس ستون FirstName به ترتیب صعودی مرتب میکند:
SELECT * FROM Person WHERE City = 'Pune' ORDER BY FirstName;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند که شهرشان ‘Pune’ است و نتایج را بر اساس ستون FirstName به ترتیب نزولی مرتب میکند:
SELECT * FROM Person WHERE City = 'Pune' ORDER BY FirstName DESC;
این کوئری تمام ستونها و ردیفهای جدول Person را برمیگرداند که شهرشان ‘Pune’ است و نتایج را ابتدا بر اساس FirstName به ترتیب صعودی و سپس بر اساس Age به ترتیب نزولی مرتب میکند:
SELECT * FROM Person WHERE City = 'Pune' ORDER BY FirstName, Age DESC;