উত্তর: PostgreSQL একটি ওপেন-সোর্স রিলেশনাল ডাটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা ডেটা সংরক্ষণ, ম্যানিপুলেশন এবং পুনরুদ্ধার করার জন্য ব্যবহৃত হয়। এটি SQL এবং অন্যান্য আধুনিক বৈশিষ্ট্য যেমন JSON, XML, ট্রিগার, স্টোরড প্রসিডিউর এবং ACID কমপ্লায়েন্স সাপোর্ট করে।
উত্তর: একটি স্কিমা হলো ডাটাবেসের মধ্যে অবজেক্টগুলোর একটি সংগঠিত কাঠামো (যেমন টেবিল, ভিউ, ফাংশন)। এটি নামের সংঘর্ষ এড়াতে এবং অবজেক্টগুলোকে গ্রুপ করার জন্য ব্যবহৃত হয়। এতে একটি ডাটাবেসকে আরও বেশি ব্যবস্থাপনাযোগ্য ও সুরক্ষিত করা যায়।
উত্তর:
- Primary Key হলো এমন একটি কলাম বা কলাম সেট যা প্রতিটি রেকর্ডকে ইউনিকভাবে শনাক্ত করে। এটি
NULLহতে পারে না। - Foreign Key হলো এমন একটি কলাম যা অন্য টেবিলের প্রাইমারি কীকে রেফার করে, যা টেবিলগুলোর মধ্যে সম্পর্ক তৈরি করে।
উত্তর:
VARCHAR(n)পরিবর্তনশীল দৈর্ঘ্যের স্ট্রিং সংরক্ষণ করে এবং সর্বোচ্চnঅক্ষর গ্রহণ করতে পারে।CHAR(n)নির্দিষ্ট দৈর্ঘ্যের স্ট্রিং সংরক্ষণ করে এবং যদি স্ট্রিং ছোট হয়, তাহলে অতিরিক্ত জায়গা ফাঁকা দিয়ে পূরণ করে।
উত্তর: WHERE ক্লজটি ব্যবহার করে নির্দিষ্ট শর্ত পূরণ করে এমন রেকর্ডগুলো SELECT স্টেটমেন্টের মাধ্যমে ফিল্টার করা যায়। এটি ডেটা কুয়েরির সময় নির্দিষ্ট রো বেছে নিতে সাহায্য করে।
উত্তর:
LIMITনির্ধারণ করে কতটি রেকর্ড কুয়েরি থেকে ফেরত আসবে।OFFSETনির্ধারণ করে কতগুলি রেকর্ড স্কিপ করে শুরু করা হবে।
এগুলো pagination বা পেজভিত্তিক ডেটা প্রদর্শনের জন্য ব্যবহৃত হয়।
উত্তর: UPDATE স্টেটমেন্ট ব্যবহার করে একটি টেবিলের বিদ্যমান রেকর্ডের মান পরিবর্তন করা যায়। উদাহরণ:
UPDATE books SET price = 50 WHERE id = 1;উত্তর: JOIN ব্যবহার করে একাধিক টেবিল থেকে সম্পর্কযুক্ত তথ্য সংগ্রহ করা যায়। PostgreSQL-এ বিভিন্ন JOIN আছে যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN ইত্যাদি। এটি সাধারণত ফরেন কী সম্পর্কযুক্ত টেবিলের তথ্য একসাথে আনতে ব্যবহৃত হয়।
উত্তর: GROUP BY ক্লজটি একই ধরনের মানযুক্ত রেকর্ডগুলোকে গ্রুপ করে এবং তাদের ওপর সমষ্টিগত ফাংশন (যেমন COUNT, SUM, AVG) প্রয়োগ করতে সাহায্য করে। এটি রিপোর্ট তৈরি বা বিশ্লেষণের কাজে ব্যবহৃত হয়।
উত্তর:
COUNT()— মোট রেকর্ড সংখ্যা গণনা করে।SUM()— নির্দিষ্ট কলামের মানগুলোর যোগফল বের করে।AVG()— নির্দিষ্ট কলামের গড় মান বের করে।
উদাহরণ:
SELECT COUNT(*) FROM orders;
SELECT SUM(price) FROM books;
SELECT AVG(price) FROM books;উত্তর:
ORDER BY ক্লজ ব্যবহার করে কুয়েরির ফলাফলকে একটি বা একাধিক কলামের মান অনুসারে সাজানো যায়। এটি ডিফল্টভাবে ASC (ascending) অর্ডারে থাকে, তবে চাইলে DESC (descending) ব্যবহার করা যায়।
SELECT * FROM books ORDER BY price DESC;উত্তর:
DISTINCT ব্যবহার করা হয় একটি কলামের ডুপ্লিকেট মান সরিয়ে ইউনিক রেকর্ড আনার জন্য।
SELECT DISTINCT category FROM books;উত্তর: Index হলো একটি ডেটা স্ট্রাকচার যা টেবিলের সার্চ বা কুয়েরি স্পিড বাড়ানোর জন্য ব্যবহৃত হয়। যখন টেবিলে অনেক রেকর্ড থাকে, তখন ইনডেক্স ছাড়া সার্চ অনেক স্লো হয়।
CREATE INDEX idx_books_title ON books(title);উত্তর:
DELETE— নির্দিষ্ট কন্ডিশনের উপর ভিত্তি করে রেকর্ড ডিলিট করে, এবং এটি রোলব্যাক করা যায়।TRUNCATE— পুরো টেবিলের সব রেকর্ড একসাথে ডিলিট করে, কিন্তু এটি দ্রুততর এবং সাধারণত রোলব্যাক করা যায় না।
DELETE FROM books WHERE id = 5;
TRUNCATE TABLE books;উত্তর: PostgreSQL-এ টেবিল রিলেশনশিপ তৈরি করা হয় Primary Key এবং Foreign Key এর মাধ্যমে। যেমনঃ
CREATE TABLE authors (
id SERIAL PRIMARY KEY,
name VARCHAR(100)
);
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title VARCHAR(200),
author_id INT REFERENCES authors(id)
);এখানে books টেবিলের author_id হলো authors টেবিলের id এর সাথে সম্পর্কযুক্ত।