SQL WHERE ক্লজ একটি কমান্ড দিয়ে ফেরত আসা বা প্রভাবিত রেকর্ডের সংখ্যা সীমিত করে। এটি SELECT, UPDATE, এবং DELETE ক্লজসহ ব্যবহার করা হয়। আপনি AND কিওয়ার্ড ব্যবহার করে একাধিক শর্ত নির্দিষ্ট করতে পারেন যেগুলো আপনার কমান্ড দ্বারা প্রভাবিত রেকর্ডগুলোকে পূরণ করতে হবে।
আপনি নির্দিষ্ট শর্ত ব্যবহার করে একটি কোয়েরির ফলাফল ফিল্টার করতে চাইতে পারেন। উদাহরণস্বরূপ, আপনি যেসব কর্মী সেলস ম্যানেজার তাদের তালিকা চাইতে পারেন। অথবা আপনি জানতে চাইতে পারেন কে একটি নির্দিষ্ট তারিখের পর একটি কোম্পানিতে কাজ শুরু করেছে।
আপনি WHERE ক্লজ ব্যবহার করে SQL কমান্ড চালানোর সময় নির্দিষ্ট রেকর্ড ফিল্টার আউট করতে পারেন। এই স্টেটমেন্ট SELECT, UPDATE, এবং DELETE ক্লজসহ কাজ করতে পারে। এই গাইডে, আমরা WHERE ক্লজ ব্যবহার করে SQL-এ রেকর্ড ফিল্টার করার পদ্ধতি আলোচনা করব।
SQL WHERE ক্লজ
SQL WHERE ক্লজ সেই রেকর্ডগুলো ফিল্টার করে যা একটি নির্দিষ্ট শর্ত বা শর্তের সেট পূরণ করে। WHERE ক্লজ একটি SQL স্টেটমেন্টে "FROM" ক্লজের পর আসে।
এই স্টেটমেন্টের সিনট্যাক্স নিচে:
SELECT * FROM table WHERE column comparison value;
"SELECT * FROM table" একটি স্ট্যান্ডার্ড সিলেক্ট কোয়েরি। আমরা WHERE স্টেটমেন্ট ব্যবহার করি আমাদের কোয়েরি যে রেকর্ডগুলো ফেরত দেয় সেটি সীমিত করতে। "column" বলতে কলামটি বোঝায় যেখানে শর্তটি পূরণ করতে হবে। "comparison" এবং "value" আমরা যে তুলনা করতে চাই সেটি প্রতীক বোঝায়।
সম্ভাব্য তুলনা গুলো:
WHERE name == "Jeff"; WHERE age > 15; WHERE salary < 50000;
আপনি SQL AND কিওয়ার্ড ব্যবহার করে একাধিক WHERE স্টেটমেন্ট নির্দিষ্ট করতে পারেন:
SELECT * FROM table WHERE column1 comparison1 value1 AND column2 comparison2 value2;
চলুন একটি WHERE স্টেটমেন্টের উদাহরণ দেখি।
SQL WHERE উদাহরণ: SELECT
আমরা যেসব কর্মী সিনিয়র সেলস অ্যাসোসিয়েট তাদের তালিকা পেতে চাই। সেজন্য আমরা নিচের SQL SELECT স্টেটমেন্ট ব্যবহার করতে পারি:
SELECT name, title FROM employees WHERE title = 'Senior Sales Associate';
কোয়েরি আমাদের মাপদণ্ড পূরণকারী নিচের সারিগুলো ফেরত দেয়:
name | title
——-+————————
Geoff | Senior Sales Associate
Adam | Senior Sales Associate
(২ সারি)
উপরের সকল কর্মীর টাইটেল "Senior Sales Associate."
আরেকটি উদাহরণ ব্যবহার করি। ধরুন আমরা ৩৫,০০০ ডলারের বেশি বেতন পাওয়া এবং যাদের নাম Adam নয় সেসব কর্মীর তালিকা চাই। আমরা নিচের SQL স্টেটমেন্ট ব্যবহার করতে পারি:
SELECT name, salary FROM employees WHERE salary > 35000 AND name <> "Adam";
আমাদের কোয়েরি নিচের তালিকা ফেরত দেয়:
name | salary
——-+——–
Geoff | 38000
Emma | 50000
Jonah | 50000
Adam | 38000
(৪ সারি)
Adam-এর নাম আমাদের ফলাফল সেটে নেই এমনকি সে ৩৫,০০০ ডলারের বেশি বেতন পায়। এর কারণ আমরা আমাদের কোয়েরিতে <> অপারেটর ব্যবহার করে তার নাম বাদ দিয়েছি।
WHERE SQL ক্লজ: Update এবং Delete
SQL WHERE ক্লজ UPDATE এবং DELETE স্টেটমেন্টসহ কাজ করে।
উদাহরণস্বরূপ, ধরুন আপনি কোম্পানির পুনর্গঠন হলে যেসব কর্মী যে শাখায় কাজ করে সেটি আপডেট করতে চান। আপনি এটি UPDATE স্টেটমেন্ট ব্যবহার করে করতে পারেন।
আমরা লুক-এর শাখা "Boston"- থেকে "Cambridge"-এ পরিবর্তন করতে চাই, যেখানে তার নতুন অফিস আছে। আমরা এটি একটি SQL UPDATE স্টেটমেন্ট ব্যবহার করে করতে পারি:
UPDATE employees SET branch = 'Cambridge' WHERE name = 'Luke';
যদি আমরা লুক-এর শাখা খুঁজে বের করতে কোয়েরি করি, তবে নিচের ফলাফল সেট পাই:
name | branch
——+———–
Luke | Cambridge
(১ সারি)
আমরা SQL DELETE কমান্ডসহ WHERE ক্লজ ব্যবহার করতে পারি।
ধরুন আমরা Albany শাখায় কাজ করা সকল কর্মীর রেকর্ড ডিলিট করতে চাই, যা বন্ধ হয়েছে। আমরা নিচের কমান্ড ব্যবহার করে এটি করতে পারি:
যখন আমরা আমাদের কর্মীদের তালিকা পাই, তবে রিটার্ন হওয়া সারির সংখ্যা আটের বদলে ছয় হয়:
DELETE FROM employees WHERE branch = 'Albany';
আমাদের কোড ছয় সারি ফেরত দেয়:
name | branch
——–+—————
Mike | Stamford
Hannah | San Francisco
Geoff | San Francisco
Alexis | Boston
Adam | Sacramento
Luke | Cambridge
(৬ সারি)
SQL অপারেটরসমূহ
SQL WHERE ক্লজ লজিক্যাল অপারেটর ব্যবহার করে রেকর্ড ফিল্টার আউট করে। আমাদের প্রথম উদাহরণে, আমরা "ইকুয়াল টু" অপারেটর ব্যবহার করেছি সিনিয়র সেলস অ্যাসোসিয়েটদের নাম চেক করার জন্য।
একটি কনফিগারেশন ক্লজ ব্যবহার করার সময় রেকর্ড ফিল্টার আউট করার জন্য আমরা যে লজিক্যাল অপারেটরগুলো ব্যবহার করতে পারি সেগুলো নিচে:
| Operator | Description | Example |
| = | ইকুয়াল টু (Is equal to) | WHERE name = ‘Jake’ |
| > | গ্রেটার দান (Is greater than) | age > 20 |
| < | লেস দান (Is less than) | age < 20 |
| >= | গ্রেটার দান বা ইকুয়াল (Greater than or equal to) | salary => 50000 |
| <= | লেস দান বা ইকুয়াল (Less than or equal to) | salary <= 40000 |
| LIKE | প্যাটার্ন ম্যাচিং (Pattern matching) | name LIKE ‘Jo*’ |
| IN | নির্দিষ্ট মান একটি তালিকার যেকোনো মানের সাথে মেলে কিনা চেক করে (Check if a specified value matches any within a list) | title IN (‘Sales Associate’, ‘Director of Sales’) |
| BETWEEN | নির্দিষ্ট মান অন্য মানের পরিসরের মধ্যে আছে কিনা চেক করে (Check if the specified value is within a range of other values) | employee_month_awards BETWEEN 1 AND 5 |
উপসংহার
SQL WHERE ক্লজ একটি কমান্ড দ্বারা প্রভাবিত রেকর্ড ফিল্টার করে। আপনি SQL-এ WHERE ক্লজ SELECT, UPDATE, এবং DELETE স্টেটমেন্টসহ ব্যবহার করতে পারেন। আপনি AND স্টেটমেন্ট ব্যবহার করে একাধিক WHERE ক্লজ নির্দিষ্ট করতে পারেন, কিন্তু WHERE কিওয়ার্ড শুধু একবার ব্যবহার করতে হয়।
এই টিউটোরিয়ালে, আমরা কোয়েরি, SQL WHERE ক্লজ, এবং কীভাবে ক্লজ ক্লজ আপডেট বা ডিলিট অপারেশনে ব্যবহার করতে হয় সেটি আলোচনা করেছি। আমরা এই ক্লজের সাথে ব্যবহার করা যাবে এমন কন্ডিশনাল অপারেটরগুলো আলোচনা করেছি।
আপনি কি প্রফেশনাল SQL ডেভেলপার হতে আগ্রহী? আমাদের How to Learn SQL গাইড দেখুন। এই গাইডে SQL মাস্টার করতে শীর্ষ লার্নিং রিসোর্সের তালিকা আছে।