JSON (JavaScript Object Notation) একটি জনপ্রিয় ডেটা ফরম্যাট যা মানুষের জন্য পড়তে সহজ এবং কম্পিউটার দ্বারা প্রক্রিয়াজাত করা সহজ। এটি সাধারণত ডেটা এক্সচেঞ্জের জন্য ব্যবহৃত হয় এবং অনেক আধুনিক অ্যাপ্লিকেশন এবং ডেটাবেস সিস্টেমে এটি ব্যবহৃত হয়। MariaDB 10.2 এবং তার পরবর্তী সংস্করণগুলিতে JSON ডেটা টাইপের সম্পূর্ণ সমর্থন রয়েছে, যা আপনাকে JSON ফরম্যাটে ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণ করতে সক্ষম করে।
১. MariaDB-তে JSON ডেটা টাইপ ব্যবহার করা
MariaDB-তে JSON ডেটা টাইপের সাহায্যে আপনি JSON ডেটা স্টোর করতে এবং সেই ডেটার সাথে সম্পর্কিত বিভিন্ন কাজ করতে পারবেন। MariaDB JSON ডেটা টাইপকে একটি TEXT টাইপ হিসেবে অভ্যন্তরীণভাবে সংরক্ষণ করে, তবে এতে কিছু অতিরিক্ত বৈশিষ্ট্য থাকে যা JSON ডেটা প্রক্রিয়াকরণে সহায়তা করে।
১.১. JSON ডেটা টাইপ সহ টেবিল তৈরি করা
JSON ডেটা টাইপ ব্যবহারের জন্য আপনাকে একটি টেবিল তৈরি করতে হবে যেখানে JSON কলাম থাকবে।
CREATE TABLE employees (
employee_id INT PRIMARY KEY,
name VARCHAR(100),
details JSON
);
এখানে, details কলামে JSON ডেটা স্টোর করা হবে, যেমন, একটি কর্মচারীর ঠিকানা, ফোন নম্বর, বা অন্যান্য অতিরিক্ত তথ্য।
১.২. JSON ডেটা ইনসার্ট করা
আপনি JSON ডেটা কলামে ডেটা ইনসার্ট করার জন্য INSERT স্টেটমেন্ট ব্যবহার করতে পারেন। JSON ডেটা ইনসার্ট করার সময়, এটি অবশ্যই একটি সঠিক JSON ফরম্যাটে থাকতে হবে।
INSERT INTO employees (employee_id, name, details)
VALUES (1, 'John Doe', '{"address": "123 Main St", "phone": "123-456-7890"}');
এখানে, details কলামে JSON ফরম্যাটে কর্মচারীর ঠিকানা এবং ফোন নম্বর সংরক্ষিত হচ্ছে।
২. MariaDB-তে JSON ডেটা রিট্রিভাল
MariaDB JSON ফাংশন ব্যবহার করে আপনি JSON ডেটার নির্দিষ্ট অংশ বের করতে পারেন। JSON ডেটা থেকে তথ্য বের করার জন্য JSON_EXTRACT বা -> অপারেটর ব্যবহার করা হয়।
২.১. JSON ডেটা থেকে নির্দিষ্ট মান বের করা
SELECT employee_id, name, JSON_EXTRACT(details, '$.address') AS address
FROM employees;
এখানে, $.address JSON পাথ ব্যবহার করে details কলাম থেকে address মান বের করা হচ্ছে।
অথবা আপনি আরও সহজভাবে -> অপারেটর ব্যবহার করতে পারেন:
SELECT employee_id, name, details->'$.address' AS address
FROM employees;
এই কোয়েরি দুটি একই কাজ করবে, যেখানে JSON ডেটা থেকে address মান বের করা হবে।
৩. MariaDB-তে JSON ডেটা আপডেট করা
MariaDB-তে JSON ডেটা আপডেট করতে JSON_SET ফাংশন ব্যবহার করা হয়, যার মাধ্যমে JSON ডেটার একটি নির্দিষ্ট কন্টেন্ট আপডেট করা যায়।
UPDATE employees
SET details = JSON_SET(details, '$.address', '456 Oak St')
WHERE employee_id = 1;
এখানে, details কলামে address ক্ষেত্রের মান '456 Oak St' দিয়ে আপডেট করা হচ্ছে।
৩.১. JSON ডেটাতে নতুন কন্টেন্ট যোগ করা
আপনি JSON_INSERT ফাংশন ব্যবহার করে JSON ডেটাতে নতুন কন্টেন্ট যোগ করতে পারেন।
UPDATE employees
SET details = JSON_INSERT(details, '$.email', '[email protected]')
WHERE employee_id = 1;
এটি details কলামে email ক্ষেত্র যোগ করবে এবং এর মান হবে '[email protected]'।
৪. MariaDB-তে JSON ডেটা মুছে ফেলা
JSON ডেটা থেকে একটি নির্দিষ্ট ফিল্ড মুছে ফেলতে JSON_REMOVE ফাংশন ব্যবহার করা হয়।
UPDATE employees
SET details = JSON_REMOVE(details, '$.phone')
WHERE employee_id = 1;
এখানে, phone ফিল্ডটি details থেকে মুছে ফেলা হচ্ছে।
৫. MariaDB-তে JSON ডেটার উপর বিভিন্ন ফাংশন
MariaDB-তে JSON ডেটার উপর অনেক ধরনের ফাংশন রয়েছে, যেগুলি ডেটা প্রক্রিয়াকরণের ক্ষেত্রে সহায়তা করে:
৫.১. JSON_ARR_APPEND
এই ফাংশনটি JSON অ্যারেতে নতুন উপাদান যুক্ত করতে ব্যবহৃত হয়।
UPDATE employees
SET details = JSON_ARRAY_APPEND(details, '$.projects', 'Project A')
WHERE employee_id = 1;
এটি projects অ্যারেতে 'Project A' উপাদান যুক্ত করবে।
৫.২. JSON_CONTAINS
এই ফাংশনটি চেক করে যে JSON ডেটা একটি নির্দিষ্ট মান ধারণ করছে কি না।
SELECT employee_id, name
FROM employees
WHERE JSON_CONTAINS(details, '"Project A"', '$.projects');
এটি চেক করবে যে projects অ্যারেতে 'Project A' উপস্থিত রয়েছে কি না।
৫.৩. JSON_ARRAY
JSON অ্যারে তৈরি করতে JSON_ARRAY ফাংশন ব্যবহার করা হয়।
SELECT JSON_ARRAY('value1', 'value2', 'value3') AS new_array;
এটি একটি JSON অ্যারে তৈরি করবে যার উপাদানগুলো হবে 'value1', 'value2', এবং 'value3'।
৬. MariaDB-তে JSON ডেটার ফিল্টারিং এবং অনুসন্ধান
MariaDB-তে JSON ডেটার মধ্যে ফিল্টারিং বা অনুসন্ধান করার জন্য সাধারণ SQL কোয়েরির মতোই JSON কলাম ব্যবহার করা যায়, তবে JSON_EXTRACT বা -> অপারেটর ব্যবহার করতে হয়।
৬.১. JSON ডেটা অনুসন্ধান
SELECT employee_id, name
FROM employees
WHERE details->'$.address' = '456 Oak St';
এটি JSON কলামের address ফিল্ডে '456 Oak St' এর সাথে মিলে এমন সব কর্মচারীর তথ্য দেখাবে।
৬.২. JSON ডেটা সর্তিক অনুসন্ধান
MariaDB-তে আপনি JSON ডেটাতে সর্তিক অনুসন্ধান করতে পারেন, যেমন বিভিন্ন কলাম বা ফিল্ডের মধ্যে সঠিক মান মেলানো:
SELECT employee_id, name
FROM employees
WHERE JSON_UNQUOTE(details->'$.phone') = '123-456-7890';
এখানে JSON_UNQUOTE ফাংশন ব্যবহার করা হয়েছে JSON ডেটার মানকে স্ট্রিং হিসেবে রিটার্ন করার জন্য।
সারাংশ
MariaDB-তে JSON ফরম্যাটে ডেটা সংরক্ষণ এবং প্রক্রিয়াকরণ খুবই সহজ এবং কার্যকরী। JSON ডেটা টাইপ ব্যবহারের মাধ্যমে আপনি জটিল এবং নেস্টেড ডেটা সহজে সংরক্ষণ, আপডেট এবং অনুসন্ধান করতে পারবেন। JSON_EXTRACT, JSON_SET, JSON_REMOVE এবং অন্যান্য JSON ফাংশন ব্যবহার করে MariaDB-তে JSON ডেটা প্রসেসিং অত্যন্ত নমনীয় ও সুবিধাজনক। এটি ডেটাবেস ডিজাইনকে আরও ফ্লেক্সিবল এবং পারফরম্যান্স-বান্ধব করে তোলে, বিশেষত যখন ডেটার গঠন খুবই ডাইনামিক বা পরিবর্তনশীল হয়।
Read more