توابع ()MIN و ()MAX
اگر معنی نام های این توابع را در انگلیسی بدانید دیگر حتی نیازی به توضیحات من نخواهید داشت! کلمه ی Min در انگلیسی مخفف Minimum (به معنی «کمترین») و کلمه ی Max مخفف Maximum (به معنی «بیشترین») است. حالا که معنی نام این دو واضح شد، کاراییشان نیز واضح است؛ تابع ()MIN کمترین مقدار از یک ستون انتخاب شده را بر می گرداند و ()MAX نیز بیشترین مقدار را.
ساختار کلی تابع ()MIN
|
SELECT MIN(column_name)
FROM table_name
WHERE condition;
|
ساختار کلی تابع ()MAX
|
SELECT MAX(column_name)
FROM table_name
WHERE condition;
|
این بار به سراغ جدول جدیدی از پایگاه داده ی Northwind میرویم. تصویر زیر، قسمتی از جدول Products (به معنی «محصولات») در این پایگاه داده است:
مثال استفاده از تابع ()MIN و ()MAX
کد زیر، ارزان ترین محصول ما را پیدا می کند:
|
SELECT MIN(Price) AS SmallestPrice
FROM Products;
|
برای اجرای این کد در پایگاه داده ی Northwind روی این لینک کلیک کنید.
از طرف دیگر، کد زیر گران ترین محصول ما را برمیگرداند:
|
SELECT MAX(Price) AS LargestPrice
FROM Products;
|
برای اجرای این کد در پایگاه داده ی Northwind روی این لینک کلیک کنید.
توابع ()COUNT و ()AVG و ()SUM
به طور خلاصه می توان گفت:
- تابع COUNT (به معنی «شمردن») تعداد ردیف هایی را بر می گرداند که با حالت یا شرط خاصی انطباق دارند.
- تابع AVG (مخفف Average – به معنی «میانگین») میانگین مقادیر عددی یک ستون را برمیگرداند.
- تابع SUM (به معنی «جمع کل») جمع کل یک ستون عددی را بر میگرداند.
ساختار کلی تابع ()COUNT
|
SELECT COUNT(column_name)
FROM table_name
WHERE condition;
|
ساختار کلی تابع ()AVG
|
SELECT AVG(column_name)
FROM table_name
WHERE condition;
|
ساختار کلی تابع ()SUM
|
SELECT SUM(column_name)
FROM table_name
WHERE condition;
|
وقت آن شده است که مثال ها را بررسی کنیم.
مثال های کار با توابع ()COUNT و ()AVG و ()SUM
مثال اول، دستور زیر تعداد محصولات ما را به ما می دهد:
|
SELECT COUNT(ProductID)
FROM Products;
|
برای اجرای این کد در پایگاه داده ی Northwind روی این لینک کلیک کنید.
نکته: مقادیر NULL شامل این شمارش نمی شوند.
مثال دوم، دستور زیر میانگین قیمت تمام محصولات ما را محاسبه می کند:
|
SELECT AVG(Price)
FROM Products;
|
برای اجرای این کد در پایگاه داده ی Northwind روی این لینک کلیک کنید، می بینید که میانگین قیمت محصولات ما 28.866363636363637 است.
در این حالت نیز مقادیر NULL محاسبه نمی شوند.
حالا بیایید به جدول دیگری برویم. جدول زیر، قسمتی از جدول OrderDetails (به معنی «جزئیات سفارش») می باشد:
حالا می توانیم به راحتی از تابع ()SUM استفاده کنیم و جمع کل مقادیرِ ستون Quantity (به معنی «تعداد») را پیدا کنیم:
|
SELECT SUM(Quantity)
FROM OrderDetails;
|
مقداری که به ما بر میگردد 12743 است که در واقع جمع تمام مقادیر موجود در ستون Quantity است. برای اجرای این کد در پایگاه داده ی Northwind روی این لینک کلیک کنید. مثل همیشه نیز باید بدانید که مقادیر NULL حساب نمی شوند چرا که مقداری ندارند.
تمرینات
حتما می دانید که راز برنامه نویسی در کدنویسی است! این جمله یعنی شما تا با دستان خود و با فکر خود کد ننویسید برنامه نویس نخواهید شد حتی اگر کدها را بفهمید. دیدن و فهمیدن کدها یک چیز است و نوشتن آن ها چیزی دیگر! بنابراین در هر چند جلسه ممکن است تمریناتی به شما بدهیم و از شما بخواهیم جواب را پیدا کنید. توصیه ی بنده این است که مستقیما به سمت جواب نروید بلکه سعی کنید خودتان آن را به دست بیاورید. برویم سراغ تمرین ها…
سوال اول: مقادیر City
و Country
را به بروزرسانی (UPDATE) کنید:
پاسخ سوال:
|
UPDATE Customers
SET City = 'Oslo',
Country = 'Norway'
WHERE CustomerID = 32;
|
در جلسات قبل توضیح دادیم که برای تعیین مقدار از دستور SET استفاده می کنیم. همچنین کلیدواژه ی UPDATE که در صورت سوال به شما دادیم به معنای بروزرسانی است (یعنی تغییر دادن یک مقدار قدیمی). نکته ی خاصی در مورد Country وجود ندارد اما نکته ی ریزی که اکثر برنامه نویسان فراموش می کنند قرار دادن ویرگول بین مقادیر مختلفی است که تعیین می شوند. به خط ,‘SET City = ‘Oslo در کد دقت کنید؛ اگر ویرگول (که قرمز شده است) برداشته شود تمام کد ما خراب می شود.
سوال دوم: تمام ردیف هایی که در جدول Customers
قرار دارند و مقدار Country
در آن ها برابر با Norway است را حذف کنید:
پاسخ سوال:
|
DELETE FROM Customers
WHERE Country = 'Norway';
|
دستور DELETE و همچنین دستور WHERE در مقالات زیر مورد بحث قرار گرفت:
دستورات UPDATE و DELETE در SQL
دستور WHERE در SQL (+تمرینات)
اگر با دستور DELETE و مخصوصا نکات ریز WHERE آشنا بوده باشید، این سوال برایتان هیچ نکته ی خاصی نداشته است.
سوال سوم: از بین توابعی که در این جلسه یاد گرفته ایم، تابعی را انتخاب کنید که ردیف هایی را به ما برگرداند که در آن ها Price
دارای مقدار 18 است:
پاسخ سوال:
|
SELECT COUNT(*)
FROM Products
WHERE Price = 18;
|
نکات کد بالا:
با تابع COUNT آشنا شده ایم و میدانیم که تعداد ردیف هایی را بر می گرداند که با حالت یا شرط خاصی انطباق دارند. این حالت یا شرط خاص را می توان درون پرانتز های آن (به عنوان پارامتر) نوشت. ما در این مثال از علامت ستاره * استفاده کرده ایم؛ باید بدانید علامت ستاره یعنی همه! به عبارت دیگر کد (*)SELECT COUNT می گوید همه را بشمار، سپس خط FROM Products جدول ما را مشخص می کند و ;WHERE Price = 18 می گوید در مواقعی که مقدار price برابر 18 باشد.
خلاصه ی مقاله
در قسمت اول این مقاله با توابع مهم زبان SQL آشنا شدیم؛ یعنی توابع MIN, MAX, COUNT, AVG, SUM و برای هر کدام مثال هایی ذکر کردیم. سپس در قسمت دوم مقاله طبق عادت همیشگی چند تمرین به شما ارائه کرده و آن ها را با پاسخ صحیح تحلیل کردیم. واضح است که این توابع تمام توابع موجود در SQL نیستند اما میتوان گفت از پرکاربرد ترین آن ها به شمار می آیند. امیدوارم از این قسمت لذت برده باشید.
منبع: سایت روکسو