با عرض سلام و وقت بخیر خدمت کاربران سایت پی وی لرن . و کاربرانی که دوره آموزش کامل SQL را دنبال می کنند. تاکنون با یکی از دستورات شرطی پایه و اصلی در SQL که دستور شرطی WHERE است، در قالب آموزش های این دوره ، آشنا شدید. دستور WHERE به تنهایی برای جداولی که حجم زیادی ندارند، مناسب است. اما در جداولی با حجم بسیار زیاد، باعث می شود نتیجه پرس و جو نیز پر حجم بوده و بر عملکرد برنامه تاثیر بگذارد. در این گونه موارد می توانید حجم نتایج پرس و جوها را محدود کنید. که ما در آموزش مباحث عملگرهای شرطی TOP, LIMIT و ROWNUM در SQL و افزودن دستور شرطی WHERE ، در این بخش، به آن پرداخته ایم.
از دستور SELECT TOP، برای مشخص کردن تعداد رکوردهای بازگشتی در نتایج پرس و جو، استفاده می شود.
نکته: تمام بانک های اطلاعاتی از دستور SELECT TOP پشتیبانی نمی کنند. به عنوان مثال MySQL از دستور LIMIT پشتیبانی می کند. Oracle نیز از ROWNUM استفاده می کند.
دستوراتی که در بانک های اطلاعاتی مختلف پشتیبانی می شود به صورت زیر است:
در بانک های اطلاعاتی SQL Server و Access :
1 2 3 | SELECT TOP number|percent column_name(s) FROM table_name WHERE condition; |
در بانک اطلاعاتی MySQL :
1 2 3 4 | SELECT column_name(s) FROM table_name WHERE condition LIMIT number; |
در بانک اطلاعاتی Oracle :
1 2 3 | SELECT column_name(s) FROM table_name WHERE ROWNUM <= number; |
جدول زیر ، بخشی از رکوردهای جدول “Customers” است. که ما در مثال های این آموزش، از آن استفاده خواهیم کرد.
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
۱ | Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | ۱۲۲۰۹ | Germany |
۲ | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | ۰۵۰۲۱ | Mexico |
۳ | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | ۰۵۰۲۳ | Mexico |
۴ | Around the Horn | Thomas Hardy | ۱۲۰ Hanover Sq. | London | WA1 1DP | UK |
۵ | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
در مثال زیر سه رکورد اول جدول Customers نمایش داده می شود:
1 | SELECT TOP 3 * FROM Customers; |
مثال زیر همانند مثال بالا عمل می کند، اما از دستور LIMIT استفاده شده است:
1 2 | SELECT * FROM Customers LIMIT 3; |
مثال زیر نیز، همانند دو مثال بالا عمل می کند، اما از دستور ROWNUM استفاده شده است:
1 2 | SELECT * FROM Customers WHERE ROWNUM <= 3; |
در مثال زیر ۵۰% اول رکوردهای جدول Customers نمایش داده می شود:
1 | SELECT TOP 50 PERCENT * FROM Customers; |
در مثال زیر ۳ رکورد اول جدول Customers که فیلد country آن برابر با “Germany” باشد، نمایش داده می شود:
1 2 | SELECT TOP 3 * FROM Customers WHERE Country='Germany'; |
نتیجه مثال زیر با نتیجه مثال بالا برابر است، اما در این مثال از دستور LIMIT استفاده شده است:
1 2 3 | SELECT * FROM Customers WHERE Country='Germany' LIMIT 3; |
نتیجه مثال زیر با نتیجه دو مثال بالا برابر است، اما در این مثال از دستور ROWNUM استفاده شده است:
1 2 | SELECT * FROM Customers WHERE Country='Germany' AND ROWNUM <= 3; |
در مباحث فوق، ما شما را با دستوراتی آشنا کردیم که برای محدود کردن حجم نتایج بازگشتی پرس و جوها استفاده می شود. و در جداولی با حجم داده بسیار زیاد، مفید است. امیدواریم که از آموزش عملگرهای شرطی TOP, LIMIT و ROWNUM در SQL ، بخوبی استفاده کرده باشید.