آموزش SQL
آموزش SQL-تابع last
تابع LAST:
Wiki
تابع LAST آخرین داده را از ستون انتخابی بر می گرداند.
فرم دستور LAST:
مثال:
Wiki
جدول Orders را در زیر داریم:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
می خواهیم آخرین مقدار از ستون OrderPrice را پیدا کنیم:
از دستور زیر استفاده می کنیم:
اگر دستور فوق جواب نداد از دستور زیر استفاده کنید:
نتیجه به شکل زیر خواهد بود:
| LastOrderPrice |
|---|
| 100 |
آموزش SQL-تابع max
تابع MAX:
Wiki
تابع MAX بزرگترین عدد از ستون انتخابی را بر می گرداند.
فرم دستور MAX:
مثال:
Wiki
جدول Orders را در زیر داریم:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
می خواهیم بزرگترین مقدار را در ستون OrderPrice به دست آوریم:
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| LargestOrderPrice |
|---|
| 2000 |
آموزش SQL-تابع min
تابع MIN:
Wiki
تابع MIN کوچکترین مقدار ستون انتخابی را بر می گرداند.
فرم دستوری تابع MIN:
مثال:
Wiki
در جدول زیر:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
می خواهیم کوچکترین مقدار ستون OrderPrice را پیدا کنیم.
از دستور زیر استفاده می کنیم:
نتیجه به این صورت خواهد شد:
| SmallestOrderPrice |
|---|
| 100 |
آموزش SQL-تابع sum
تابع SUM
Wiki
تابع SUM جمع کل ستون عددی را بر می گرداند.
فرم دستور SUM:
مثال:
Wiki
جدول Orders را در زیر داریم:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
حال می خواهیم تا جمع کل ستون OrderPrice را به دست آوریم:
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| OrderTotal |
|---|
| 5700 |
آموزش SQL-گروه بندی داده ها
توابع Aggregate غالباً با عبارت GROUP BY همراه می شوند.
عبارت GROUP BY
Wiki
عبارت GROUP BY در ترکیب با توابع aggregate استفاده می شود تا نتیجه را بر اساس یک یا چند ستون گروه بندی کند.
فرم دستور GROUP BY:
FROM table_name
WHERE column_name operator value
GROUP BY column_name
مثال:
Wiki
جدول Orders را در زیر داریم:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
می خواهیم مجموع سفارشات هر یک از مشتریان را به دست آوریم.
باید از عبارت GROUP BY برای گروه بندی مشتریان استفاده کنیم.
از دستور زیر استفاده می کنیم:
GROUP BY Customer
نتیجه به شکل زیر خواهد بود:
| Customer | SUM(OrderPrice) |
|---|---|
| Hansen | 2000 |
| Nilsen | 1700 |
| Jensen | 2000 |
جالب بود! این طور نیست؟
بگذارید ببینیم چه اتفاقی می افتد اگر عبارت GROUP BY را حذف کنیم:
نتیجه به شکل زیر خواهد بود:
| Customer | SUM(OrderPrice) |
|---|---|
| Hansen | 5700 |
| Nilsen | 5700 |
| Hansen | 5700 |
| Hansen | 5700 |
| Jensen | 5700 |
| Nilsen | 5700 |
نتیجه فوق آن چیزی نیست که ما می خواهیم.
توضیح اینکه چرا دستور SELECT فوق نمی تواند مورد استفاده قرار گیرد:
دستور SELECT فوق دو ستون Customer و (SUM(OrderPrice را مشخص کرده است، ستون (SUM(OrderPrice تنها یک مقدار را بر می گرداند که جمع کل مقادیر ستون OrderPrice است، در حالیکه ستون Customer شش مقدار را بر می گرداند. بنابراین این دستور نتیجه درستی به ما نمی دهد. اما همان طور که می بینید با اضافه کردن عبارت GROUP BY این مشکل حل می شود.
GROUP BY برای بیش از یک ستون
می توانیم عبارت GROUP BY را برای بیش از یک ستون استفاده کنیم، به شکل زیر:
GROUP BY
آموزش SQL-عبارت Having
عبارت HAVING
Wiki
چون که عبارت WHERE نمی تواند به همراه توابع aggregate استفاده شود عبارت HAVING در SQL به همراه توابع aggregate آورده می شود.
فرم عبارت HAVING:
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
مثال:
Wiki
جدول Orders را در زیر داریم:
| O_Id | OrderDate | OrderPrice | Customer |
|---|---|---|---|
| 1 | 2008/11/12 | 1000 | Hansen |
| 2 | 2008/10/23 | 1600 | Nilsen |
| 3 | 2008/09/02 | 700 | Hansen |
| 4 | 2008/09/03 | 300 | Hansen |
| 5 | 2008/08/30 | 2000 | Jensen |
| 6 | 2008/10/04 | 100 | Nilsen |
می خواهیم مشتریانی که جمع سفارش آنها کمتر از 2000 است را پیدا کنیم.
از دستور زیر استفاده می کنیم:
GROUP BY Customer
HAVING SUM(OrderPrice)<2000
نتیجه به شکل زیر خواهد بود:
| Customer | SUM(OrderPrice) |
|---|---|
| Nilsen | 1700 |
می خواهیم اگر مشتریان "Hansen" یا "Jensen" جمع سفارش بیشتر از 1500 دارند را نشان دهد.
یک عبارت WHERE به دستور SQL اضافه می شود.
WHERE Customer='Hansen' OR Customer='Jensen'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500
جدول نتیجه به شکل زیر خواهد بود:
| Customer | SUM(OrderPrice) |
|---|---|
| Hansen | 2000 |
| Jensen | 2000 |
آموزش SQL-تابع ucase
تابع UCASE
Wiki
تابع UCASE داده یک فیلد را با حروف بزرگ نشان می دهد.
فرم تابع UCASE:
فرم تابع در SQL Server:
مثال:
Wiki
جدول Persons را در زیر داریم:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم ستون های "LastName" و"FirstName" را از جدول فوق انتخاب کنیم و ستون LastName را با حروف بزرگ نشان دهیم.
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| LastName | FirstName |
|---|---|
| HANSEN | Ola |
| SVENDSON | Tove |
| PETTERSEN | Kari |
آموزش SQL-تابع lcase
تابع LCASE
Wiki
تابع LCASE داده یک فیلد را با حروف کوچک نشان می دهد.
فرم تابع LCASE:
فرم تابع در SQL Server:
مثال:
Wiki
جدول Persons را در زیر داریم:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم ستون های "LastName" و"FirstName" را از جدول فوق انتخاب کنیم و ستون LastName را با حروف کوچک نشان دهیم.
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود
| LastName | FirstName |
|---|---|
| hansen | Ola |
| svendson | Tove |
| pettersen |
Kari |
آموزش SQL-تابع mid
تابع MID
Wiki
تابع MID برای بیرون کشیدن کاراکترهایی از یک فیلد متنی استفاده می شود.
نحوه استفاده:
|
پارامتر |
توضیح |
|---|---|
| column_name |
فیلدی است که کاراکترها از آن استخراج می شوند. (درج این پارامتر الزامی است) |
| start |
محل شروع را مشخص می کند. (درج این پارامتر الزامی است) |
| length |
تعداد کاراکترهایی را که بعد از محل شروع بر گردانده می شود را مشخص می کند. اگر خالی گذاشته شود، تابع MID بقیه فیلد متنی که بعد از محل شروع است را بر می گرداند (درج این پارامتر اختیاری است) |
مثال:
Wiki
جدول Persons را در زیر داریم:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم چهار کاراکتر اول از نام شهر را از ستون City استخراج کنیم.
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| SmallCity |
|---|
| Sand |
| Sand |
| Stav |
آموزش SQL-تابع len
تابع LEN
Wiki
تابع LEN طول یک فیلد متنی را بر می گرداند.
فرم تابع LEN:
مثال:
Wiki
جدول Persons را در زیر داریم:
| P_Id | LastName | FirstName | Address | City |
|---|---|---|---|---|
| 1 | Hansen | Ola | Timoteivn 10 | Sandnes |
| 2 | Svendson | Tove | Borgvn 23 | Sandnes |
| 3 | Pettersen | Kari | Storgt 20 | Stavanger |
می خواهیم طول مقادیر ستون Address را نشان دهیم.
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| LengthOfAddress |
|---|
| 12 |
| 9 |
| 9 |
آموزش SQL-تابع round
تابع ROUND
Wiki
تابع ROUND برای گرد کردن یک فیلد عددی با تعداد اعشار مشخص استفاده می شود.
فرم تابع ROUND:
|
پارامتر |
توضیح |
|---|---|
| column_name |
فیلدی که می خواهیم آنرا گرد کنیم. (درج این پارامتر الزامی است) |
| decimals |
تعداد اعشار برای گرد کردن (درج این پارامتر اختیاری است) |
مثال:
Wiki
جدول Products را در زیر داریم:
| Prod_Id | ProductName | Unit | UnitPrice |
|---|---|---|---|
| 1 | Jarlsberg | 1000 g | 10.45 |
| 2 | Mascarpone | 1000 g | 32.56 |
| 3 | Gorgonzola | 1000 g | 15.67 |
می خواهیم نام محصولات (product name) و قیمت (price) گرد شده به نزدیکترین عدد صحیح را نشان دهیم.
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| ProductName | UnitPrice |
|---|---|
| Jarlsberg | 10 |
| Mascarpone | 33 |
| Gorgonzola | 16 |
آموزش SQL-تابع now
تابع ()NOW
Wiki
تابع ()NOW تاریخ و زمان جاری سیستم را بر می گرداند.
فرم دستوری تابع ()NOW:
مثال:
Wiki
جدول Products را در زیر داریم:
| Prod_Id | ProductName | Unit | UnitPrice |
|---|---|---|---|
| 1 | Jarlsberg | 1000 g | 10.45 |
| 2 | Mascarpone | 1000 g | 32.56 |
| 3 | Gorgonzola | 1000 g | 15.67 |
می خواهیم products وprices به همراه تاریخ روز را نشان دهیم:
از دستور زیر استفاده می کنیم:
نتیجه به شکل زیر خواهد بود:
| ProductName | UnitPrice | PerDate |
|---|---|---|
| Jarlsberg | 10.45 | 10/7/2008 11:25:02 AM |
| Mascarpone | 32.56 | 10/7/2008 11:25:02 AM |
| Gorgonzola | 15.67 | 10/7/2008 11:25:02 AM |
آموزش SQL-تابع format
تابع FORMAT
Wiki
تابع FORMAT برای فرمت دهی به یک فیلد (تعیین نحوه نمایش یک فیلد) استفاده می شود.
فرم دستوری تابع FORMAT:
|
پارامتر |
توضیح |
|---|---|
| column_name |
فیلدی که می خواهیم فرمت آن را مشخص کنیم. (درج این فیلد الزامی است.) |
| format |
فرمت را مشخص می کند. (درج این فیلد الزامی است.) |
مثال:
Wiki
جدول Products را در زیر داریم:
| Prod_Id | ProductName | Unit | UnitPrice |
|---|---|---|---|
| 1 | Jarlsberg | 1000 g | 10.45 |
| 2 | Mascarpone | 1000 g | 32.56 |
| 3 | Gorgonzola | 1000 g | 15.67 |
می خواهیم products وprices و زمان جاری سیستم را نمایش دهیم (که زمان جاری سیستم با فرمت YYYY-MM-DD باشد.)
از دستور زیر استفاده می کنیم:
FROM Products
نتیجه به شکل زیر خواهد بود:
| ProductName | UnitPrice | PerDate |
|---|---|---|
| Jarlsberg | 10.45 | 2008-10-07 |
| Mascarpone | 32.56 | 2008-10-07 |
| Gorgonzola | 15.67 |
2008-10-07 |
آموزش SQL-تابع left
تابع ()left
Wiki
این تابع از سمت چپ یک عبارت(expression)، به تعدادی مشخص(count)، کاراکتر برمی گرداند.
نحوه استفاده:
| پارامتر | توضیح |
|---|---|
| expression | عبارتی که باید از سمت چپ آن کاراکترها استخراج شوند |
| count | با یک عدد تنظیم می شود و تعداد کاراکترهایی که باید برگردانده شود را مشخص می کند |
مثال:
خروجی کوئری بالا:
آموزش SQL-تابع right
تابع ()right
Wiki
این تابع از سمت راست یک عبارت(expression)، به تعدادی مشخص(count)، کاراکتر برمی گرداند.
نحوه استفاده:
| پارامتر | توضیح |
|---|---|
| expression | عبارتی که باید از سمت چپ آن کاراکترها استخراج شوند |
| count | با یک عدد تنظیم می شود و تعداد کاراکترهایی که باید برگردانده شود را مشخص می کند |
مثال:
خروجی کوئری بالا: