WHERE কী?
পুরো টেবিল না দেখে শুধু দরকারি সারিগুলো দেখতে WHERE ব্যবহার করা হয়। WHERE এর পরে একটি শর্ত লিখি। যে সারিগুলো শর্ত মানে, শুধু সেগুলো ফলাফলে আসে।
সিনট্যাক্স
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'→লেখা বা টেক্সট সিঙ্গেল কোটের মধ্যে লিখতে হয়
নিচের মূল টেবিলে যে সারিগুলো শর্ত মানে সেগুলো কমলা রঙে দেখানো হলো। বাকি সারি বাদ যাবে।
| roll | name | class | section | group_name |
|---|---|---|---|---|
| 1 | Rudra | 11 | A | Science |
| 2 | Habib | 12 | A | Commerce |
| 3 | Pappu | 11 | B | Arts |
| 4 | Anik | 12 | B | Science |
| 5 | Priya | 11 | A | Commerce |
| roll | name | class | section | group_name |
|---|---|---|---|---|
| 1 | Rudra | 11 | A | Science |
| 4 | Anik | 12 | B | Science |
উদাহরণ ২: সংখ্যার সাথে তুলনা
যেসব রেজাল্টে নম্বর ৮০ বা তার বেশি, সেগুলো দেখতে চাই।
SELECT * FROM result WHERE marks >= 80;marks >= 80→marks এর মান ৮০ অথবা ৮০ এর বেশি হতে হবে80→সংখ্যায় কোট লাগে না
| roll | subject_code | marks |
|---|---|---|
| 1 | 275 | 88 |
| 1 | 174 | 82 |
| 1 | 101 | 76 |
| 2 | 275 | 78 |
| 2 | 253 | 75 |
| 2 | 109 | 72 |
| 3 | 275 | 29 |
| 3 | 304 | 65 |
| 3 | 101 | 60 |
| 4 | 275 | 31 |
| 4 | 174 | 90 |
| 4 | 101 | 70 |
| 5 | 275 | 65 |
| 5 | 253 | 84 |
| 5 | 109 | 80 |
| roll | subject_code | marks |
|---|---|---|
| 1 | 275 | 88 |
| 1 | 174 | 82 |
| 4 | 174 | 90 |
| 5 | 253 | 84 |
| 5 | 109 | 80 |
৮০ নম্বর পাওয়া রেজাল্টটিও (roll 5, Economics) এসেছে, কারণ >= মানে বড় অথবা সমান।
আরও একটি উদাহরণ: সমান নয়
class 12 ছাড়া বাকি শিক্ষার্থীদের নাম ও class দেখতে চাই।
SELECT name, class FROM student WHERE class != 12;| name | class |
|---|---|
| Rudra | 11 |
| Pappu | 11 |
| Priya | 11 |
- লেখা সিঙ্গেল কোটের মধ্যে লিখতে হয়:
'Science'। সংখ্যায় কোট লাগে না:80। - লেখা টেবিলে যেভাবে আছে হুবহু সেভাবে লিখো। কিছু DBMS এ ‘science’ আর ‘Science’ আলাদা ধরা হয়।
!=আর<>একই কাজ করে।
অনুশীলন
প্রতিটি প্রশ্নের Query নিজে লেখো। চাইলে SQL Playground এ টেবিল তৈরি করে চালিয়ে দেখো। তারপর উত্তর মিলিয়ে নাও।
যারা কোনো বিষয়ে ৩৩ এর কম নম্বর পেয়েছে, তাদের রেজাল্ট দেখাও।
উত্তর দেখো
SELECT * FROM result WHERE marks < 33;| roll | subject_code | marks |
|---|---|---|
| 3 | 275 | 29 |
| 4 | 275 | 31 |
roll 3 এর সব রেজাল্ট দেখাও।
উত্তর দেখো
SELECT * FROM result WHERE roll = 3;| roll | subject_code | marks |
|---|---|---|
| 3 | 101 | 60 |
| 3 | 275 | 29 |
| 3 | 304 | 65 |
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';| roll | mobile_no |
|---|---|
| 4 | 01644444444 |
