Q ভাষায় ডেটা ম্যানিপুলেশন করার জন্য Lists, Dictionaries, এবং Tables প্রধান ডেটা স্ট্রাকচার হিসেবে ব্যবহৃত হয়। এগুলোর প্রতিটিরই বিশেষ ভূমিকা রয়েছে এবং বিভিন্ন পরিস্থিতিতে এগুলো আলাদা আলাদা সুবিধা প্রদান করে।
১. Lists (তালিকা)
Lists হল এক বা একাধিক ডেটা উপাদান ধারণ করার জন্য ব্যবহৃত ডেটা স্ট্রাকচার। Q ভাষায় lists একটি গুরুত্বপূর্ণ ভূমিকা পালন করে কারণ এটি বিভিন্ন ডেটা টাইপ ধারণ করতে পারে, যেমন সংখ্যা, স্ট্রিং, ডেটা, এবং অন্যান্য।
তালিকা তৈরির উদাহরণ:
list1: 1 2 3 4 5 / একটি ইন্টিজার তালিকা
list2: "apple" "banana" "cherry" / একটি স্ট্রিং তালিকা
list3: 1.5 2.5 3.5 / একটি ফ্লোট তালিকাতালিকার উপাদান অ্যাক্সেস:
list1[2] / আউটপুট: 2, 2য় উপাদান
list2[1] / আউটপুট: "banana", 1য় উপাদানতালিকায় উপাদান যোগ করা:
list1: list1, 6 / তালিকায় 6 যোগ করাতালিকায় উপাদান মুছে ফেলা:
list1: list1 except 2 / তালিকা থেকে 2 নম্বর ইনডেক্সের উপাদান মুছে ফেলাতালিকার দৈর্ঘ্য:
count list1 / আউটপুট: 6, তালিকার মোট উপাদান সংখ্যা২. Dictionaries (ডিকশনারি)
Dictionaries হল এমন একটি ডেটা স্ট্রাকচার, যেখানে একটি কী এবং ভ্যালু পেয়ার থাকে। এটি খুবই উপকারী যখন আপনি কোনও তথ্যের সাথে সম্পর্কিত মান খুঁজে বের করতে চান।
ডিকশনারি তৈরি:
dict1: `name`age! ("John" 25) / কী-ভ্যালু পেয়ার: name -> John, age -> 25ডিকশনারির মান অ্যাক্সেস:
dict1[`name] / আউটপুট: "John", name এর মান
dict1[`age] / আউটপুট: 25, age এর মানডিকশনারিতে নতুন কী-ভ্যালু পেয়ার যোগ করা:
dict1: dict1, `city! "New York" / ডিকশনারিতে city কী যোগ করাডিকশনারি থেকে মান মুছে ফেলা:
dict1: dict1 except `age / age কী মুছে ফেলাডিকশনারির সব কী:
keys dict1 / আউটপুট: `name `cityডিকশনারির সব মান:
dict1 each keys dict1 / আউটপুট: ("John" "New York")৩. Tables (টেবিল)
Tables হল Q ভাষায় ডেটা সংগঠনের অন্যতম প্রধান ডেটা স্ট্রাকচার। এটি একটি রিলেশনাল ডেটাবেস টেবিলের মতো কাজ করে যেখানে বিভিন্ন কলাম থাকে এবং প্রতিটি কলামের মধ্যে ডেটা থাকে। Q তে টেবিল ব্যবহার করা হয় ডেটার সঞ্চয় এবং বিভিন্ন ডেটার ওপর কুইরি বা বিশ্লেষণ করার জন্য।
টেবিল তৈরি:
table1: (`id`name!((1 2 3); "Alice" "Bob" "Charlie"))এখানে id এবং name হল কলাম, এবং তাদের মানগুলো যথাক্রমে (1 2 3) এবং ("Alice" "Bob" "Charlie")।
টেবিলের ডেটা সিলেক্ট করা:
select from table1 where id = 2 / আউটপুট: id name
/ 2 Bobটেবিলের সব ডেটা দেখানো:
table1 / আউটপুট: id name
/ 1 Alice
/ 2 Bob
/ 3 Charlieটেবিলের নতুন কলাম যোগ করা:
table1: table1, `age! (25 30 35) / age কলাম যোগ করাটেবিলের ডেটা আপডেট করা:
update name: "David" from table1 where id = 1 / id = 1 এর নাম David করতে হবেটেবিল থেকে ডেটা ডিলিট করা:
delete from table1 where id = 3 / id = 3 এর রেকর্ড ডিলিট করাগ্রুপিং এবং অ্যাগ্রিগেশন:
select avg age by name from table1 / নাম অনুসারে বয়সের গড় বের করাএকাধিক টেবিল একত্রিত করা:
table2: (`id`name!((4 5); "David" "Eve"))
table1: table1 lj `id xkey table2 / টেবিল দুটি যুক্ত করাসারসংক্ষেপ
- Lists: একাধিক উপাদান ধারণ করার জন্য ব্যবহৃত হয়, যেগুলোর মধ্যে সংখ্যা, স্ট্রিং, ডেটা বা অন্য ডেটা টাইপ থাকতে পারে।
- Dictionaries: কী-ভ্যালু পেয়ার ধারণ করে এবং এর মাধ্যমে দ্রুত ডেটা অ্যাক্সেস করা সম্ভব।
- Tables: সেগুলি রিলেশনাল ডেটাবেসের মতো কলাম ভিত্তিক ডেটা স্ট্রাকচার যা ডেটার বিশ্লেষণ ও কুইরি করার জন্য ব্যবহৃত হয়।
এই তিনটি ডেটা স্ট্রাকচার Q ভাষায় ডেটা ম্যানিপুলেশন, বিশ্লেষণ এবং ডেটা প্রক্রিয়াকরণে খুবই গুরুত্বপূর্ণ ভূমিকা পালন করে এবং এগুলি ব্যবহার করে দ্রুত এবং কার্যকর কোড লেখা সম্ভব।
Read more