where

পাঠ ৩ · WHERE

WHERE কী?

পুরো টেবিল না দেখে শুধু দরকারি সারিগুলো দেখতে WHERE ব্যবহার করা হয়। WHERE এর পরে একটি শর্ত লিখি। যে সারিগুলো শর্ত মানে, শুধু সেগুলো ফলাফলে আসে।

সিনট্যাক্স

SQL Syntax Rule
SELECT [কলামের নাম]
FROM [টেবিলের নাম]
WHERE [শর্ত];

WHERE সবসময় FROM এর পরে বসে। শর্তে তুলনার চিহ্ন ব্যবহার করি।

তুলনার চিহ্ন
চিহ্নঅর্থউদাহরণ
=সমানclass = 11
!= বা <>সমান নয়class != 11
>বড়marks > 80
<ছোটmarks < 33
>=বড় অথবা সমানmarks >= 80
<=ছোট অথবা সমানmarks <= 33

উদাহরণ ১: লেখার সাথে তুলনা

শুধু Science গ্রুপের শিক্ষার্থীদের দেখতে চাই।

SELECT *
FROM student
WHERE group_name = 'Science';

ব্যাখ্যা

  • WHERE→শর্ত শুরু
  • group_name = 'Science'→group_name এর মান Science হতে হবে
  • 'Science'→লেখা বা টেক্সট সিঙ্গেল কোটের মধ্যে লিখতে হয়

নিচের মূল টেবিলে যে সারিগুলো শর্ত মানে সেগুলো কমলা রঙে দেখানো হলো। বাকি সারি বাদ যাবে।

student (মূল টেবিল)৫টি সারি
rollnameclasssectiongroup_name
1Rudra11AScience
2Habib12ACommerce
3Pappu11BArts
4Anik12BScience
5Priya11ACommerce
↓ WHERE group_name = 'Science'
ফলাফল২টি সারি
rollnameclasssectiongroup_name
1Rudra11AScience
4Anik12BScience

উদাহরণ ২: সংখ্যার সাথে তুলনা

যেসব রেজাল্টে নম্বর ৮০ বা তার বেশি, সেগুলো দেখতে চাই।

SELECT * FROM result WHERE marks >= 80;
  • marks >= 80→marks এর মান ৮০ অথবা ৮০ এর বেশি হতে হবে
  • 80→সংখ্যায় কোট লাগে না
result (মূল টেবিল)১৫টি সারি
rollsubject_codemarks
127588
117482
110176
227578
225375
210972
327529
330465
310160
427531
417490
410170
527565
525384
510980
↓ WHERE marks >= 80
ফলাফল৫টি সারি
rollsubject_codemarks
127588
117482
417490
525384
510980

৮০ নম্বর পাওয়া রেজাল্টটিও (roll 5, Economics) এসেছে, কারণ >= মানে বড় অথবা সমান।

আরও একটি উদাহরণ: সমান নয়

class 12 ছাড়া বাকি শিক্ষার্থীদের নাম ও class দেখতে চাই।

SELECT name, class FROM student WHERE class != 12;
ফলাফল৩টি সারি
nameclass
Rudra11
Pappu11
Priya11
মনে রাখো
  • লেখা সিঙ্গেল কোটের মধ্যে লিখতে হয়: 'Science'। সংখ্যায় কোট লাগে না: 80।
  • লেখা টেবিলে যেভাবে আছে হুবহু সেভাবে লিখো। কিছু DBMS এ ‘science’ আর ‘Science’ আলাদা ধরা হয়।
  • != আর <> একই কাজ করে।

অনুশীলন

প্রতিটি প্রশ্নের Query নিজে লেখো। চাইলে SQL Playground এ টেবিল তৈরি করে চালিয়ে দেখো। তারপর উত্তর মিলিয়ে নাও।

১

যারা কোনো বিষয়ে ৩৩ এর কম নম্বর পেয়েছে, তাদের রেজাল্ট দেখাও।

উত্তর দেখো
SELECT * FROM result WHERE marks < 33;
ফলাফল২টি সারি
rollsubject_codemarks
327529
427531
২

roll 3 এর সব রেজাল্ট দেখাও।

উত্তর দেখো
SELECT * FROM result WHERE roll = 3;
ফলাফল৩টি সারি
rollsubject_codemarks
310160
327529
330465
৩

Commerce গ্রুপের বিষয়গুলোর নাম দেখাও।

উত্তর দেখো
SELECT subject_name
FROM subject
WHERE group_name = 'Commerce';
ফলাফল২টি সারি
subject_name
Accounting
Economics
৪

Dhaka তে থাকে এমন শিক্ষার্থীর roll ও mobile_no দেখাও।

উত্তর দেখো
SELECT roll, mobile_no
FROM contact
WHERE address = 'Dhaka';
ফলাফল১টি সারি
rollmobile_no
401644444444