0

آموزش SQL

 
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع last

تابع LAST:

 

Wiki

تابع LAST آخرین داده را از ستون انتخابی بر می گرداند.

فرم دستور LAST:

SELECT LAST(column_name) FROM table_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

می خواهیم آخرین مقدار از ستون OrderPrice را پیدا کنیم:

از دستور زیر استفاده می کنیم:

SELECT LAST(OrderPrice) AS LastOrderPrice FROM Orders

اگر دستور فوق جواب نداد از دستور زیر استفاده کنید:

SELECT OrderPrice FROM Orders ORDER BY O_Id DESC LIMIT 1

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

LastOrderPrice
100

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:18 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع max

تابع MAX:

 

Wiki

تابع MAX بزرگترین عدد از ستون انتخابی را بر می گرداند.

فرم دستور MAX:

SELECT MAX(column_name) FROM table_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

می خواهیم بزرگترین مقدار را در ستون OrderPrice به دست آوریم:

از دستور زیر استفاده می کنیم:

SELECT MAX(OrderPrice) AS LargestOrderPrice FROM Orders

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

LargestOrderPrice
2000

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:19 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع min

تابع MIN:

 

Wiki

تابع MIN کوچکترین مقدار ستون انتخابی را بر می گرداند.

فرم دستوری تابع MIN:

SELECT MIN(column_name) FROM table_name

مثال:

 

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 را پیدا کنیم. 

از دستور زیر استفاده می کنیم:

SELECT MIN(OrderPrice) AS SmallestOrderPrice FROM Orders

نتیجه به این صورت خواهد شد:

SmallestOrderPrice
100

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:19 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع sum

تابع SUM

 

Wiki

تابع SUM جمع کل ستون عددی را بر می گرداند.

فرم دستور SUM:

SELECT SUM(column_name) FROM table_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

حال می خواهیم تا جمع کل ستون OrderPrice را به دست آوریم:

از دستور زیر استفاده می کنیم:

SELECT SUM(OrderPrice) AS OrderTotal FROM Orders

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

OrderTotal
5700

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:20 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-گروه بندی داده ها

توابع Aggregate غالباً با عبارت GROUP BY همراه می شوند.


عبارت GROUP BY

 

Wiki

عبارت GROUP BY در ترکیب با توابع aggregate استفاده می شود تا نتیجه را بر اساس یک یا چند ستون گروه بندی کند.

فرم دستور GROUP BY:

SELECT column_name, aggregate_function(column_name)
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 برای گروه بندی مشتریان استفاده کنیم.

از دستور زیر استفاده می کنیم:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer

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

Customer SUM(OrderPrice)
Hansen 2000
Nilsen 1700
Jensen 2000

جالب بود! این طور نیست؟

بگذارید ببینیم چه اتفاقی می افتد اگر عبارت GROUP BY را حذف کنیم:

SELECT Customer,SUM(OrderPrice) FROM Orders

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

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 را برای بیش از یک ستون استفاده کنیم، به شکل زیر:

SELECT Customer,OrderDate,SUM(OrderPrice) FROM Orders
GROUP BY

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:21 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-عبارت Having

عبارت HAVING

 

Wiki

چون که عبارت WHERE نمی تواند به همراه توابع aggregate استفاده شود عبارت HAVING در SQL به همراه توابع aggregate آورده می شود.

فرم عبارت HAVING:

SELECT column_name, aggregate_function(column_name)
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 است را پیدا کنیم.

از دستور زیر استفاده می کنیم:

SELECT Customer,SUM(OrderPrice) FROM Orders
GROUP BY Customer
HAVING SUM(OrderPrice)<2000

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

Customer SUM(OrderPrice)
Nilsen 1700

می خواهیم اگر مشتریان "Hansen" یا "Jensen" جمع سفارش بیشتر از 1500 دارند را نشان دهد.

یک عبارت WHERE به دستور SQL اضافه می شود.

SELECT Customer,SUM(OrderPrice) FROM Orders
WHERE Customer='Hansen' OR Customer='Jensen'
GROUP BY Customer
HAVING SUM(OrderPrice)>1500

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

Customer SUM(OrderPrice)
Hansen 2000
Jensen 2000

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:22 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع ucase

تابع UCASE

 

Wiki

تابع UCASE داده یک فیلد را با حروف بزرگ نشان می دهد.

فرم تابع UCASE:

SELECT UCASE(column_name) FROM table_name

فرم تابع در SQL Server:

SELECT UPPER(column_name) FROM table_name

مثال:

 

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 را با حروف بزرگ نشان دهیم.

از دستور زیر استفاده می کنیم:

SELECT UCASE(LastName) as LastName,FirstName FROM Persons

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

LastName FirstName
HANSEN Ola
SVENDSON Tove
PETTERSEN Kari

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:23 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع lcase

تابع LCASE

 

Wiki

تابع LCASE داده یک فیلد را با حروف کوچک نشان می دهد.

فرم تابع LCASE:

SELECT LCASE(column_name) FROM table_name

فرم تابع در SQL Server:

SELECT LOWER(column_name) FROM table_name

مثال:

 

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 را با حروف کوچک نشان دهیم.

از دستور زیر استفاده می کنیم:

SELECT LCASE(LastName) as LastName,FirstName FROM Persons

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

LastName FirstName
hansen Ola
svendson Tove
pettersen Kari
 

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:25 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع mid

تابع MID

 

Wiki

تابع MID برای بیرون کشیدن کاراکترهایی از یک فیلد متنی استفاده می شود.

نحوه استفاده:

SELECT MID(column_name,start,[length]) FROM table_name

پارامتر

توضیح

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 استخراج کنیم.

از دستور زیر استفاده می کنیم:

SELECT MID(City,1,4) as SmallCity FROM Persons

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

SmallCity
Sand
Sand
Stav

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:26 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع len

تابع LEN

 

Wiki

تابع LEN طول یک فیلد متنی را بر می گرداند.

فرم تابع LEN:

SELECT LEN(column_name) FROM table_name

مثال:

 

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 را نشان دهیم.

از دستور زیر استفاده می کنیم:

SELECT LEN(Address) as LengthOfAddress FROM Persons

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

LengthOfAddress
12
9
9

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:29 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع round

تابع ROUND

 

Wiki

تابع ROUND برای گرد کردن یک فیلد عددی با تعداد اعشار مشخص استفاده می شود.

فرم تابع ROUND:

SELECT ROUND(column_name,decimals) FROM table_name

پارامتر

توضیح

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) گرد شده به نزدیکترین عدد صحیح را نشان دهیم.

از دستور زیر استفاده می کنیم:

SELECT ProductName, ROUND(UnitPrice,0) as UnitPrice FROM Products

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

ProductName UnitPrice
Jarlsberg 10
Mascarpone 33
Gorgonzola 16

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:31 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع now

تابع ()NOW

 

Wiki

تابع ()NOW تاریخ و زمان جاری سیستم را بر می گرداند.

فرم دستوری تابع  ()NOW:

SELECT NOW() FROM table_name

مثال:

 

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 به همراه تاریخ روز را نشان دهیم: 

از دستور زیر استفاده می کنیم:

SELECT ProductName, UnitPrice, Now() as PerDate FROM Products

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

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

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:32 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع format

تابع FORMAT

 

Wiki

تابع FORMAT برای فرمت دهی به یک فیلد (تعیین نحوه نمایش یک فیلد) استفاده می شود.

فرم دستوری تابع FORMAT:

SELECT FORMAT(column_name,format) FROM table_name

پارامتر

توضیح

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 باشد.)

از دستور زیر استفاده می کنیم:

SELECT ProductName, UnitPrice, FORMAT(Now(),'YYYY-MM-DD') as PerDate
FROM Products

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

ProductName UnitPrice PerDate
Jarlsberg 10.45 2008-10-07
Mascarpone 32.56 2008-10-07
Gorgonzola 15.67 2008-10-07
 

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:33 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع left

تابع ()left

 

Wiki

این تابع از سمت چپ یک عبارت(expression)، به تعدادی مشخص(count)، کاراکتر برمی گرداند.

نحوه استفاده:

left( expression, count )
پارامتر توضیح
expression عبارتی که باید از سمت چپ آن کاراکترها استخراج شوند
count با یک عدد تنظیم می شود و تعداد کاراکترهایی که باید برگردانده شود را مشخص می کند

مثال:

SELECT left( 'Peter', 2 )

خروجی کوئری بالا:

Pe

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:34 PM
تشکرات از این پست
parisaexp
parisaexp
کاربر نقره ای
تاریخ عضویت : مهر 1392 
تعداد پست ها : 888
محل سکونت : اصفهان

پاسخ به:آموزش SQL

آموزش SQL-تابع right

تابع ()right

 

Wiki

این تابع از سمت راست یک عبارت(expression)، به تعدادی مشخص(count)، کاراکتر برمی گرداند.

نحوه استفاده:

RIGHT( expression, count )
پارامتر توضیح
expression عبارتی که باید از سمت چپ آن کاراکترها استخراج شوند
count با یک عدد تنظیم می شود و تعداد کاراکترهایی که باید برگردانده شود را مشخص می کند

مثال:

SELECT RIGHT( 'Peter', 2 )

خروجی کوئری بالا:

er

 

لِکُلِّ شَیْ‏ءٍ زَکَاةٌ وَ زَکَاةُ الْعَقْلِ احْتِمَالُ الْجُهَّال‏

برای هر چیزی زکاتیست و زکات عقل تحمّل نادانان است.

دوشنبه 10 آذر 1393  10:34 PM
تشکرات از این پست
دسترسی سریع به انجمن ها