এসকিউএল টেবিলের ভিতরে, কলামে সাধারণত ডুপ্লিকেট মান থাকে। আমাদের মাঝে মাঝে আমাদের টেবিলের একটি কলামে উপস্থিত শুধুমাত্র স্বতন্ত্র বা ভিন্ন মানগুলি পেতে হতে পারে কারণ ডুপ্লিকেট মানগুলি আমাদের জন্য অনুসন্ধানের ফলাফলগুলি বিশ্লেষণ করা কঠিন করে তোলে৷
উদাহরণ:
ধরুন, আমাদের গ্রাহক নামে একটি টেবিল রয়েছে যা আমাদের গ্রাহকদের, তাদের নাম, বয়স এবং দেশ ইত্যাদি সম্পর্কে বিশদ বিবরণ দেয়। আমাদের জানতে হবে আমাদের গ্রাহকরা কোন দেশের সাথে সম্পর্কিত। আমাদের ভারত থেকে 10 জন, আমেরিকা থেকে 15 জন গ্রাহক থাকতে পারে। যদি আমরা কেবল দেশের কলামটি নির্বাচন করি, তাহলে এটি আমাদেরকে প্রচুর ডুপ্লিকেট মান সহ পুরো কলামটি ফিরিয়ে দেবে। এটি আমাদের উদ্দেশ্য পূরণ করবে না কারণ ফলাফল বিশ্লেষণ করা আমাদের পক্ষে কঠিন হবে। আমরা শুধু আলাদা দেশগুলো জানতে চাই।
এই পরিস্থিতিতে, MySQL-এর "SELECT DISTINCT" স্টেটমেন্ট ব্যবহার করা হয়।
সিনট্যাক্স
SELECT DISTINT column_name FROM table_name
পাইথনে MySQL ব্যবহার করে ডাটাবেসের একটি টেবিল থেকে আলাদা মান নির্বাচন করার প্রধান ধাপগুলি
-
MySQL সংযোগকারী আমদানি করুন
-
connect()
ব্যবহার করে সংযোগকারীর সাথে সংযোগ স্থাপন করুন -
কার্সার() পদ্ধতি
ব্যবহার করে কার্সার অবজেক্ট তৈরি করুন -
উপযুক্ত mysql বিবৃতি ব্যবহার করে একটি প্রশ্ন তৈরি করুন
-
execute() পদ্ধতি
ব্যবহার করে এসকিউএল কোয়েরি চালান -
সংযোগ বন্ধ করুন
ধরুন, আমাদের "গ্রাহক" নামে নিচের টেবিলটি আছে।
+----------+---------+ | name | country | +----------+---------+ | John | America | | Peter | England | | Karan | India | | Rohit | India | | Rohan | America | | Arsh | France | | Aryan | England | +----------+---------+
উদাহরণ
আমাদের এই টেবিল থেকে স্বতন্ত্র দেশের নাম নির্বাচন করতে হবে।
import mysql.connector db=mysql.connector.connect(host="your host", user="your username", password="your password",database="database_name") cursor=db.cursor() query="SELECT DISTINCT country FROM Customers " cursor.execute(query) for names in cursor: print(names) db.close()
উপরের কোডটি স্বতন্ত্র দেশের নাম প্রদান করে।
আউটপুট
America England India France