
আধুনিক সফটওয়্যার ডেভেলপমেন্টে ডেটা সংরক্ষণ, পরিচালনা এবং দ্রুত অনুসন্ধানের জন্য ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) অপরিহার্য। ডেটাবেসের সাথে যোগাযোগের জন্য SQL একটি স্ট্যান্ডার্ড ভাষা হলেও, সেই ভাষাকে কার্যকরভাবে প্রয়োগ করার জন্য প্রয়োজন একটি শক্তিশালী ইঞ্জিন—যেমন PostgreSQL।
অনেকের মধ্যেই SQL এবং PostgreSQL নিয়ে বিভ্রান্তি থাকে। সহজ ভাষায়: SQL হলো যোগাযোগের ভাষা, আর PostgreSQL হলো সেই ভাষা বোঝার একটি স্বয়ংসম্পূর্ণ সিস্টেম।
বৈশিষ্ট্যSQL (Structured Query Language)PostgreSQLধরনকুয়েরি ল্যাঙ্গুয়েজ (Query Language)অবজেক্ট-রিলেশনাল ডেটাবেস ইঞ্জিন (ORDBMS)কাজের পরিধিডেটাবেসে নির্দেশ পাঠানোর নিয়মকানুন নির্ধারণ করেডেটা সংরক্ষণ, ইনডেক্সিং এবং প্রসেসিং পরিচালনা করেএক্সটেনশন ও কাস্টমাইজেশননির্দিষ্ট সিনট্যাক্স নিয়মে সীমাবদ্ধকাস্টম ডেটা টাইপ, প্লাগইন ও ফাংশন সাপোর্ট করেডেটা ফরম্যাটমূলত স্ট্রাকচার্ড রিলেশনাল ডেটারিলেশনাল ডেটার পাশাপাশি JSON, JSONB, XML ইত্যাদি সাপোর্ট করে
পোস্টগ্রেসকিউএল-এর সবচেয়ে বেশি ব্যবহৃত কুয়েরি ও অপারেশনগুলো নিচে ক্যাটাগরি অনুযায়ী সাজানো হলো:
নতুন ডেটাবেস তৈরি:
SQL
CREATE DATABASE bookstore_db;
টেবিল তৈরি (Constraints সহ):
SQL
CREATE TABLE books (
id SERIAL PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255),
price DECIMAL(10, 2) NOT NULL,
stock INT DEFAULT 0,
published_year INT
);
ডেটা ইনসার্ট করা:
SQL
INSERT INTO books (title, author, price, stock, published_year)
VALUES ('The Pragmatic Programmer', 'Andrew Hunt', 40.00, 15, 1999);
ডেটা রিড/ফিল্টার করা:
SQL
-- ২০০০ সালের পরে প্রকাশিত বই ফিল্টার
SELECT title, price, published_year
FROM books
WHERE published_year > 2000;
ডেটা আপডেট করা:
SQL
UPDATE books
SET price = 45.00
WHERE id = 1;
ডেটা মুছে ফেলা:
SQL
DELETE FROM books
WHERE id = 1;
নতুন কলাম যোগ করা:
SQL
ALTER TABLE books ADD COLUMN rating DECIMAL(2, 1);
কলামের ডেটা টাইপ পরিবর্তন:
SQL
ALTER TABLE books ALTER COLUMN price TYPE NUMERIC(12, 2);
কলাম মুছে ফেলা:
SQL
ALTER TABLE books DROP COLUMN rating;
সম্পূর্ণ টেবিল ডিলিট করা:
SQL
DROP TABLE books;
সর্টিং ও অর্ডারিং:
SQL
SELECT title, price
FROM books
ORDER BY price DESC;
গ্রুপিং ও এগ্রিগেশন:
SQL
-- প্রতি বছর কতগুলো বই প্রকাশিত হয়েছে এবং গড় দাম কত
SELECT published_year,
COUNT(*) AS total_books,
AVG(price) AS average_price
FROM books
GROUP BY published_year;
সাবকুয়েরি (Subquery):
SQL
-- গড় মূল্যের চেয়ে বেশি দামি বইগুলো খোঁজা
SELECT title, price
FROM books
WHERE price > (SELECT AVG(price) FROM books);
রিলেশনাল জয়েন (JOIN):
SQL
SELECT c.name AS customer_name, b.title AS book_title, o.quantity
FROM orders o
JOIN customers c ON o.customer_id = c.id
JOIN books b ON o.book_id = b.id;
কুয়েরি দ্রুত করার জন্য ইনডেক্স তৈরি:
SQL
CREATE INDEX idx_books_title ON books (title);
এসিড ট্রানজ্যাকশন (ACID Transactions):
SQL
BEGIN;
UPDATE books SET stock = stock - 1 WHERE id = 1;
-- কোনো এরর না থাকলে ডেটা সেভ হবে
COMMIT;
রো লকিং (Concurrency Control):
SQL
-- ট্রানজ্যাকশন শেষ না হওয়া পর্যন্ত নির্দিষ্ট রো লক রাখা
SELECT * FROM books WHERE id = 1 FOR UPDATE;
নতুন ডাটাবেস ইউজার তৈরি:
SQL
CREATE USER app_user WITH PASSWORD 'secure_password_123';
GRANT ALL PRIVILEGES ON DATABASE bookstore_db TO app_user;
SQL জানা থাকলে যেকোনো রিলেশনাল ডেটাবেসে কাজ করা সহজ হয়, তবে এন্টারপ্রাইজ স্কেলে উচ্চ পারফরম্যান্স, ডেটা ইন্টিগ্রিটি এবং আধুনিক স্কেলেবিলিটির জন্য PostgreSQL ডেভেলপারদের অন্যতম প্রধান পছন্দ।