📋 বিষয়সূচী (Table of Contents)

১৩টি পার্টস্টোরি → কনসেপ্ট → কোড
৫০+ SQL উদাহরণপ্রতিটির আউটপুট সহ
৩০টি ইন্টারভিউ প্রশ্ন+ MCQ + হোমওয়ার্ক
01

কেন LIMIT-এর দরকার পড়ল?

⏱ ১৫ মিনিট

সিনট্যাক্স শেখার আগে পাঁচটা রোজকার অভিজ্ঞতা দিয়ে শুরু করি — প্রতিটা তোমার নিজের চেনা।

📱 গল্প ১ — Facebook News Feed

ধরো Facebook-এ ৫০ কোটি পোস্ট আছে। তুমি Facebook খুললে কি সব ৫০ কোটি পোস্ট একসাথে দেখায়?

প্রশ্ন: না তো! তাহলে Facebook কি করে? আর যদি সত্যিই সব পোস্ট একসাথে লোড করার চেষ্টা করত, তোমার ফোনে কী হতো?

Facebook ডেটাবেজ থেকে শুধু প্রথম কয়েকটা পোস্ট নিয়ে আসে — বাকিগুলো তুমি স্ক্রল করলে তখন আনে। এই "শুধু কয়েকটা আনা"-র কাজটাই করে LIMIT

📦 গল্প ২ — Amazon

Amazon-এ ১ কোটি প্রোডাক্ট আছে। তুমি "Laptop" লিখে সার্চ করলে, Amazon প্রথমে দেখায় মাত্র ২০টা প্রোডাক্ট

প্রশ্ন: কেন ১ কোটি প্রোডাক্ট একসাথে দেখাবে না?
Database
LIMIT
প্রথম ২০টা প্রোডাক্ট
দ্রুত ইউজার এক্সপেরিয়েন্স

▶️ গল্প ৩ — YouTube

"Python Tutorial" লিখে সার্চ করলে লক্ষ লক্ষ ভিডিও থাকা সত্ত্বেও YouTube প্রথমে দেখায় মাত্র প্রায় ২০টা ভিডিও

🏥 গল্প ৪ — হাসপাতাল

হাসপাতালে ১ লক্ষ রোগীর রেকর্ড আছে। রিসেপশনিস্ট শুধু দেখতে চায়:

  • সর্বশেষ ১০ জন রোগী।
  • প্রথম ২০টা অ্যাপয়েন্টমেন্ট।
  • সবচেয়ে জরুরি ৫টা ইমার্জেন্সি কেস।
প্রশ্ন: সবকিছু কেন লোড করতে হবে, যখন দরকার মাত্র কয়েকটা?

🏦 গল্প ৫ — ব্যাংক

ব্যাংক ম্যানেজার চান:

  • সর্বোচ্চ ব্যালেন্সের টপ ১০ গ্রাহক।
  • সর্বশেষ ২০টা লেনদেন।
  • নতুন খোলা প্রথম ৫০টা অ্যাকাউন্ট।
প্রশ্ন: সিস্টেম কি লক্ষ লক্ষ রেকর্ড রিটার্ন করবে, নাকি শুধু দরকারি কয়েকটা?

পুরো প্রসেসটা একনজরে

Database
SELECT
ORDER BY (ঐচ্ছিক)
LIMIT
দরকারি রেকর্ডগুলো
দ্রুত পারফরম্যান্স ⚡
মূল কথা: LIMIT ব্যবহার হয় ডেটাবেজ থেকে ফেরত আসা ডেটার পরিমাণ কমাতে, যাতে অ্যাপ্লিকেশন দ্রুত চলে এবং মানুষ সহজে ফলাফল পড়তে পারে।

LIMIT ছাড়া বনাম LIMIT থাকলে

লক্ষ লক্ষ রেকর্ড
ধীরগতির সিস্টেম
বিভ্রান্তিকর আউটপুট 😩
শুধু দরকারি রেকর্ড
দ্রুত কোয়েরি
সহজ পাঠযোগ্যতা ✅

📜 LIMIT-এর ইতিহাস

প্রথম দিকের ডেটাবেজ সিস্টেমগুলো ছোট ছোট ডেটাসেট নিয়ে কাজ করত, তাই কোয়েরি চালালে সব রেকর্ড একসাথে ফেরত দেওয়াটা সমস্যা ছিল না। কিন্তু যখন সার্চ ইঞ্জিন, ব্যাংকিং সিস্টেম, সোশ্যাল মিডিয়া আর ই-কমার্স প্ল্যাটফর্মে ডেটার পরিমাণ কোটি কোটিতে পৌঁছাল, তখন সব রেকর্ড একসাথে ফেরত দেওয়া অসম্ভব হয়ে গেল — এতে সার্ভার স্লো হয়ে যেত, ইউজারের ব্রাউজার ক্র্যাশ করত। তাই LIMIT (এবং SQL Server-এ TOP) ডেটাবেজ ভাষায় অপরিহার্য একটা অংশ হয়ে উঠল।

02

LIMIT আসলে কী?

⏱ ১৫ মিনিট

LIMIT হলো SQL-এর এমন একটা ক্লজ, যেটা একটা কোয়েরির ফলাফল থেকে সর্বোচ্চ কতগুলো সারি (row) ফেরত আসবে তা নির্দিষ্ট করে দেয়। এটা ডেটা মুছে ফেলে না — শুধু কতগুলো সারি দেখাবে সেটা কমিয়ে দেয়।

সব রেকর্ড বনাম সীমিত রেকর্ড

বিষয়LIMIT ছাড়াLIMIT সহ
রিটার্ন হওয়া ডেটাটেবিলের সব সারিনির্দিষ্ট সংখ্যক সারি
স্পিডবড় টেবিলে ধীরদ্রুত
ইউজার এক্সপেরিয়েন্সবিভ্রান্তিকর, ওভারলোডপরিষ্কার, সহজে পড়া যায়
ব্যবহারিক উদাহরণSELECT * FROM Products;SELECT * FROM Products LIMIT 20;

দৃশ্যত প্রবাহ

Database
SELECT
LIMIT
ছোট, পরিষ্কার রেজাল্ট
💬 ক্লাস ডিসকাশন: LIMIT কি ডেটাবেজ থেকে ডেটা স্থায়ীভাবে মুছে ফেলে?
✅ ঠিক! LIMIT শুধু আউটপুটে কতগুলো সারি দেখাবে তা ঠিক করে — টেবিলের আসল ডেটা অক্ষতই থাকে।
03

Basic LIMIT

⏱ ২০ মিনিট
SELECT * FROM Employees LIMIT 5;
SELECT *সব কলাম দেখাতে চাই।
FROM EmployeesEmployees টেবিল থেকে ডেটা আনছি।
LIMIT 5যত সারিই থাকুক না কেন, মাত্র প্রথম ৫টা সারি দেখাও।

দৃশ্যত প্রবাহ

টেবিল (হাজারো সারি)
সারি পড়া শুরু
৫টা সারির পর থামো
আউটপুট দেখাও

উদাহরণ ১: প্রথম ৫ জন ছাত্রছাত্রী

SELECT * FROM Students LIMIT 5;
StudentIdNameClass
1Rafi8
2Nusrat9
3Tanvir7
4Mim8
5Arafat9
আউটপুট ব্যাখ্যা: টেবিলে হয়তো ৫,০০০ জন ছাত্রছাত্রী আছে, কিন্তু আমরা মাত্র প্রথম ৫ জনকে দেখলাম — ঠিক যে ক্রমে তারা টেবিলে সংরক্ষিত ছিল।

উদাহরণ ২: প্রথম ১০ জন কর্মী

SELECT * FROM Employees LIMIT 10;

উদাহরণ ৩: প্রথম ৩টা প্রোডাক্ট

SELECT * FROM Products LIMIT 3;

উদাহরণ ৪: প্রথম ২০ জন গ্রাহক

SELECT * FROM Customers LIMIT 20;
⚠️ গুরুত্বপূর্ণ সতর্কতা: ORDER BY ছাড়া LIMIT ব্যবহার করলে "প্রথম কয়টা" আসলে কোন ক্রমে আসবে তার কোনো গ্যারান্টি নেই — ডেটাবেজ যেভাবে সারি সংরক্ষণ করেছে, সেভাবেই দেখাবে। তাই অর্থবহ ফলাফলের জন্য প্রায় সবসময় ORDER BY লাগে (পরের পার্টে দেখব)।

🎛️ ইন্টারঅ্যাক্টিভ প্লেগ্রাউন্ড — স্লাইডার দিয়ে LIMIT বদলাও

নিচে ১০টা প্রোডাক্টের ডেটা আছে। স্লাইডার সরিয়ে দেখো LIMIT ভ্যালু বদলালে আউটপুট কীভাবে বদলে যায়।

LIMIT = 5
SELECT * FROM Products LIMIT 5;
04

LIMIT এর সাথে ORDER BY

⏱ ২০ মিনিট

একা LIMIT বললে ডেটাবেজ জানে না তুমি "সবচেয়ে ভালো" নাকি "সবচেয়ে খারাপ" চাও। তাই আগে সাজাতে হয়, তারপর কাটতে হয়।

SELECT * FROM Employees ORDER BY Salary DESC LIMIT 10;
সব কর্মী
↓ Salary অনুযায়ী সাজাও (বেশি থেকে কম)
সাজানো তালিকা
↓ টপ ১০টা নাও
চূড়ান্ত আউটপুট

উদাহরণ: সর্বোচ্চ বেতনের কর্মী

NameSalary
Karim1,80,000
Rahim1,65,000
Salma1,50,000

উদাহরণ: সবচেয়ে কম দামের প্রোডাক্ট

SELECT * FROM Products ORDER BY Price ASC LIMIT 5;

উদাহরণ: সর্বশেষ অর্ডার

SELECT * FROM Orders ORDER BY OrderDate DESC LIMIT 20;

উদাহরণ: টপ ছাত্রছাত্রী

SELECT * FROM Students ORDER BY CGPA DESC LIMIT 3;
কেন ORDER BY + LIMIT একসাথে এত জনপ্রিয়? কারণ বাস্তব বিজনেস প্রশ্ন প্রায় সবসময় "টপ কতজন" বা "সাম্প্রতিক কতগুলো" — আর এই দুটোর জন্যই প্রথমে সাজানো (ORDER BY) এবং তারপর কাটা (LIMIT) দরকার হয়।
05

LIMIT এর সাথে OFFSET

⏱ ২০ মিনিট

ধরো তুমি প্রথম ২০টা রেজাল্ট দেখে ফেলেছ, এখন পরের ২০টা দেখতে চাও — এটাই পেজিনেশন (Pagination)। এখানে কাজে আসে OFFSET।

SELECT * FROM Products LIMIT 10 OFFSET 20;
OFFSET 20প্রথম ২০টা সারি বাদ দিয়ে দাও (স্কিপ করো)।
LIMIT 10তারপরের ১০টা সারি নাও।
প্রথম ২০টা রেকর্ড স্কিপ করো
পরের ১০টা নাও
দেখাও

বিজনেস উদাহরণ: Google সার্চ রেজাল্ট পেজিনেশন

Page 1 (LIMIT 10 OFFSET 0)
Page 2 (LIMIT 10 OFFSET 10)
Page 3 (LIMIT 10 OFFSET 20)

🔄 পেজিনেশন সিমুলেটর — Next/Previous চেপে দেখো

নিচে ৫০টা প্রোডাক্টের ডেটা প্রতি পেজে ৫টা করে দেখানো হচ্ছে।

SELECT * FROM Products LIMIT 5 OFFSET 0;
Page 1 / 10
⚠️ সাধারণ ভুল: বড় OFFSET মান (যেমন OFFSET 1000000) দিলে ডেটাবেজকে প্রথমে ১০ লাখ সারি স্কিপ করে গুনতে হয় — এটা ধীর হতে পারে। বড় ডেটাসেটে পেজিনেশনের জন্য আরও efficient পদ্ধতি (যেমন cursor/keyset pagination) ব্যবহার করা হয়, কিন্তু বিগিনার পর্যায়ে LIMIT+OFFSET-ই যথেষ্ট।
06

LIMIT এর সাথে WHERE

⏱ ১৫ মিনিট

SQL Execution Order

FROM
WHERE
SELECT
ORDER BY
LIMIT
Output

উদাহরণ ১: শুধু IT কর্মী, প্রথম ৫ জন

SELECT * FROM Employees WHERE Department = 'IT' LIMIT 5;

উদাহরণ ২: ৳৫০০-এর বেশি দামের প্রোডাক্ট, প্রথম ১০টা

SELECT * FROM Products WHERE Price > 500 LIMIT 10;

উদাহরণ ৩: ঢাকার ছাত্রছাত্রী, প্রথম ২০ জন

SELECT * FROM Students WHERE City = 'Dhaka' LIMIT 20;
গুরুত্বপূর্ণ: WHERE সবসময় LIMIT-এর আগে কাজ করে। মানে আগে অপ্রয়োজনীয় সারি বাদ যায়, তারপর যা বাকি থাকে তা থেকে LIMIT সংখ্যক সারি নেওয়া হয়।
07

WHERE + ORDER BY + LIMIT — সবগুলো একসাথে

⏱ ১৫ মিনিট
SELECT * FROM Employees WHERE Department = 'IT' ORDER BY Salary DESC LIMIT 5;
টেবিল পড়ো
IT ফিল্টার করো (WHERE)
Salary অনুযায়ী সাজাও (ORDER BY)
টপ ৫টা নাও (LIMIT)
Output
WHERE Department='IT'শুধু IT ডিপার্টমেন্টের কর্মীদের বাছাই করলাম।
ORDER BY Salary DESCতাদের মধ্যে সবচেয়ে বেশি বেতন যার, সে সবার উপরে থাকবে।
LIMIT 5শুধু সেরা ৫ জনকে দেখাও।
08

বিজনেস কেস স্টাডি — ShopKori E-commerce Database

⏱ ২০ মিনিট

আবারও আমাদের পরিচিত ShopKori ই-কমার্স প্ল্যাটফর্ম নিয়ে কাজ করব।

টাস্ক ১: টপ ১০ সবচেয়ে দামি প্রোডাক্ট

SELECT Name, Price FROM Products ORDER BY Price DESC LIMIT 10;

টাস্ক ২: সর্বশেষ ২০টা অর্ডার

SELECT * FROM Orders ORDER BY OrderDate DESC LIMIT 20;

টাস্ক ৩: প্রথম ৫ জন গ্রাহক

SELECT * FROM Customers LIMIT 5;

টাস্ক ৪: সবচেয়ে সস্তা ১৫টা প্রোডাক্ট

SELECT Name, Price FROM Products ORDER BY Price ASC LIMIT 15;

টাস্ক ৫: টপ রেটেড প্রোডাক্ট

SELECT Name, Rating FROM Products ORDER BY Rating DESC LIMIT 10;

টাস্ক ৬: সবচেয়ে বেশি খরচ করা গ্রাহক

SELECT CustomerName, SUM(TotalAmount) AS TotalSpent FROM Orders GROUP BY CustomerName ORDER BY TotalSpent DESC LIMIT 10;
CustomerNameTotalSpent
Nabila৳৮৫,০০০
Sabbir৳৭২,৫০০
09

MySQL Workbench / Google Colab-এ হাতে-কলমে অনুশীলন

⏱ প্র্যাকটিক্যাল সেশন
ধাপ ১Database তৈরি: CREATE DATABASE shopkori_db;
ধাপ ২Products টেবিল তৈরি করা
ধাপ ৩Sample ডেটা ইনসার্ট করা
ধাপ ৪SELECT * — সব ডেটা দেখা
ধাপ ৫LIMIT 5 প্রয়োগ করা
ধাপ ৬LIMIT 10 প্রয়োগ করা
ধাপ ৭ORDER BY + LIMIT একসাথে
ধাপ ৮WHERE + LIMIT একসাথে
ধাপ ৯WHERE + ORDER BY + LIMIT
ধাপ ১০LIMIT + OFFSET দিয়ে পেজিনেশন

সম্পূর্ণ Setup কোড

-- ধাপ ১ ও ২: Database এবং Table তৈরি CREATE DATABASE shopkori_db; USE shopkori_db; CREATE TABLE Products ( ProductId INT PRIMARY KEY, Name VARCHAR(100), Price DECIMAL(10,2), Rating DECIMAL(2,1) ); -- ধাপ ৩: ডেটা ইনসার্ট INSERT INTO Products VALUES (1, 'Wireless Mouse', 550, 4.3), (2, 'Keyboard', 1200, 4.5), (3, 'Monitor', 8500, 4.7); -- ধাপ ৯: সব একসাথে SELECT * FROM Products WHERE Price > 500 ORDER BY Price DESC LIMIT 5;
⚠️ সাধারণ বিগিনার ভুল: LIMIT 5 WHERE Price > 500 (ভুল অর্ডার — LIMIT সবার শেষে বসে)
✅ সঠিক: WHERE Price > 500 ORDER BY Price DESC LIMIT 5

Best Practices

10

বিগিনাররা যেসব ভুল সবচেয়ে বেশি করে

⏱ সাধারণ ভুল
ভুল ১ — LIMIT-এর আগে ORDER BY ভুলে যাওয়া

ORDER BY ছাড়া LIMIT ব্যবহার করলে "টপ ৫" বা "সাম্প্রতিক ৫" বোঝানো যায় না — শুধু "যেকোনো ৫টা সারি" পাওয়া যায়।

ভুল ২ — LIMIT ডেটা স্থায়ীভাবে মুছে ফেলে ভাবা

অনেকে ভয় পায় LIMIT ব্যবহার করলে বাকি ডেটা হারিয়ে যাবে। আসলে LIMIT শুধু আউটপুট নিয়ন্ত্রণ করে, টেবিলের ডেটাতে কোনো প্রভাব ফেলে না।

ভুল ৩ — WHERE-এর আগে LIMIT বসানো SELECT * FROM Products LIMIT 5 WHERE Price > 500;
SELECT * FROM Products WHERE Price > 500 LIMIT 5;
ভুল ৪ — LIMIT আর TOP গুলিয়ে ফেলা

MySQL/PostgreSQL-এ LIMIT ব্যবহার হয়, কিন্তু SQL Server-এ একই কাজের জন্য TOP ব্যবহার হয় (SELECT TOP 5 * FROM Products)। দুটোর সিনট্যাক্স আলাদা।

ভুল ৫ — OFFSET ভুলে যাওয়া

পেজিনেশনের সময় শুধু LIMIT দিলে সবসময় প্রথম কয়েকটা রেকর্ডই আসবে — পরের পেজের জন্য OFFSET লাগবেই।

ভুল ৬ — ORDER BY ছাড়া একই রেজাল্টের আশা করা

ধরে নেওয়া হয় যে LIMIT সবসময় একই ৫টা সারি ফেরত দেবে। কিন্তু ORDER BY ছাড়া ডেটাবেজ ইঞ্জিন ভিন্ন সময়ে ভিন্ন ক্রমে রেজাল্ট দিতে পারে।

11

প্রফেশনালরা কীভাবে LIMIT ব্যবহার করে

⏱ ইন্ডাস্ট্রি বেস্ট প্র্যাকটিস
Data Analyst→ বড় ডেটাসেট প্রিভিউ করে
BI Engineer→ ড্যাশবোর্ড অপটিমাইজ করে
Backend Developer→ API পেজিনেশন তৈরি করে
E-commerce→ প্রোডাক্ট লিস্টিং দেখায়
Social Media→ নিউজ ফিড লোড করে
Finance Team→ সর্বশেষ লেনদেন দেখায়
Operations→ সাম্প্রতিক রেকর্ড মনিটর করে

Performance Tips

12

ক্লাসরুম অ্যাক্টিভিটি

⏱ ইন্টারঅ্যাক্টিভ অ্যাক্টিভিটি
অ্যাক্টিভিটি ১: SELECT * FROM Products ORDER BY Price DESC LIMIT 3; — এটা কী দেখাবে অনুমান করো।
✅ ঠিক! DESC মানে বেশি থেকে কম সাজানো, তাই টপ ৩টা হবে সবচেয়ে দামি।
অ্যাক্টিভিটি ২: পেজ ৩-এ যেতে হলে, যদি প্রতি পেজে ১০টা করে আইটেম থাকে, তাহলে OFFSET কত হবে?
✅ ঠিক! Page 1 = OFFSET 0, Page 2 = OFFSET 10, Page 3 = OFFSET 20 (আগের ২০টা স্কিপ করে পরের ১০টা)।

অ্যাক্টিভিটি ৩ (দলগত): ভুল কোয়েরি খুঁজে বের করো — SELECT * FROM Employees LIMIT 5 WHERE Department='IT';

অ্যাক্টিভিটি ৪: LIMIT ছাড়া এবং LIMIT সহ একই কোয়েরি চালিয়ে আউটপুটের পার্থক্য তুলনা করো।

অ্যাক্টিভিটি ৫: "টপ ৫ বিক্রীত প্রোডাক্ট" বের করার জন্য নিজে নিজে ORDER BY + LIMIT কোয়েরি লেখো।

13

কুইক রিভিশন — চিট শিট

⏱ রিভিশন
LIMIT কী করেফেরত আসা সারির সংখ্যা সীমিত করে
ডেটা মুছে ফেলে কি?না, শুধু আউটপুট নিয়ন্ত্রণ করে
এক্সিকিউশন অর্ডারFROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT
ORDER BY ছাড়া LIMITফলাফলের ক্রম অনিশ্চিত
OFFSETপ্রথম কয়টা সারি স্কিপ করে (পেজিনেশনে ব্যবহৃত)
SQL Server-এ সমতুল্যTOP (SELECT TOP 5 * FROM ...)
সবচেয়ে সাধারণ ভুলORDER BY ছাড়া LIMIT ব্যবহার করা

LIMIT vs TOP vs OFFSET — তুলনা

বিষয়LIMITTOPOFFSET
ব্যবহৃত হয়MySQL, PostgreSQLSQL ServerMySQL, PostgreSQL (LIMIT-এর সাথে)
কাজসর্বোচ্চ সারি সংখ্যা সীমিত করেসর্বোচ্চ সারি সংখ্যা সীমিত করেপ্রথম কয়টা সারি স্কিপ করে
সিনট্যাক্সLIMIT 5TOP 5LIMIT 5 OFFSET 10
বসে কোথায়কোয়েরির শেষেSELECT-এর ঠিক পরেLIMIT-এর সাথে শেষে
14

২০টি MCQ (উত্তরসহ)

⏱ MCQ
15

Top 30 SQL LIMIT ইন্টারভিউ প্রশ্ন

⏱ ইন্টারভিউ প্রস্তুতি
16

বাসার কাজ

⏱ হোমওয়ার্ক
  1. ShopKori Products টেবিল থেকে টপ ৫টা সবচেয়ে বেশি রেটিং পাওয়া প্রোডাক্ট বের করো।
  2. Orders টেবিল থেকে সর্বশেষ ১৫টা অর্ডার বের করো (ORDER BY + LIMIT ব্যবহার করে)।
  3. এমন একটা কোয়েরি লেখো যা WHERE, ORDER BY, LIMIT এবং OFFSET — সবগুলোই ব্যবহার করবে (পেজ ২ দেখানোর জন্য, প্রতি পেজে ১০টা করে)।
  4. LIMIT আর TOP-এর মধ্যে পার্থক্য নিজের ভাষায় লেখো, একটা উদাহরণসহ।
  5. ব্যাখ্যা করো কেন ORDER BY ছাড়া LIMIT ব্যবহার করলে সমস্যা হতে পারে — নিজের একটা উদাহরণ দাও।