LIKE অপারেটর
SQL LIKE
অপারেটরটি একটি কলাম থেকে নির্দিষ্ট প্যাটার্ন অনুযায়ী তথ্য অনুসন্ধান করে।
SQL LIKE সিনট্যাক্স
SELECT name_of_column's
FROM name_of_table
WHERE name_of_column LIKE pattern;
নমুনা ডেটাবেজ
LIKE
অপারেটর এর ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
SQL LIKE অপারেটরের উদাহরণ
নিম্নের SQL LIKE
স্টেটমেন্টটি "Student_details" টেবিল থেকে "শিক্ষার্থীর নাম(Student_name)" কলামে অবস্থিত প্রথম অক্ষর "ম" বিশিষ্ট সকল তথ্যকে নিয়ে আসবেঃ
উদাহরণ
SELECT * FROM Student_details
WHERE Student_name LIKE 'ম%';
নিম্নের SQL LIKE
স্টেটমেন্টটি "Student_details" টেবিল থেকে "শিক্ষার্থীর নাম(Student_name)" কলামে অবস্থিত শেষ অক্ষর "ন" বিশিষ্ট সকল তথ্যকে নিয়ে আসবেঃ
উদাহরণ
SELECT * FROM Student_details
WHERE Student_name LIKE '%ন';
নিম্নের SQL LIKE
স্টেটমেন্টটি "Student_details" টেবিল থেকে "ঠিকানা(Address)" কলামে অবস্থিত যে সকল তথ্য গুলোতে "ঢাকা" রয়েছে ঐ সকল তথ্যকে নিয়ে আসবেঃ
উদাহরণ
SELECT * FROM Student_details
WHERE Address LIKE '%ঢাকা%';
NOT কীওয়ার্ড
NOT
কিওয়ার্ড দ্বারা আপনি ঐ সকল তথ্য নিয়ে আসতে পারবেন যা প্যাটার্নের সাথে মিলে না।
নিম্নের SQL LIKE
স্টেটমেন্টটি "Student_details" টেবিল থেকে "ঠিকানা(Address)" কলামে অবস্থিত যে সকল তথ্য গুলোতে "চাঁদপুর" অবস্থিত ঐ সকল তথ্যকে নিবেনাঃ
উদাহরণ
SELECT * FROM Student_details
WHERE Address NOT LIKE '%চাঁদপুর%';
SELECT TOP স্টেটমেন্ট
SQL SELECT TOP
কমান্ডটি ব্যবহার করে ডেটাবেজ থেকে নির্দিষ্ট সংখ্যক তথ্য পাওয়া যায়। হাজার হাজার তথ্য সম্বলিত টেবিল থেকে কাংখিত তথ্য খুঁজে বের করার জন্য SELECT TOP
কমান্ডটি ব্যবহার করা হয়।
বিঃদ্রঃ সকল ডেটাবেজে SELECT TOP
কমান্ডটি সার্পোট করে না। MySQL এর পরিবর্তে LIMIT
ব্যবহার করে এবং Oracle এর পরিবর্তে ROWNUM
ব্যবহার করে।
MS Access/SQL Server সিনট্যাক্স
SELECT TOP number name_of_column's
FROM name_of_table;
SELECT TOP percent name_of_column's
FROM name_of_table;
MySQL সিনট্যাক্স
SELECT name_of_column's
FROM name_of_table
LIMIT number;
উদাহরণ
SELECT *
FROM Student_details
LIMIT 5;
Oracle সিনট্যাক্স
SELECT name_of_column's
FROM name_of_table
WHERE ROWNUM <= number;
উদাহরণ
SELECT *
FROM Student_details
WHERE ROWNUM <=5;
নমুনা ডেটাবেজ
SELECT TOP
স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
SQL SELECT TOP উদাহরণ
নিম্নের SQL SELECT TOP
স্টেটমেন্টটি "Student_details" টেবিল থেকে প্রথম দুইটি রেকর্ডকে সিলেক্ট করবেঃ
উদাহরণ
SELECT TOP 2 * FROM Student_details;
SQL SELECT TOP PERCENT উদাহরণ
নিম্নের SQL SELECT TOP
স্টেটমেন্টটি "Student_details" টেবিল থেকে প্রথম ৫০% রেকর্ডকে সিলেক্ট করবেঃ
উদাহরণ
SELECT TOP 50 PERCENT * FROM Student_details;
ORDER BY কিওয়ার্ড
ORDER BY
কিওয়ার্ডটি ব্যবহার করে প্রাপ্ত ফলাফল-সেট কে এক বা একাধিক কলামের উপর ভিত্তিকরে সাজানো যায়। ORDER BY
কিওয়ার্ডটি তথ্য-সমূহকে ডিফল্টরূপে ঊর্ধ্বক্রমে(ASC
) সাজায়। কিন্তু আপনি যদি অধঃক্রমে সাজাতে চান তাহলে DESC
কিওয়ার্ডটি ব্যবহার করতে হবে।
ORDER BY সিনট্যাক্স
SELECT name_of_column, name_of_column
FROM name_of_table
ORDER BY name_of_column ASC;
SELECT name_of_column, name_of_column
FROM name_of_table
ORDER BY name_of_column DESC;
নমুনা ডেটাবেজ
ORDER BY
কীওয়ার্ডের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
ORDER BY উদাহরণ
নিচের SQL ORDER BY
স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে সকল তথ্য সিলেক্ট করে "ঠিকানা(Address)" কলাম অনুসারে ঊর্ধ্বক্রমে অর্থাৎ Ascending অর্ডারে সাজাবেঃ
উদাহরণ
SELECT * FROM Student_details
ORDER BY Address;
ORDER BY DESC উদাহরণ
নিচের SQL ORDER BY
স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে সকল তথ্য সিলেক্ট করে "ঠিকানা(Address)" কলাম অনুসারে অধঃক্রমে অর্থাৎ Descending অর্ডারে সাজাবেঃ
উদাহরণ
SELECT * FROM Student_details
ORDER BY Address DESC;
ORDER BY একাধিক কলামের উদাহরণ
নিচের SQL ORDER BY
স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে সকল তথ্য সিলেক্ট করে "ঠিকানা(Address)" এবং "শিক্ষার্থীর নাম(Student_name)" কলাম অনুসারে ঊর্ধ্বক্রমে অর্থাৎ Ascending অর্ডারে সাজাবেঃ
উদাহরণ
SELECT * FROM Student_details
ORDER BY Address, Student_name;
ORDER BY একাধিক কলামের জটিল উদাহরণ
নিচের SQL ORDER BY
স্টেটমেন্টি ডেটাবেজের "Student_details" টেবিল থেকে সকল তথ্য সিলেক্ট করে "ঠিকানা(Address)" কলামকে ঊর্ধ্বক্রমে অর্থাৎ Ascending অর্ডারে এবং "শিক্ষার্থীর নাম(Student_name)" কলামকে অধঃক্রমে অর্থাৎ Descending অর্ডারে সাজাবেঃ
উদাহরণ
SELECT * FROM Student_details
ORDER BY Address ASC, Student_name DESC;
GROUP BY স্টেটমেন্ট
GROUP BY
স্টেটমেন্ট এর মাধ্যমে এক বা একাধিক কলামের রেজাল্ট-সেট কে একত্রিত(group) করা যায়।
SQL GROUP BY সিনট্যাক্স
SELECT aggregate_function(name_of_column), name_of_column
FROM name_of_table
GROUP BY name_of_column's;
উদাহরণ
SELECT COUNT(id), Address
FROM Student_details
GROUP BY Address;
নমুনা ডেটাবেজ
GROUP BY
স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
নিচের অংশটি "Student_result" টেবিল থেকে নেওয়াঃ
আইডি নং | রোল নাম্বার | ফলাফল |
---|---|---|
১ | ১০১ | A+ |
২ | ১০২ | A+ |
৩ | ১০৩ | A+ |
৪ | ১০৪ | A+ |
৫ | ১০৫ | A+ |
SQL GROUP BY স্টেটমেন্টের উদাহরণ
এখন আমরা প্রতিটি শিক্ষার্থীর ফলাফল খুঁজে বের করবো।
নিম্নলিখিত SQL স্টেটমেন্ট দ্বারা আমরা GROUP BY
এর ব্যবহার দেখবোঃ
উদাহরণ
SELECT student_details.student_name,student_result.result AS
Result FROM student_result LEFT JOIN student_details
ON student_result.roll_number = student_details.roll_number
GROUP BY student_name;
কিছু গুরুত্বপূর্ণ Aggregate ফাংশন
MIN
- একটি প্রদত্ত কলামের সর্বোনিম্ন মান রিটার্ন করে।MAX
- একটি প্রদত্ত কলামের সর্বোচ্চ মান রিটার্ন করে।SUM
- একটি প্রদত্ত কলামে সংখ্যামান-সমূহের যোগফল রিটার্ন করে।AVG
- একটি প্রদত্ত কলামের গড় মান রিটার্ন করে।COUNT
- প্রদত্ত কলামের মান-সমূহের মোট সংখ্যা রিটার্ন করে।COUNT(*)
- একটি টেবিলে মোট সারির সংখ্যা রিটার্ন করে।
SELECT DISTINCT স্টেটমেন্ট
ডেটাবেজর টেবিলে একই তথ্য একাধিকবার থাকতে পারে, এই ডুপ্লিকেট তথ্য গুলোকে একক ভাবে পেতে আপনি SELECT DISTINCT
স্টেটমেন্টটি ব্যবহার করতে পারেন। SELECT DISTINCT
স্টেটমেন্টটি দ্বারা আপনার ডেটাবেজের অন্তর্ভুক্ত ডুপ্লিকেট তথ্য বাদ দিয়ে স্বতন্ত্রভাবে তালিকাবদ্ধ করতে পারবেন।
DISTINCT
কিওয়ার্ডটি ব্যবহার করে আপনি শুধুমাত্র স্বতন্ত্র মানগুলো পেতে পারেন।
SQL SELECT DISTINCT স্টেটমেন্ট গঠন
SELECT DISTINCT name_of_column's
FROM name_of_table;
নমুনা ডেটাবেজ
SELECT DISTINCT
স্টেটমেন্টের ব্যবহার দেখার জন্য আমরা আমাদের নমুনা ডেটাবেজ Student ব্যবহার করবো।
নিচের অংশটি "Student_details" টেবিল থেকে নেওয়া হয়েছেঃ
আইডি নং | রোল নাম্বার | শিক্ষার্থীর নাম | প্রতিষ্ঠানের নাম | ঠিকানা |
---|---|---|---|---|
১ | ১০১ | তামজীদ হাসান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
২ | ১০২ | মিনহাজুর রহমান | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৩ | ১০৩ | মোঃ সবুজ হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৪ | ১০৪ | ইয়াসিন হোসেন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
৫ | ১০৫ | ফরহাদ উদ্দিন | জাতীয় বিশ্ববিদ্যালয় | চাঁদপুর |
SELECT DISTINCT উদাহরণ
নিম্নের SQL DISTINCT
স্টেটমেন্টটি "Student_details" টেবিলের "ঠিকানা(Address)" কলামকে সিলেক্ট করবেঃ
উদাহরণ
SELECT DISTINCT Address FROM Student_details;
SELECT INTO স্টেটমেন্ট
SQL SELECT INTO
স্টেটমেন্টটি একটি টেবিলের তথ্য কপি করে নতুন একটি টেবিলে রাখে।
SQL SELECT INTO সিনট্যাক্স
আপনি নিম্নের সিনট্যাক্সের মাধ্যমে একটি টেবিলের সকল কলামকে কপি করে একটি নতুন টেবিলের মধ্যে রাখতে পারবেনঃ
SELECT *
INTO new_table IN external_database
FROM name_of_table;
অথবা আপনার ইচ্ছামত কলামকে কপি করে নতুন টেবিলে রাখতে পারেনঃ
SELECT name_of_column's
INTO new_table IN external_database
FROM name_of_table;
নতুন টেবিলটির কলামের নাম এবং টাইপ SELECT
স্টেটমেন্টে ডিফাইন করা থাকে। আপনি ইচ্ছা করলে AS clause
ব্যবহার করে তা পরিবর্তন করতে পারেন।
SQL SELECT INTO উদাহরণ
চলুন "Student_details" টেবিলের একটি ব্যাকআপ কপি তৈরী করিঃ
SELECT name_of_column's
INTO Student_details_Backup
FROM Student_details;
IN clause
ব্যবহার করে টেবিলের তথ্য গুলো অন্য একটি ডেটাবেজে কপি করিঃ
SELECT name_of_column's
INTO Student_details_Backup IN 'Backup_database.mdb'
FROM Student_details;
কিছু সংখ্যক কলাম একটি নতুন টেবিলে কপি করিঃ
SELECT Student_name, Address
INTO Student_details_Backup
FROM Student_details;
"Student_details" টেবিলের "ঢাকা" ঠিকানার অন্তর্ভুক্ত সকল তথ্য নতুন একটি টেবিলে কপি করিঃ
SELECT *
INTO Student_details_Backup
FROM Student_details
WHERE Address="ঢাকা";
একাধিক টেবিলের তথ্য একটি নতুন টেবিলে কপি করিঃ
SELECT Student_details.Student_name, Student_result.result
INTO Student_details_Backup
FROM Student_details
LEFT JOIN Student_result
ON Student_details.Roll_number = Student_result.Roll_number;
অন্য একটি টেবিলের মডেল(schema) ব্যবহার করেও SELECT INTO
স্টেটমেন্ট একটি নতুন ও খালি টেবিল তৈরী করতে পারে। এক্ষেত্রে কুয়েরি করার সময় শুধুমাত্র একটি WHERE clause
যোগ করলে কোন ডেটা রিটার্ন করবে নাঃ
SELECT *
INTO new_table
FROM name_of_table
WHERE 1=0;