আজকে আমাদের আলোচনার বিষয় – SQL এক্সপ্রেশনের তিনটি ক্লজের বর্ণনা যা অধ্যায়-৫ এর ডাটাবেস ম্যানেজমেন্ট সিস্টেম এ অন্তর্ভুক্ত। এটি চার বছর মেয়াদি কোর্সের আলোকে লেখা হয়েছে। ডাটাবেস ম্যানেজমেন্ট সিস্টেমের বিভিন্ন ইংরেজি বই অনুসরণ করেই রচনা করা হয়েছে। ইঞ্জিনিয়ারিং বিষয়ের যে-কোন বই সম্পূর্ণরূপে বাংলা ভাষায় রচনা করা সম্ভব নয়। এজন্যে কিছু কিছু ইংরেজি শব্দকে বাংলায় অনুবাদ করা হয়নি। ফলে ছাত্রছাত্রীদের হয়ত কিছুটা অসুবিধা হতে পারে।
SQL এক্সপ্রেশনের তিনটি ক্লজের বর্ণনা
SQL এক্সপ্রেশনের তিনটি ক্লজের বর্ণনা
একাধিক রিলেশন বা টেবিলের সমন্বয়ে রিলেশনাল ডাটাবেস গঠিত, যার মধ্যে প্রত্যেকটি রিলেশন বা টেবিলের ইউনিক নাম বা একক নাম থাকবে। Null Value এর ব্যবহারকে ও SQL অনুমোদন করে থাকে, যা অজনা বা অস্তিত্বহীন মানকে নির্দেশ করে। SQL এক্সপ্রেশনের বেসিক স্ট্রাকচার তিনটি ক্লজ নিয়ে গঠিত। ক্লজ তিনটি হচ্ছে-
১. select clause
২. from clause
৩. where clause
নিচে ক্লজ তিনটি সর্ম্পকে আলোচনা করা হল-
১. select clause: ডাটাবেস টেবিলে রেকর্ড ইনপুট করার পরে স্বাভাবিকভাবেই তা প্রদর্শন করার বা দেখার দরকার হয়। Select স্টেটমেন্ট দিয়ে এক বা একাধিক টেবিলের এক বা একাধিক কলাম, রো থেকে ডাটা নির্বাচন করে দেখা যায়। নির্বাচিত। রেকর্ডসমূহ Record Set, Table, DynaSet বা Snopshot আকারে প্রদর্শিত হয়। টেবিল থেকে ডাটা Retrieve করার জন্যও Sele স্টেটমেন্টটি ব্যবহৃত হয়। কোন একটি টেবিলের সকল রো এবং সকল কলামের ডাটা প্রদর্শন করার জন্য নিচের সিন্ট্যাক্সটি ব্যবহা
হয়:
Syntax:
SELECT
- এখানে * (asterisk) চিহ্নটি টেবিলের সকল কলাম এবং সকল রো’ কে নির্বাচন করে। আবার আমরা টেবিল থেকে যখন ডাটা নির্বাচন করি, তখন সকল কলাম বা সকল রোয়ের প্রয়োজন নাও হতে পারে। কেবলমাত্র সিলেক্টিভ কিছু ডাটার প্রয়োজন হতে পারে। কোন টেবিলের একাধিক ফিল্ড প্রদর্শন করতে চাইলে Select স্টেটমেন্টের সাথে ফিল্ডের নাম উল্লেখ করতে হয়। আর এয়ে প্রয়োজনীয় কলামসমূহের ডাটা দেখতে পারে। তার জন্য সিন্ট্যাক্স হলঃ
SELECT column1, column2, column3………n
নিয়মাবলি:
1. যে সকল কলাম থেকে ডাটা দেখতে হবে, তার জন্য SELECT কী-ওয়ার্ডের সাথে সে কলামগুলোর নাম কমা (,) দিয়ে লেখতে হবে।
11. সর্বশেষ কলাম নামের পরে কমা হবে না।
২. from clause: ডাটাবেসের যে সমস্ত টেবিল থেকে বা যে সমস্ত রিলেশন থেকে রেকর্ড, ডাটা, কলাম এবং রো নির্বাচন বা প্রদর্শন বা Retrieve করার প্রয়োজন, সে সমস্ত টেবিল বা রিলেশন from ক্লজের মাধ্যমে উল্লেখ করতে হয়। আর এতে ঐ রিলেশন বা টেবিল বা কুয়েরি থেকে অপারেশনের ফলাফল প্রদর্শিত হবে।
Syntext:
FROM table name
এখানে টেবিল নামের স্থলে রিলেশনালের কুয়েরি বা রিলেশনাল নাম বসাতে পারি।
৩. where clause: অনেক সময় ডাটাবেসের রিলেশনাল টেবিল থেকে শর্তসাপেক্ষে কোন বিশেষ শ্রেণীর ডাটা নির্বাচন করার প্রয়োজন হতে পারে, তখন WHERE ক্লজ ব্যবহার করে প্রয়োজনমাফিক ডাটা নির্বাচন করা যায়।
WHERE ক্লোজ দু ভাবে ডাটা নিয়ন্ত্রণ করতে পারে-
- কোন বিশেষ শ্রেণীর ডাটা নির্বাচন করা।
- একাধিক টেবিল থেকে Link করে ডাটা নির্বাচন করা।
WHERE ক্লোজ এর সাথে Logical অপারেটর ব্যবহার করে ডাটা-টেবিল থেকে বিশেষ শ্রেণীর ডাটা নির্বাচন করা যায়। নিচে WHERE ক্লজের সিন্ট্যাক্স দেয়া হলঃ
Syntax:
WHERE Column=value
এখানে Column বলতে ডাটা-টেবিলের ফিল্ড নাম এবং Value বলতে ফিল্ডের আওতায় কোন তথ্যকে বুঝায়, যেমনা Sal>2000। এবার উদাহরণ সহকারে WHERE ক্লজের কতিপয় ব্যবহার লক্ষ করা যাক। এখন নিম্নরূপ স্টেটমেন্টটি দেখি-
SQL> SELECT ENAME, Sal From Emp
2 WHERE Sal>2000;
উপরোক্ত স্টেটমেন্টটি Emp টেবিলে যে সকল রেকর্ডের Sal ফিল্ডে 2000 চেয়ে বেশি আছে, তাদের EName ও Sal ফিল্ডে ভ্যালু প্রদর্শন করবে। স্টেটমেন্টটি প্রয়োগ করা হলে তা নিম্নরূপ ফলাফল প্রদান করবেঃ
ENAME | SAL |
JONES | 2975 |
BLAKE | 2850 |
CLARK | 2450 |
SCITT | 3000 |
KING | 5000 |
FORD | 3000 |
6 rows selected.
WHERE ক্লজের সাথে =,<, >, And এবং OR ইত্যাদি যে কোন অপারেটর ব্যবহার করে এক্সপ্রেশন তৈরি করা যায়।
উদাহরণস্বরূপ নিচের এক্সপ্রেশনটি এবং ফলাফল লক্ষ করিঃ
SQL> SELECT Empno, EName, Sal FROM Emp
2 WHERE Job = ‘CLERK’
3 and Sal<1200;
EMPNO | ENAME | SAL |
7369 | SMITH | 800 |
7876 | ADAMS | 1100 |
7900 | JAMES | 950 |
লক্ষ করলে দেখতে পাই যে, যাদের বেতন ১২০০ এর চেয়ে কম, ফলাফলে তাদের রেকর্ডগুলো নির্বাচন করছে। আবার অনেক সময় টেবিলের সকল কলাম থেকে কেবলমাত্র কতিপয় (Selected) ‘রো’ এর ডাটা নির্বাচন করার প্রয়োজন হয়। এক্ষেত্রে Where ক্লজের সাথে শর্ত আরোপ করে প্রয়োজনীয় ডাটা নির্বাচন করা য়ায়। নিচে এর Syntax (নিয়ম) দেয়া হলঃ
Syntax:
SELECT * FROM table_name
WHERE search condition;
- উপরোক্ত Syntax যে টেবিল থেকে ডাটা নির্বাচন করা হবে, table_name এর স্থলে সে টেবিলের নাম লিখতে হবে।
- কী জাতীয় ডাটা নির্বাচন করতে হবে, তার জন্য WHERE ক্লজের সাথে শর্ত আরোপ করতে হবে।
উদাহরণ: ধরি client_master নামক table থেকে bal_due কলামে যাদের মান ০ এর চেয়ে বেশি তাদের নির্বাচন করি, যার structure হল :
কোডঃ
SQL> SELECT FROM Client_master
2 WHERE bal due>0;|
আরও দেখুনঃ