PostgreSQL পাওয়ার আপ: কুয়েরি নিয়ে আলোচনা
Tags: postgressql, query, crud, bangla
Published: 2024-03-11 10:05:56

আপনি যদি রিলেশনাল ডাটাবেজ নিয়ে কাজ করেন, তাহলে এই মুহূর্তে most powerful and versatile option হিসাবে PostgreSQL কেই পাবেন। তাই আমাদের ডেভেলপমেন্ট জার্নিতে নতুন জোয়ার আনতে PostgreSQL আয়ত্ত করা অনেক গুরুত্ব পূর্ণ। 

আমাদের যেকোনো ডাটাবেজ শিখার হাতে খড়ি হয় CRUD অপারেশন চালানোর মাধ্যমে, তাই এই ব্লগে, আমরা PostgreSQL-এ এসকিউএল কোয়েরির মৌলিক বিষয়গুলো নিয়ে আলোচনা করব, ব্যবহারিক উদাহরণ সহ SELECT, INSERT, UPDATE, এবং DELETE স্টেটমেন্ট কভার করব।

### Understanding SELECT Statements

SELECT স্টেটমেন্ট এমন একটা স্টেটমেন্ট যেটা আমরা সচারচর ব্যবহার করে থাকি। এটাকে আপনারা mongoose এর find মেথডের সাথে তুলনা করতে পারেন।

SELECT স্টেটমেন্ট এর মাধ্যমে ডাটাবেজ থেকে  ডাটা নিয়ে আশা হয়, এর সিনট্যাক্স হচ্ছেঃ 

```sql
SELECT column1, column2, ...
FROM table_name
WHERE condition;

```

এখানে

- **`SELECT`**: এর মাধ্যমে আমরা যে কলাম গুলো থেকে ডাটা নিতে চাই সেগুলো নির্দিষ্ট করে দেই। আর সকল কলামের ডাটা নিতে চাইলে `*` সাইন ইউজ করি।
- **`FROM`**: এর মাধ্যমে কোন টেবিল থেকে ডাটা নিয়ে আসতে চাচ্ছি, তা নির্দিষ্ট করে দেই।
- **`WHERE`**: এটা অপশনাল, তবে কোন নির্দিষ্ট শর্তের উপর কলাম ফিলটার করতে এটা ব্যবহার করা হয়।

**Example**

ধরুন আমাদের একটি table রয়েছে, যার নাম **`employees`** , যেখানে কলাম রয়েছে **`id`**, **`name`**, **`age`**, এবং  **`department`**. এখন আমরা যদি 30 বছরের কম বয়সী সকল কর্মচারী কোন ডিপার্টমেন্ট এ কাজ করে তার ডাটা পেতে চাই, তাহলে কুয়েরিটি হবে:

```sql
SELECT department
FROM employees
WHERE age < 30;
```

### Understanding INSERT Statements

INSERT স্টেটমেন্ট টি ডাটাবেজে নতুন row এড করতে ব্যবহার করা হয়। mongoose এ একাজটি আপনারা create মেথডের মাধ্যমে করেছেন। এর সিনট্যাক্স হচ্ছেঃ 

```sql
INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
```

এখানে,

- **`INSERT INTO`**: এর মাধ্যমে কোন টেবিলে ডাটা ইন্সারট করতে চাচ্ছি, তা বলে দিতে হয়।
- **`VALUES`**: এখানে নির্দিষ্ট কলামের জন্য সঠিক অর্ডারে ভ্যালু গুলো বসাতে হয়।

**Example**

এখন আমরা যদি `employees` টেবিলে নতুন employee ইন্সারট করতে চায় তাহলে,

```sql
INSERT INTO employees (name, age, department)
VALUES ('John Doe', 25, 'Marketing');
```

### Understanding UPDATE Statements

UPDATE স্টেটমেন্টের মাধ্যমে আমরা কোন টেবিলের এক্সিস্টিং ডাটা মডিফাই করতে পারি। এর সিনট্যাক্স হচ্ছেঃ 

```sql
UPDATE table_name
SET column1 = value1, column2 = value2, ...
WHERE condition;
```

এখানে,

- **`UPDATE`**: কোন টেবিলের ডাটা আপডেট করা হবে, তা এর মাদ্দমে বলে দেয়া হয়।
- **`SET`**: কোন কলাম গুলিকে কোন ভ্যালু দ্বারা আপডেট করা হবে, তা নির্দিষ্ট করা হয়।
- **`WHERE`**: এটা অপশনাল, তবে কোন নির্দিষ্ট শর্তের উপর কলাম ফিলটার করতে এটা ব্যবহার করা হয়।

**Example**

আসুন `Alice` নামের একজন কর্মচারীর বিভাগকে 'Human Resources'
- এ আপডেট করি:

```sql
UPDATE employees
SET department = 'Human Resources'
WHERE name = 'Alice';
```

### Understanding DELETE Statements

DELETE স্টেটমেন্ট একটি টেবিল থেকে এক বা একাধিক row সরাতে ব্যবহার করা হয়। এর সিনট্যাক্স নিম্নরূপ:

```sql
DELETE FROM table_name
WHERE condition;
```

এখানে, 

- **`DELETE FROM`**: এখানে কোন টেবিল থেকে ডাটা রিমুভ করা হবে, তা নির্দিষ্ট করা হয়।
- **`WHERE`**: এখানে কোন কন্ডিশনের উপর বেজ করে ডাটা রিমুভ করা হবে, তা বলে দেয়া হয়।

**Example**
চলুন আমরা ৬০ বছরের বেশি বয়স্ক **`employees`** দের টেবিল থেকে রিমুভ করে দেই

```sql
DELETE FROM employees
WHERE age > 60;
```

Resources

- https://www.postgresqltutorial.com/