خانه SQL Server دستور SELECT TOP در SQL Server SQL Server دستورات SQL نوشته شده توسط: تیم فنی نیک آموز تاریخ انتشار: ۲۶ فروردین ۱۴۰۳ آخرین بروزرسانی: ۲۶ فروردین ۱۴۰۳ زمان مطالعه: 7 دقیقه ۴.۶ (۵) دستور SELECT TOP در SQL Server به توسعهدهندگان و مدیران پایگاه داده (DBA) این امکان را میدهد تا تعداد مشخصی از رکوردها را از یک جدول پایگاه داده استخراج کنند و از آن بهمنظور مدیریت کارآمد مجموعه دادههای بزرگ بهره ببرند. بهصورت کلی، SQL Server یک نرمافزار قدرتمند برای مدیریت و دستکاری دیتاستهای گسترده است. پیشتر به مباحث مختلفی نظیر دستور Select و دستور آپدیت ، همچنین عبارت Where و نحوه تعریف محدودیت (Constraint) در کنار ساخت جدول و ایجاد View پرداختیم. اگر علاقهمند به یادگیری مفاهیم بیشتری هستید، پیشنهاد میکنیم به آموزش جامع SQL Server مراجعه کنید. در این مطلب، مکانیزم دستور SELECT TOP در SQL Server ، کاربردها، مزایا و نحوه استفاده از آن بههمراه کوئریهای قابل اجرا را شرح میدهیم. دستور SELECT TOP در SQL Server چیست؟ دستور SELECT TOP در SQL Server برای مشخصکردن تعداد رکوردهای برگشتی از مجموعه نتایج استفاده میشود. این موضوع بهطور خاص در سناریوهایی مفید است که بهدلیل ملاحظات عملکردی یا الزامات تجاری، به محدودکردن نتایج برگشتی توسط یک کوئری نیاز است. ساختار کلی دستور SELECT TOP به شکل زیر است: SELECT TOP (number|percent) [column_names] FROM table_name WHERE [condition] ORDER BY [column_name]; بخشهای مختلف دستور Select Top بهصورت زیر تفسیر میشوند: number|percent: تعداد یا درصد رکوردهای برگشتی را مشخص میکند. column_names: ستونهایی که توسط کوئری برگردانده میشوند. table_name: جدولی که دادهها از آن استخراج میشود. شرط (condition): این جزء اختیاری، شرایطی است که باید برای انتخاب رکوردها رعایت شوند. ORDER BY: هنگام استفاده از SELECT TOP ، برای اطمینان از اینکه دادهها به ترتیب معناداری برگردانده شوند، از Order By استفاده میشود. توجه کنید که این جزء اختیاری و در عین حال، ضروری بهشمار میرود. اگر علاقهمند به یادگیری بیشتری درباره این دستور هستید، پیشنهاد میکنیم مقاله دستور مرتب سازی Order By در SQL Server را مطالعه نمایید. کاربردهای دستور SELECT TOP در SQL Server دستور SELECT TOP در SQL Server ، کاربردهای متنوعی دارد و برای سناریوهای گوناگونی مناسب است. در ادامه، تعدادی از موارد استفاده رایج SELECT TOP را بررسی میکنیم: محدودسازی استخراج داده: اغلب اوقات در گزارشگیری و تحلیل داده، لازم است فقط روی عملکردهای برتر (Top Performer ها) یا داده های پرت (Outliers) تمرکز شود. در چنین شرایطی، میتوان از دستور SELECT TOP برای استخراج تنها مرتبطترین سطرهای داده استفاده کرد. بهعنوان مثال، ۱۰ نماینده فروش برتر یا ۵ محصول با بالاترین امتیاز از این طریق قابل دریافت هستند. بهبود کارایی کوئری: برای مجموعه دادههای بزرگ، اسکن و بررسی کامل یک جدول میتواند زمانبر و پرمصرف باشد. با استفاده از SELECT TOP ، کاهش میزان دادههای پردازشی و برگشتی میسر میشود که این موضوع بهطور قابل توجهی زمان اجرای کوئری را سرعت میبخشد. صفحهبندی (Pagination): در اپلیکیشنهایی که باید دادهها بهصورت صفحهبندیشده نمایش داده شوند، میتوانید از دستور SELECT TOP در SQL Server بهمنظور دریافت تنها زیرمجموعهای از رکوردها در یک زمان استفاده کنید و بدین ترتیب، اطمینان حاصل کنید که اپلیکیشن حتی با مجموعه دادههای بزرگ، همچنان پاسخگو باشد. مزایای دستور SELECT TOP در SQL Server مزایای SELECT TOP به شرح زیر است: بهینهسازی عملکرد: SELECT TOP با محدودکردن تعداد رکوردهای برگشتی، میتواند بهطور قابل توجهی بار روی پایگاه داده را کاهش دهد. سادهسازی کوئری: این دستور به شما اجازه میدهد فقط روی بخش بالایی مجموعه دادههای خود تمرکز کنید؛ در اغلب موارد، این همان بخشی است که در گزارشات و تحلیلهای کسبوکار موردنیاز است. نتایج فوری: دستور SELECT TOP برای بررسیهای سریع و در مراحل اولیه کاوش داده که احتمالاً پردازش کل مجموعه دادهها ضروری نیست، انتخاب مفیدی است. محدودیت های دستور SELECT TOP در SQL Server محدودیت های دستور SELECT TOP در SQL Server به شرح زیر است: انحراف داده (Data Skew): بدون استفاده مناسب از شرط ORDER BY ، ممکن است SELECT TOP زیرمجموعهای از دادهها را برگرداند که نماینده کل دادهها نباشد. در چنین شرایطی، احتمالاً تحلیل و نتیجهگیریهای تحریف شده خواهند بود. انعطافپذیری محدود: در مقایسه با دستورات مشابه آن مانند LIMIT در MySQL، دستور SELECT TOP میتواند انعطافپذیری کمتری داشته باشد؛ زیرا وابستگی زیادی به سینتکس زبان T-SQL دارد و همیشه مستقیماً با سایر روشهای Pagination یا استخراج داده قابلتعویض نیست. وابستگی به ایندکس: افزایش کارایی تا حد زیادی به وجود ایندکسها بستگی دارد؛ بهطوریکه بدون وجود آنها، مزایای استفاده از دستور SELECT TOP در SQL Server کمتر تجلی میکند. برای درک مفهوم Indexing، به مقاله ایندکس گذاری (Indexing) مراجعه کنید. نحوه استفاده از دستور SELECT TOP در SQL Server در این بخش از آموزش دستور SELECT TOP در SQL Server ، نحوه استفاده از آن را ازطریق پایگاه داده Northwind بررسی خواهیم کرد. دیتابیس Northwind به وفور در بستر آموزشی و برای آشنایی با این سیستم مدیریت پایگاه داده رابطه ای (RDBMS) استفاده میشود. استخراج TOP N رکورد شما میتوانید بهراحتی TOP N رکورد موردنظر خود را از جداول پایگاه داده استخراج کنید. در مثال زیر، به استخراج ۵ رکورد Top از جدول کارمندان میپردازیم. استخراج TOP N رکورد به همراه Ordering فرض کنید میخواهیم ۵ محصول گرانقیمت برتر را از دیتابیس استخراج کنیم، در چنین شرایطی کافی است کوئری زیر را اجرا کنید: SELECT TOP 5 ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC; این کوئری، نام و قیمت پنج محصول گرانقیمت را با مرتبکردن دادهها به ترتیب نزولی برای بهدست آوردن بالاترین مقادیر، استخراج خواهد کرد. استخراج N درصد برتر رکوردها در ادامه، کوئری موردنیاز برای یافتن ۲۵ درصد برتر محصولات گرانقیمت از پایگاه داده Northwind آورده شده است: SELECT TOP 25 PERCENT ProductID, ProductName, UnitPrice FROM Products ORDER BY UnitPrice DESC; این اطلاعات برای تحلیل موجودی، ارزیابی استراتژی قیمتگذاری و برنامهریزی بازاریابی بسیار مفید است. دستور SELECT TOP همراه با عملیات Join شما میتوانید دستور SELECT TOP در SQL Server را بههمراه عملیات جوین استفاده کنید. در مثال زیر، به استخراج ۵ تأمینکننده برتر براساس تعداد محصولات تأمینشده توسط آنها میپردازیم: SELECT TOP 5 S.SupplierID, S.CompanyName, COUNT(P.ProductID) AS NumberOfProducts FROM Suppliers AS S JOIN Products AS P ON S.SupplierID = P.SupplierID GROUP BY S.SupplierID, S.CompanyName ORDER BY NumberOfProducts DESC; استخراج TOP N رکورد همراه با WITH TIES دستور WITH TIES در SQL Server به شما این امکان را میدهد که در نتایج خروجی، سطرهای اضافی که با رتبه N ام (براساس شرط ORDER BY) برابری میکنند را نیز لحاظ کنید. این زمانی مفید است که نمیخواهید به دلخواه سطرهایی را که در معیار مرتبسازی با رتبه N ام مطابقت دارند، حذف کنید. کوئری زیر به درک توزیع محصولات در دستهبندیهای مختلف کمک میکند و برای تجزیهوتحلیل موجودی و خط تولید ارزشمند است. استفاده از گزینه WITH TIES این اطمینان را حاصل میکند که تمام دستهبندیهایی که تعداد محصولاتشان برابر با سومین تعداد بالا (یعنی همرتبه هستند) در نتایج گنجانده شوند و بدین ترتیب، نمای کاملی از Top Categories را ارائه میدهد. SELECT TOP 3 WITH TIES C.CategoryID, C.CategoryName, COUNT(P.ProductID) AS NumberOfProducts FROM Categories AS C JOIN Products AS P ON C.CategoryID = P.CategoryID GROUP BY C.CategoryID, C.CategoryName ORDER BY NumberOfProducts DESC; استفاده از TOP در Subquery این نوع از SELECT TOP در SQL Server ، بهطور ویژه زمانی مفید است که نیاز به جداسازی عناصری با بالاترین رتبه براساس یک معیار خاص، مانند قیمت، امتیاز عملکرد و غیره، در یک مجموعه داده دارید. با استفاده از کوئری زیر قصد داریم محصولاتی را استخراج کنیم که قیمت آنها در میان ۱۰ قیمت برتر قرار دارد. SELECT ProductID, ProductName, UnitPrice FROM Products WHERE UnitPrice IN ( SELECT TOP 10 UnitPrice FROM Products ORDER BY UnitPrice DESC ); جمع بندی : بررسی دستور SELECT TOP دستور SELECT TOP در SQL Server به تسهیل استخراج کارآمد دادهها برای نیازهای مختلف تجاری و فنی کمک میکند. با درک کاربردها، مزایا و معایب بالقوه این دستور، میتوانید آن را بهطور مؤثر به کار ببرید. مشابه سایر مقالات، کوئریهایی را برای تمرین با پایگاه داده Northwind و به هدف تسلط بر SELECT TOP به شما آموزش دادیم. اگر میخواهید درک عمیقتری از زبان T-SQL بهدست آورید، میتوانید دو مقاله دستورات پرکاربرد SQL Server و اسکریپت های SQL را نیز بهعنوان مطالب مکمل مطالعه کنید و همچنین از دوره کوئری نویسی پیشرفته استفاده نمایید. چه رتبه ای میدهید؟ میانگین ۴.۶ / ۵. از مجموع ۵ اولین نفر باش دانلود مقاله دستور SELECT TOP در SQL Server فرمت PDF 8 صفحه حجم 1 مگابایت دانلود مقاله معرفی نویسنده مقالات 402 مقاله توسط این نویسنده محصولات 0 دوره توسط این نویسنده تیم فنی نیک آموز معرفی محصول ایمان باقری دوره آموزشی کوئری نویسی در SQL Server 2.190.000 تومان مقالات مرتبط ۰۲ آبان SQL Server ابزار Database Engine Tuning Advisor؛ مزایا، کاربردها و روش استفاده تیم فنی نیک آموز ۱۵ مهر SQL Server معرفی Performance Monitor ابزار مانیتورینگ SQL Server تیم فنی نیک آموز ۱۱ مهر SQL Server راهنمای جامع مانیتورینگ بکاپ ها در SQL Server تیم فنی نیک آموز ۰۸ مهر SQL Server Resource Governor چیست؟ آشنایی با نحوه پیکربندی و اهمیت های آن تیم فنی نیک آموز دیدگاه کاربران لغو پاسخ دیدگاه نام و نام خانوادگی ایمیل ذخیره نام، ایمیل و وبسایت من در مرورگر برای زمانی که دوباره دیدگاهی مینویسم. موبایل برای اطلاع از پاسخ لطفاً مرا با خبر کن ثبت دیدگاه Δ