এক টেবিল থেকে নির্দিষ্ট ডেটা বা সারি সিলেক্ট করা সাধারণ। সারিগুলো টেবিলে যেস যে ক্রমে থাকে সেসে ক্রমে ফেরত দেওয়া হয়। কখনো কখনো আমাদের প্রয়োজন হয় যে সিলেক্ট করা সারিগুলো কোনো কলামের সাথে সম্বন্ধে অ্যাসেন্ডিং বা ডিসেন্ডিং অর্ডারে ফেরত দেওয়া হয়।
ORDER BY স্টেটমেন্ট ফলাফলকে কোনো কলামের সাথে সম্বন্ধে অর্ডার করতে ব্যবহৃত হয়। নিচের উদাহরণ আরও স্পষ্ট করবে।
মান লইয়া যাক, একটি টেবিল আছে যেতে name ফিল্ড সহ বিভিন্ন ফিল্ড রয়েছে। আমরা টেবিল থেকে সব সারি সিলেক্ট করতে চাই কিন্তু সারিগুলো নামের অ্যালফাবেটিক্যাল অর্ডারে অর্ডার্ড থাকতে চাই। এখানেই ORDER BY স্টেটমেন্ট কাজে লাগে। এই পরিস্থিতিতে আমাদের name ফিল্ডের অ্যাসেন্ডিং অর্ডারে ফলাফল অর্ডার করতে হবে।
ORDER BY স্টেটমেন্ট, ডিফল্টভাবে নির্দিষ্ট কলামকে অ্যাসেন্ডিং অর্ডারে অর্ডার করে। যদি আপনি ফলাফল ডিসেন্ডিং অর্ডারে চান, তবে সেটি স্পষ্টভাবে নির্দিষ্ট করতে হবে। ডিসেন্ডিং অর্ডারে অর্ডার করতে DESC কীওয়ার্ড নির্দিষ্ট করতে হবে।
সিন্ট্যাক্স
অ্যাসেন্ডিং অর্ডার
SELECT * FROM table_name ORDER BY column_name
ডিসেন্ডিং অর্ডার
SELECT * FROM table_name ORDER BY column_name DESC
পাইথনে MySQL ব্যবহার করে টেবিল থেকে রিট্রিভ করা ডেটা অর্ডার করার ধাপগুলো
MySQL কানেক্টর ইম্পোর্ট করুন
connect()ব্যবহার করে কানেকশন প্রতিষ্ঠা করুনcursor()মেথড ব্যবহার করে কার্সর অবজেক্ট তৈরি করুনউপযুক্ত MySQL স্টেটমেন্ট ব্যবহার করে ক্যোয়ারি তৈরি করুন
execute()মেথড ব্যবহার করে SQL ক্যোয়ারি এক্সিকিউট করুনকানেকশন বন্ধ করুন
মান লইয়া যাক আমাদের Student নামে একটি টেবিল আছে নিচের মতো:
+----------+---------+-----------+------------+ | Name | Class | City | Marks | +----------+---------+-----------+------------+ | Karan | 4 | Amritsar | 95 | | Sahil | 6 | Amritsar | 93 | | Kriti | 3 | Batala | 88 | | Khushi | 9 | Delhi | 90 | | Kirat | 5 | Delhi | 85 | +----------+---------+-----------+------------+
উদাহরণ
আমরা টেবিল থেকে সব সারি সিলেক্ট করতে চাই কিন্তু তাদের নামের অ্যালফাবেটিক্যাল অর্ডারে। সংক্ষেপে, আমরা নামের অ্যাসেন্ডিং অর্ডারে ফলাফল অর্ডার করতে চাই।
import mysql.connector db=mysql.connector.connect(host="your host", user="your username", password="your password", database="database_name") cursor=db.cursor() query="SELECT * FROM Students ORDER BY Name" cursor.execute(query) for row in cursor: print(row)
উপরের কোড সফলভাবে এক্সিকিউট হলে স্ট্রিডেন্টদের নামের অ্যাসেন্ডিং বা অ্যালফাবেটিক্যাল অর্ডারে সারিগুলো ফেরত দেবে।
আউটপুট
('Amit', 9, 'Delhi', 90) ('Karan', 4, 'Amritsar', 95) ('Kriti', 3, 'Batala', 88) ('Priya', 5, 'Delhi', 85) ('Sahil', 6, 'Amritsar', 93)
প্রদর্শিত সব সারি নামের অ্যালফাবেটিক্যাল অর্ডারে। একই সিন্ট্যাক্স অনুসরণ করে সারিগুলো মার্কসের অ্যাসেন্ডিং বা ডিসেন্ডিং অর্ডারেও সাজানো যেতে পারে।