akofaraji.ir
دستور SELECT TOP در پایگاه های داده مختلف
نوشته شده در تاریخ 06 مهر 1401
نظرات: 0 امتیاز: 10 زمان مطالعه: 16 دقیقه
 
 
دستور SELECT TOP در پایگاه داده های مختلف و SQL
 

 

سلام خدمت شما دوستان گرامی! بحث امروز ما در رابطه با عبارت SELECT TOP در زبان SQL است. آیا جمله ی زیر را به یاد دارید؟

با اینکه این زبان یک استانداردِ ANSI/ISO است اما نسخه های مختلفی از آن وجود دارد. البته برای اینکه تا حدی استاندارد بودن خود را حفظ کنند، تمام نسخه ها از دستور های اصلی (مانند SELECT, UPDATE, DELETE, INSERT, WHERE) پشتیبانی می کنند.

عبارت SELECT TOP در زبان SQL چه معنی می دهد؟

 
عبارت SELECT TOP در فارسی معنی «فلان تعدادِ اول را انتخاب کن» می دهد؛

 

تصور کنید از دوستتان می خواهید فیلم های مورد علاقه اش را به شما بگوید اما دوست ندارید یک ساعت و نیم به صحبت های او گوش کنید بنابراین به او می گویید از لیست فیلم های مورد علاقه ات، سه تای اول کدام هستند؟

 

در سایت های اینترنتی نیز همین طور است. به طور مثال در وب سایت های خرید لوازم خانه یا محصولات الکترونیک می بینیم که به شما 5 محصول اول را نمایش می دهند و برای مشاهده ی محصولات بیشتر باید به صفحه ی بعد بروید. مثال دیگر همین روکسو ی خودمان است! اگر توجه کرده باشید مطالب این سایت صفحه بندی دارد. چرا؟ به این خاطر که در بسیاری از وب سایت ها مانند روکسو مطالب بسیار زیادی برای مخاطب قرار داده شده است و نشان دادن همه ی این مطالب به صورت یکجا عیب های زیادی دارد مانند:

  • به هم ریختن نظم و شلوغ شدن صفحه
  • اسراف منابع سرور
  • هدر رفتن وقت کاربر
  • سردرگمی کاربر و پایین آمدن UX (تجربه کاربری) در سایت ما
  • و ده ها دلیل دیگر …

 

بنابراین از عبارت SELECT TOP برای مشخص کردن تعداد ردیف های برگشتی از پایگاه داده استفاده می شود. تصور کنید پایگاه داده ای با هزاران ردیف مختلف دارید؛ در چنین حالتی انتخاب تمام ردیف ها (حتی بدون نمایش دادنشان) بار سنگینی روی دوش سرور هایتان می گذارد.

 

همانطور که می دانید زبان SQL استاندارد است اما در برنامه های پایگاه داده ی مختلف تفاوت های ریزی نیز دارد از جمله ی این تفاوت ها، عبارت SELECT TOP است که در MySQL به صورت دستور LIMIT و در Oracle به صورت دستور ROWNUM وجود دارد. به ساختار های زیر دقت کنید:

 

ساختار عبارت SELECT TOP در SQL Server و MS Access:

 

ساختار عبارت SELECT TOP در MySQL:

 

ساختار عبارت SELECT TOP در Oracle:

 

قبل از کار با مثال ها باید به عنوان یادآوری نگاهی به جدول Customers در پایگاه داده ی Northwind بیندازیم:

 

قسمتی از جدول customer ها در پایگاه داده ی Northwind
قسمتی از جدول customer ها در پایگاه داده ی Northwind

 

اگر پایگاه داده ی شما اینچنین نیست، در قسمت اجرای دستور ها گزینه ی restore database را انتخاب کنید تا پایگاه داده به حالت اولیه بازگردد.

 

مثال های کار با عبارت SELECT TOP

 

دستور زیر، سه ردیف اول از جدول customers را انتخاب می کند:

 

برای اجرای این دستور در پایگاه داده ی Northwind روی این لینک کلیک کنید.

 

دستور زیر معادل دستور بالا و با استفاده از عبارت LIMIT است:

 

برای اجرای این دستور در پایگاه داده ی Northwind روی این لینک کلیک کنید.

 

و این دستور نیز معادل دستورات بالا برای ROWNUM است:

 

بیان درصدی

 

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

 

این دستور 50 درصدِ اول ردیف های جدول Customers را به شما می دهد. برای اجرای این دستور در پایگاه داده ی Northwind روی این لینک کلیک کنید.

شما می توانید تمام مطالب این جلسه به همراه مطالب جلسات قبل (به طور مثال دستور WHERE) ترکیب کنید. اگر بخواهم برایتان مثالی زده باشم می گویم:

 

برای اجرای این دستور در پایگاه داده ی Northwind روی این لینک کلیک کنید.

 

دستور بالا 3 ردیف اول را از جدول customers انتخاب می کند اما به شرطی که کشورشان آلمان (Germany) باشد. یعنی ابتدا کشورهایی که مقدارشان برابر با Germany است را انتخاب می کنیم و از بین آن ها 3 تای اول را برمیداریم.

 

سوال: از کجا می فهمیم 3 تای اول کدام هستند؟ ملاک انتخاب چیست؟

پاسخ: در جلسات بعد به جواب این سوال خواهیم رسید اما به صورت خلاصه می گویم، ملاک انتخاب ما CustomerID است چرا که کلید منحصر به فرد این جدول است.

کد زیر معادل کد بالا برای دستور LIMIT است:

 

برای اجرای این دستور در پایگاه داده ی Northwind روی این لینک کلیک کنید.

 

و همچنین معادل دستور ROWNUM:

 

خلاصه ی مقاله

 

همانطور که می دانید زبان SQL یک زبان استاندارد برای برقراری ارتباط با پایگاه های داده در دنیای وب است اما استاندارد سازی آن به شکل 100 درصدی پیاده سازی نشده است. نتیجه ی عدم استاندارد سازی کامل به وجود آمدن دستوراتی مانند SELECT TOP است. در این مقاله به طور کامل به دستور SELECT TOP و مثال های آن در برنامه های پایگاه داده (مانند MySQL و Oracle و MS Access) پرداختیم و متوجه اهمیت بسیار زیاد آن در طراحی وب سایت ها شدیم؛ به جرات میتوان گفت دستور LIMIT از دستوراتی است که در هر وب سایتی به کرات استفاده می شود. امیدوارم از این مقاله لذت برده باشیم.

 

منبع: سایت روکسو


اگر احساس می کنید این مطلب برای شما مفید بود ، از 1 تا 10 به این مطلب امتیاز دهید

دیدگاه کاربران در مورد این مطلب

ثبت نظر
به نظر خوب میاد!
لطفا نام را وارد کنید
@
لطفا یک ایمیل منحصر به فرد و معتبر انتخاب کنید.
لطفا متن با کلمات و معانی مفهوم دار وارد نمایید