SELECT

পাঠ ১ · SELECT

SELECT কী?

টেবিলে রাখা ডেটা দেখার জন্য SELECT কমান্ড ব্যবহার করা হয়। SELECT শুধু ডেটা দেখায়। টেবিলের কোনো ডেটা পরিবর্তন করে না।

এই পাঠের সব উদাহরণে ডেটাবেজ ম্যানেজমেন্ট পাঠে তৈরি করা student, contact, subject ও result টেবিল ব্যবহার করবো।

সিনট্যাক্স

SQL Syntax Rule
SELECT [কলামের নাম], [কলামের নাম]
FROM [টেবিলের নাম];

SELECT এর পরে যে কলামগুলো দেখতে চাই তাদের নাম লিখবো। একাধিক কলাম হলে নামগুলোর মাঝে কমা “,” দিবো। FROM এর পরে টেবিলের নাম লিখবো। সবশেষে সেমিকোলন “;” দিবো।

উদাহরণ ১: টেবিলের সব ডেটা দেখা

student টেবিলের সব কলাম ও সব সারি দেখতে চাই। সব কলাম বোঝাতে কলামের নামের জায়গায় তারকা চিহ্ন * লিখবো।

SELECT * FROM student;

ব্যাখ্যা

  • SELECT→ডেটা দেখার কমান্ড
  • *→সব কলাম
  • FROM→কোন টেবিল থেকে ডেটা আসবে তা বোঝায়
  • student→টেবিলের নাম
  • ;→কমান্ড এখানে শেষ

ফলাফল

ফলাফল৫টি সারি
rollnameclasssectiongroup_name
1Rudra11AScience
2Habib12ACommerce
3Pappu11BArts
4Anik12BScience
5Priya11ACommerce

উদাহরণ ২: নির্দিষ্ট কলাম দেখা

সব কলাম সবসময় দরকার হয় না। ধরো শুধু শিক্ষার্থীদের নাম ও গ্রুপ জানতে চাই। তখন * এর জায়গায় কলাম দুটোর নাম লিখবো।

SELECT name, group_name FROM student;

ব্যাখ্যা

  • name, group_name→শুধু এই দুইটি কলাম দেখাবে
  • ,→দুইটি কলামের নাম আলাদা করে
  • FROM student→ডেটা আসবে student টেবিল থেকে

নিচের মূল টেবিলে কমলা রঙের কলাম দুটো বেছে নেওয়া হয়েছে। বাকি কলাম (roll, class, section) ফলাফলে আসবে না।

student (মূল টেবিল)৫টি সারি
rollnameclasssectiongroup_name
1Rudra11AScience
2Habib12ACommerce
3Pappu11BArts
4Anik12BScience
5Priya11ACommerce
↓ SELECT name, group_name
ফলাফল৫টি সারি
namegroup_name
RudraScience
HabibCommerce
PappuArts
AnikScience
PriyaCommerce

কলামের ক্রম

SELECT এ কলামের নাম যে ক্রমে লিখবো, ফলাফলে কলাম সেই ক্রমেই আসবে। এবার group_name আগে লিখি।

SELECT group_name, name FROM student;
ফলাফল৫টি সারি
group_namename
ScienceRudra
CommerceHabib
ArtsPappu
ScienceAnik
CommercePriya

ডেটা একই আছে। শুধু কলাম দুটোর জায়গা বদলেছে।

আরও একটি উদাহরণ

কলেজে কোন কোন বিষয় পড়ানো হয় তা দেখতে চাই। বিষয়ের নাম আছে subject টেবিলের subject_name কলামে।

SELECT subject_name FROM subject;
ফলাফল৬টি সারি
subject_name
Bangla
ICT
Physics
Accounting
Economics
History

এক কলাম দেখাতে চাইলে কমা লাগে না।

মনে রাখো
  • কলামের নাম হুবহু টেবিলের মতো লিখতে হবে। group_name এর জায়গায় groupname লিখলে Error আসবে, কারণ টেবিলে এই নামে কোনো কলাম নেই।
  • দুই কলামের মাঝে কমা ভুলে গেলে সাবধান। SELECT name group_name FROM student; লিখলে Error আসে না। SQL তখন name কলামের ডেটাকে group_name শিরোনামে দেখায়। ফলে ভুল ফলাফল পাবে কিন্তু বুঝতে পারবে না।
  • SQL কীওয়ার্ড ছোট বা বড় হাতের অক্ষরে লেখা যায় (select আর SELECT একই)। তবে পড়তে সুবিধার জন্য কীওয়ার্ড বড় হাতের অক্ষরে লেখা হয়।
  • ফলাফলে সারিগুলো কোন ক্রমে আসবে তা SELECT নিশ্চিত করে না। একেক DBMS এ ক্রম একেক রকম হতে পারে। নির্দিষ্ট ক্রমে সাজাতে ORDER BY লাগে, যা পাঠ ৭ এ শিখবো।

নিজে চেষ্টা করো

একটি টেবিল বেছে নাও। তারপর কলামে ক্লিক করো। যে ক্রমে ক্লিক করবে, Query তে কলাম সেই ক্রমে বসবে এবং ফলাফল সাথে সাথে বদলাবে।

টেবিল:
কলাম:

অনুশীলন

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

১

contact টেবিলের সব ডেটা দেখাও।

উত্তর দেখো
SELECT * FROM contact;
ফলাফল৫টি সারি
contact_idrolladdressmobile_no
1011Gopalganj01711111111
1022Narayanganj01822222222
1033Barisal01933333333
1044Dhaka01644444444
1055Khulna01555555555
২

subject টেবিল থেকে subject_code ও subject_name দেখাও।

উত্তর দেখো
SELECT subject_code, subject_name FROM subject;
ফলাফল৬টি সারি
subject_codesubject_name
101Bangla
275ICT
174Physics
253Accounting
109Economics
304History
৩

student টেবিল থেকে roll, name ও class দেখাও।

উত্তর দেখো
SELECT roll, name, class FROM student;
ফলাফল৫টি সারি
rollnameclass
1Rudra11
2Habib12
3Pappu11
4Anik12
5Priya11
৪

প্রত্যেক শিক্ষার্থীর ঠিকানা ও মোবাইল নম্বর দেখাও। (কোন টেবিলে এই তথ্য আছে আগে খুঁজে বের করো)

উত্তর দেখো
SELECT address, mobile_no FROM contact;
ফলাফল৫টি সারি
addressmobile_no
Gopalganj01711111111
Narayanganj01822222222
Barisal01933333333
Dhaka01644444444
Khulna01555555555