এসকিউএল , বা স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ হল একটি প্রমিত প্রোগ্রামিং ভাষা যা রিলেশনাল ডাটাবেসগুলি পরিচালনা করতে এবং সেগুলির ডেটাতে বিভিন্ন ক্রিয়াকলাপ সম্পাদন করতে ব্যবহৃত হয়। SQL অবিশ্বাস্যভাবে বহুমুখী, ডাটাবেস অ্যাডমিনিস্ট্রেটর, ডেটা বিশ্লেষক এবং ডেভেলপাররা ডাটাবেসের মধ্যে ডেটা অনুসন্ধান, সন্নিবেশ, আপডেট এবং মুছে ফেলতে ব্যবহার করে।
এসকিউএল এর কেন্দ্রস্থলে একটি ডাটাবেসের ধারণা। একটি ডাটাবেসকে এমনভাবে সংগঠিত সম্পর্কিত ডেটার সংগ্রহ হিসাবে ভাবা যেতে পারে যা ডেটা পরিচালনা এবং পুনরুদ্ধারের সুবিধা দেয়। ডেটাবেসগুলিকে প্রাথমিকভাবে দুটি প্রকারে শ্রেণীবদ্ধ করা হয়: রিলেশনাল ডেটাবেস এবং অ-রিলেশনাল ডেটাবেস । SQL প্রাথমিকভাবে রিলেশনাল ডাটাবেসের সাথে ব্যবহার করা হয় যেখানে ডেটা টেবিলে সংরক্ষণ করা হয় যা সম্পর্কের মাধ্যমে একে অপরের সাথে সংযুক্ত থাকে।
রিলেশনাল ডাটাবেসের সাথে কাজ করার জন্য প্রয়োজনীয় বেশ কয়েকটি মূল এসকিউএল কমান্ড রয়েছে:
একটি ডাটাবেসে সঞ্চালিত সবচেয়ে ঘন ঘন অপারেশনগুলির মধ্যে একটি হল SELECT স্টেটমেন্ট ব্যবহার করে ডেটা অনুসন্ধান করা। SELECT স্টেটমেন্টের সহজতম ফর্মটি নিম্নরূপ:
টেবিলের নাম থেকে কলাম 1, কলাম 2 নির্বাচন করুন;
এই কমান্ডটি নির্দিষ্ট টেবিল থেকে নির্দিষ্ট কলাম ফিরিয়ে দেবে। একটি টেবিল থেকে সমস্ত কলাম নির্বাচন করতে, তারকাচিহ্ন (*) চিহ্ন ব্যবহার করা হয়:
টেবিলের নাম থেকে * নির্বাচন করুন;
একটি SELECT বিবৃতি দ্বারা প্রত্যাবর্তিত ফলাফলগুলিকে সংকুচিত করতে, WHERE ক্লজটি ব্যবহার করা যেতে পারে। এই ধারাটি এমন শর্তগুলি নির্দিষ্ট করে যা নির্বাচন করার জন্য ডেটা অবশ্যই পূরণ করতে হবে। উদাহরণ স্বরূপ:
কর্মচারীদের থেকে নির্বাচন করুন যেখানে বিভাগ = 'বিক্রয়';
এই কমান্ডটি কর্মচারী টেবিলের সমস্ত সারি ফিরিয়ে দেবে যেখানে বিভাগ কলামের মান 'বিক্রয়'।
রিলেশনাল ডাটাবেসে, ডেটা প্রায়ই একাধিক টেবিল জুড়ে বিতরণ করা হয়। দুই বা ততোধিক টেবিল থেকে সারি একত্রিত করার প্রক্রিয়াটি তাদের মধ্যে সম্পর্কিত কলামের উপর ভিত্তি করে যোগদান হিসাবে পরিচিত। সবচেয়ে সাধারণ যোগদান অপারেশন হল INNER JOIN , যা উভয় টেবিলে কমপক্ষে একটি মিল থাকলে সারি প্রদান করে।
উদাহরণ:
কর্মীদের.department_id = Departments.id;
এই কমান্ডটি যথাক্রমে মিলিত Department_id এবং id কলামের উপর ভিত্তি করে কর্মচারী এবং বিভাগ টেবিলের সাথে যোগ দেয় এবং উভয় টেবিল থেকে নাম কলাম নির্বাচন করে।
SQL সমষ্টিগত ডেটাতে নির্দিষ্ট কলামে একই মান রয়েছে এমন সারিগুলিকে গ্রুপ করার অনুমতি দেয়, উদাহরণস্বরূপ, প্রতিটি বিভাগে কর্মচারীর সংখ্যা গণনা করা। GROUP BY স্টেটমেন্ট ব্যবহার করে এটি অর্জন করা হয়। একটি উদাহরণ ক্যোয়ারী এই মত দেখতে পারে:
বিভাগ নির্বাচন করুন, COUNT(*) হিসাবে কর্মচারীদের_সংখ্যা_অফ_কর্মচারি বিভাগ দ্বারা গ্রুপ;
এই কমান্ডটি বিভাগের কলাম দ্বারা কর্মচারী টেবিলের সারিগুলিকে গোষ্ঠীবদ্ধ করে এবং প্রতিটি বিভাগে কর্মচারীর সংখ্যা গণনা করে।
এসকিউএল বেশ কয়েকটি সমষ্টিগত ফাংশন অফার করে যা মানগুলির একটি সেটে কাজ করে এবং একটি একক মান প্রদান করে। সাধারণভাবে ব্যবহৃত সামগ্রিক ফাংশন অন্তর্ভুক্ত:
উদাহরণস্বরূপ, কর্মচারীদের টেবিলে সর্বোচ্চ বেতন খুঁজে পেতে, কেউ নিম্নলিখিত প্রশ্নটি ব্যবহার করতে পারে:
কর্মচারীদের থেকে সর্বোচ্চ (বেতন) নির্বাচন করুন;
এসকিউএল-এ একটি লেনদেন হল এক বা একাধিক SQL কমান্ডের একটি ক্রম যা একটি একক হিসাবে কার্যকর করা হয়। লেনদেনগুলি ACID বৈশিষ্ট্যগুলি (পরমাণু, সামঞ্জস্য, বিচ্ছিন্নতা, স্থায়িত্ব) মেনে চলার মাধ্যমে ডাটাবেসের অখণ্ডতা নিশ্চিত করে৷ একটি মৌলিক লেনদেন জড়িত হতে পারে:
একটি ডাটাবেস টেবিলে অনুসন্ধান এবং প্রশ্নের কর্মক্ষমতা উন্নত করতে, SQL সূচী ব্যবহার করে। একটি সূচক একটি অভ্যন্তরীণ লুকআপ টেবিল তৈরি করে যা ডেটাবেস ম্যানেজমেন্ট সিস্টেম ডেটা পুনরুদ্ধারের গতি বাড়াতে ব্যবহার করতে পারে। সহজ কথায়, একটি ডাটাবেস টেবিলের একটি সূচী অনেকটা বইয়ের একটি সূচীর মতো কাজ করে।
একটি সূচক তৈরি করা INDEX বিবৃতিটি ব্যবহার করে করা যেতে পারে, উদাহরণস্বরূপ:
কর্মীদের (নাম) উপর INDEX idx_employee_name তৈরি করুন;
এই কমান্ডটি কর্মচারী টেবিলের নামের কলামে একটি সূচক তৈরি করে, যা কর্মচারীর নাম অনুসারে প্রশ্নগুলি ফিল্টারিং বা বাছাইকে আরও দক্ষ করে তুলতে পারে।
এসকিউএল-এ সীমাবদ্ধতাগুলি সারণির ডেটাতে প্রয়োগ করা নিয়ম। এগুলি ডাটাবেসের মধ্যে ডেটার নির্ভুলতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে ব্যবহৃত হয়। সাধারণ সীমাবদ্ধতা অন্তর্ভুক্ত:
এসকিউএল রিলেশনাল ডাটাবেস পরিচালনার জন্য একটি শক্তিশালী টুল। এটি ব্যবহারকারীদের দক্ষতার সাথে ডাটাবেসের সাথে ইন্টারঅ্যাক্ট করতে পারে তা নিশ্চিত করে ডেটা অনুসন্ধান, সন্নিবেশ, আপডেট এবং মুছে ফেলার একটি কাঠামোগত উপায় প্রদান করে। মৌলিক এসকিউএল কমান্ডগুলি বোঝা, কীভাবে ডেটা এবং টেবিলগুলিকে ম্যানিপুলেট করতে হয় এবং কীভাবে লেনদেন এবং সূচীগুলির মতো উন্নত বৈশিষ্ট্যগুলি ব্যবহার করতে হয় তা একটি ডাটাবেসের পরিচালনা এবং কার্যকারিতাকে ব্যাপকভাবে উন্নত করতে পারে। এই ধারণাগুলি আয়ত্ত করে, ডাটাবেস ব্যবহারকারী এবং বিকাশকারীরা তাদের ডেটা এবং অ্যাপ্লিকেশনগুলির অখণ্ডতা, কর্মক্ষমতা এবং নির্ভরযোগ্যতা নিশ্চিত করতে পারে।