এসকিউএল-২ [SELECT, INSERT INTO, WHERE Clause, AND এবং OR অপারেটর, UPDATE, DELETE] - SMH Amiri

সর্বশেষ লিখাসমূহ

এসকিউএল-২ [SELECT, INSERT INTO, WHERE Clause, AND এবং OR অপারেটর, UPDATE, DELETE]


SELECT স্টেটমেন্ট

ডেটাবেজ থেকে তথ্য(Data) সিলেক্ট/পুনরূদ্ধার করতে SQL SELECT স্টেটমেন্টটি ব্যবহার করা হয়।


SQL SELECT স্টেটমেন্ট

SELECT স্টেটমেন্টটি ডেটাবেজ থেকে তথ্য সিলেক্ট করে।

ডেটাবেজ থেকে রিটার্ন ডেটা ফলাফল টেবিলে জমা হয়, যাহাকে আমরা result-set বলে থাকি।

SQL SELECT স্টেটমেন্টের সিনট্যাক্স

SELECT name_of_column, name_of_column FROM name_of_table;

এবং

SELECT * FROM name_of_table;

এখানে name_of_column হলো টেবিলের মধ্যে কলামের নাম এবং name_of_table হলো টেবিলের নাম।


নমুনা ডেটাবেজ

SELECT স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

উদাহরণস্বরূপঃ SELECT স্টেটমেন্ট ব্যবহার করে "Student_details" টেবিল থেকে নিচের অংশটুকু নেওয়া(select) হয়েছে।

ক্রমিক নংশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

নির্দিষ্ট কলাম SELECT করা

নিম্নের SQL SELECT স্টেটমেন্টটি "Student_details" টেবিলের "শিক্ষার্থীর নাম(Student_name)" এবং "প্রতিষ্ঠানের নাম(Institute)" এই দুই কলামকে সিলেক্ট করবেঃ

উদাহরণ

SELECT Student_name, Institute FROM Student_details;

সকল(*) কলাম SELECT করা

নিম্নের SELECT স্টেটমেন্টটি "Student_details" টেবিলের সকল কলামকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details;

Result-set ন্যাভিগেশন

ডেটাবেজ সফটওয়ার সিস্টেমে Result-set ন্যাভিগেশন ব্যবহার করা হয়। এটি  প্রোগ্রামিং ফাংশন। এর গুরুত্বপূর্ণ কিছু ফাংশন হলোঃ Move-To-First-RecordGet-Record-ContentMove-To-Next-RecordGet-Record-Count ইত্যাদি।



INSERT INTO স্টেটমেন্ট


INSERT INTO স্টেটমেন্টটি ব্যবহার করে ডেটাবেজের টেবিলে নতুন তথ্য সংযোগ(insert) করা যায়।


SQL INSERT INTO স্টেটমেন্ট

INSERT INTO স্টেটমেন্টটি ব্যবহার করে ডেটাবেজের টেবিলে নতুন তথ্য সংযোগ করা যায়।

INSERT INTO সিনট্যাক্স

INSERT INTO স্টেটমেন্টটি দুইভাবে লেখা যেতে পারে।

পদ্ধতি১ঃ নিম্নের সিনট্যাক্সে শুধুমাত্র ভ্যালু নির্দিষ্ট করে দেওয়া হয়েছে। কলামের নাম নির্দিষ্ট করে দেওয়া হয় নি।

INSERT INTO name_of_table VALUES (value1,value2,value3,...);

পদ্ধতি২ঃ নিম্নের সিনট্যাক্সে কলাম নাম এবং এর ভ্যালু নির্দিষ্ট করে দেওয়া হয়েছেঃ

INSERT INTO name_of_table (name_of_column1,name_of_column2,name_of_column3,...)
VALUES (value1,value2,value3,...);

বিঃদ্রঃ টেবিলে ডেটা INSERT করার সময় যদি কলামের নাম ব্যবহার না করেন তাহলে ভ্যালু-সমূহের ক্রম কলাম অনুযায়ী ঠিক রাখতে হবে।


নমুনা ডাটাবেস

INSERT INTO স্টেটমেন্টের ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

উদাহরণস্বরূপঃ SELECT স্টেটমেন্ট ব্যবহার করে "Student_details" টেবিল থেকে নিচের অংশটুকু নেওয়া(select) হয়েছে।

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

টেবিলে নতুন তথ্য INSERT করা

নিম্নের কোড ব্যবহার করে "Student_details" টেবিলে আপনি একটি নতুন সারি(রেকর্ড) যোগ করতে পারবেন।

উদাহরণ

INSERT INTO Student_details (Roll_number, Student_name, Institute, Address)
VALUES ('১০৬','নাসির হোসেন','জাতীয় বিশ্ববিদ্যালয়','চাঁদপুর'); 

এখন "Student_details" টেবিলের তথ্যগুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৬নাসির হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

আপনি কি লক্ষ্য করেছেন যে, "আইডি নং(Id)" ফিল্ডে আমরা কোনো নম্বর ইনপুট দেইনি?
টেবিলের "আইডি নং(Id)" কলামটিতে AUTO_INCREMENT সেট করার ফলে টেবিলে নতুন রেকর্ড যোগ হলেই এর ভ্যালু স্বয়ংক্রিয়ভাবে এক বৃদ্ধি পাবে।


নির্দিষ্ট কলামে তথ্য ইনপুট করা

শুধুমাত্র নির্দিষ্ট কিছু কলামেও তথ্য ইনপুট করা সম্ভব।

নিম্নের INSERT INTO স্টেটমেন্টটি "Student_details" টেবিলে একটি নতুন রেকর্ড যুক্ত করবে। কিন্তু শুধুমাত্র "শিক্ষার্থীর নাম(Student_name)", "প্রতিষ্ঠানের নাম(Institute)" এবং "ঠিকানা(Address)" কলামে তথ্য ইনপুট নিবে এবং "Id" কলামটি স্বয়ংক্রিয়ভাবে এর ভ্যালু এক বদ্ধি করে নিজেকে আপডেট করে নিবেঃ

উদাহরণ

INSERT INTO Student_details (Student_name, Institute)
VALUES ('মোঃ ফয়সাল ইসলাম','জাতীয় বিশ্ববিদ্যালয়', 'রাজশাহী'); 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৬নাসির হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
খালি(null)মোঃ ফয়সাল ইসলামজাতীয় বিশ্ববিদ্যালয়রাজশাহী


WHERE Clause স্টেটমেন্ট

SQl WHERE Clause 

নির্দিষ্ট শর্ত সাপেক্ষে ডেটাবেজ থেকে তথ্য পুনরূদ্ধারের জন্য SQL WHERE clause ব্যবহার করা হয়। কেবল শর্ত পূরন হলেই আপনি আপনার কাংখিত ফলাফল পাবেন।

SQl WHERE সিনট্যাক্স

SELECT name_of_column, name_of_column
FROM name_of_table
WHERE name_of_column operator value;

WHERE clause শুধু তথ্য সিলেক্টের জন্য নয় , বরং তথ্য আপডেট এবং ডিলেট করার জন্যও ব্যবহার করা হয়।

বিঃদ্রঃ SQL এর WHERE clause অন্যান্য প্রোগ্রামিং ল্যাঙ্গুয়েজ এর কন্ডিশনাল(If) স্টেটমেন্টের মতই।

নমুনা ডেটাবেজ

WHERE clause এর ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।


WHERE Clause এর মাধ্যমে তথ্য সিলেক্ট করা

নিম্নের SQl WHERE স্টেটমেন্টটি "Student_details" টেবিলের "ঢাকা" ঠিকানা অন্তর্ভুক্ত সকল শিক্ষার্থীকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address="ঢাকা";

টেক্সট বনাম সংখ্যা

SQl এ টেক্সট লেখার জন্য একক উদ্ধৃতির প্রয়োজন হয়। অনেক ডেটাবেজে ডাবল উদ্ধৃতি চিহ্নের প্রয়োজনও হতে পারে।

যাইহোক, সাংখ্যার ক্ষেত্রে উদ্ধৃতি চিহ্ন(' ') ব্যবহারের প্রয়োজন হয় না।

উদাহরণ

SELECT * FROM Student_details
WHERE Id=1;

WHERE Clause অপারেটর

নিম্নের অপারেটর গুলো WHERE clause এ ব্যবহার করা হয়ঃ

অপারেটরবর্ণনা
=সমান
<>সমান না। বিঃদ্রঃ কিছু SQl ভার্সনে এই অপারেটকে != হিসেবে ব্যবহার করা হয়
>বড়
<ছোট
>=বড় অথবা সমান
<=ছোট অথবা সমান
BETWEENএকটি নির্দিষ্ট সীমার মধ্যে
LIKEসার্চ এর জন্য প্যাটার্ন
INএকটি কলামের জন্য একাধিক সম্ভাব্য মান উল্লেখ করা


AND এবং OR অপারেটর

AND অপারেটরটি তখনই তথ্য গুলো দেখাবে যখন এর প্রথম এবং দ্বিতীয় শর্তটি সত্য হবে।

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


নমুনা ডেটাবেজ

AND এবং OR অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।


AND অপারেটরের উদাহরণ

নিচের SQL AND স্টেটমেন্টি ডেটাবেজের "student_details" টেবিল থেকে প্রতিষ্ঠান "জাতীয় বিশ্ববিদ্যালয়" এবং ঠিকানা "ঢাকা" এর অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE institute="জাতীয় বিশ্ববিদ্যালয়"
AND Address="ঢাকা";

OR অপারেটরের উদাহরণ

নিচের SQL OR স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে "চাঁদপুর" অথবা "ঢাকা" ঠিকানার অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE Address="চাঁদপুর"
OR Address="ঢাকা";

AND এবং OR একত্রে ব্যবহার

আপনি AND এবং OR অপারেটর দুটিকে একত্রে ব্যবহার করতে পারেন। যদি অধিক জটিল এক্সপ্রেশন হয় সে ক্ষেত্রে প্রথম বন্ধনী ব্যবহার করতে পারেন।

নিচের SQL স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে প্রতিষ্ঠান "জাতীয় বিশ্ববিদ্যালয" এবং "চাঁদপুর" অথবা "ঢাকা" ঠিকানার অন্তর্ভুক্ত তথ্য গুলোকে সিলেক্ট করবেঃ

উদাহরণ

SELECT * FROM Student_details
WHERE institute="জাতীয় বিশ্ববিদ্যালয়"
AND (Address="চাঁদপুর" OR Address="ঢাকা");


UPDATE স্টেটমেন্ট

UPDATE স্টেটমেন্ট

ডেটাবেজের তথ্য আপডেট করার জন্য UPDATE স্টেটমেন্ট ব্যবহার করা হয়।

SQL UPDATE সিনট্যাক্স

UPDATE name_of_table
SET name_of_column1=value1, name_of_column2=value2, ...
WHERE column=value;

লক্ষ্য করলে দেখবেন যে, UPDATE স্টেটমেন্ট এর মধ্যে WHERE কন্ডিশনটি ব্যবহার করা হয়েছে!
কোন কোন তথ্যগুলো আপডেট করতে হবে নির্দিষ্ট করে দেওয়ার জন্য WHERE কন্ডিশনটি ব্যবহার করা হয়। যদি এটি ব্যবহার করা না হয় তাহলে ডেটাবেজে অবস্থিত সকল তথ্য আপডেট হয়ে যাবে!


নমুনা ডেটাবেজ

UPDATE স্টেটমেন্টের ব্যবহার দেখানোর জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

UPDATE উদাহরণ

নিচের UPDATE স্টেটমেন্টের মাধ্যমে "Student_details" টেবিলের "ফরহাদ উদ্দিন" এর "Roll_number" এবং "Address" কলামের তথ্য আপডেট করা হয়েছে।

উদাহরণ

UPDATE Student_details
SET Roll_number="১৩১", Address="চাঁদপুর"
WHERE Student_name="ফরহাদ
উদ্দিন";

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১৩১ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

Update সতর্কতা!

ডেটাবেজের তথ্য আপডেট করার সময় অবশ্যই সতর্কতা অবলম্বন করা উচিত। তথ্য আপডেট করার সময় যদি WHERE কন্ডিশনটি ব্যবহার না করেন তাহলে সমস্ত রেকর্ড আপডেট হয়ে যাবে!

উদাহরণ

UPDATE Student_details
SET Roll_number="১৩১", Address="ঢাকা";

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১৩১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১৩১ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়ঢাকা



DELETE স্টেটমেন্ট

SQL DELETE স্টেটমেন্ট

DELETE স্টেটমেন্টটি ব্যবহার করে টেবিলের সারি গুলোকে ডিলেট করা যায়।

SQL DELETE সিনট্যাক্স

DELETE FROM name_of_table
WHERE column=value; 

লক্ষ্য করলে দেখবেন যে, DELETE স্টেটমেন্ট এর মধ্যে WHERE কন্ডিশনটি ব্যবহার করা হয়েছে!
কোন কোন তথ্যগুলো আপডেট করতে হবে নির্দিষ্ট করে দেওয়ার জন্য WHERE কন্ডিশনটি ব্যবহার করা হয়। যদি এটি ব্যবহার করা না হয় তাহলে ডেটাবেজে অবস্থিত সকল তথ্য ডিলেট হয়ে যাবে!


নমুনা ডেটাবেজ

DELETE স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।

নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০১তামজীদ হাসানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়চাঁদপুর

DELETE উদাহরণ

নিচের DELETE স্টেটমেন্টের মাধ্যমে "Student_details" টেবিলের "তামজীদ হাসান" এর তথ্য delete করা হয়েছে।

উদাহরণ

DELETE FROM Student_details
WHERE Student_name="তামজীদ হাসান"; 

এখন "Student_details" টেবিলের তথ্য গুলো এমন দেখাবেঃ

আইডি নংরোল নাম্বারশিক্ষার্থীর নামপ্রতিষ্ঠানের নামঠিকানা
১০২মিনহাজুর রহমানজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৩মোঃ সবুজ হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৪ইয়াসিন হোসেনজাতীয় বিশ্ববিদ্যালয়ঢাকা
১০৫ফরহাদ উদ্দিনজাতীয় বিশ্ববিদ্যালয়ঢাকা

সকল তথ্য ডিলেট করা

একটি টেবিলকে ডিলেট না করেই এর সকল তথ্য ডিলেট করা সম্ভব। অর্থাৎ টেবিলের গঠন, এট্রিবিউট এবং ইন্ডেক্স গুলো যথাযথ অবস্থায় থেকে যাবে কিন্তু এর মধ্যে অন্তর্ভুক্ত তথ্য গুলো ডিলেট হয়ে যাবেঃ

DELETE FROM name_of_table;
অথবা
DELETE * FROM name_of_table;

বিঃদ্রঃ তথ্য ডিলেট করার সময় অবশ্যই সর্তকতা অবলম্বন করতে হবে, কারন একবার তথ্য ডিলেট হয়ে গেলে তা আর পুনরায় ফিরানো সম্ভব না!