DB2 SQL এবং Queries

Database Tutorials - ডিবি২ (DB2)
252
252

DB2 একটি শক্তিশালী রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) যা SQL (Structured Query Language) ব্যবহার করে ডেটাবেসের সাথে ইন্টারঅ্যাক্ট করে। DB2 SQL কুয়েরি ব্যবহার করে আপনি ডেটাবেসে ডেটা অনুসন্ধান, আপডেট, মুছে ফেলা এবং নতুন ডেটা যুক্ত করতে পারেন। এখানে DB2 SQL এর বিভিন্ন ধরণ এবং কুয়েরি ব্যবহার সম্পর্কে বিস্তারিত আলোচনা করা হলো।


DB2 SQL এর বেসিক ধারণা

SQL (Structured Query Language) হল ডেটাবেস ম্যানেজমেন্ট সিস্টেমের সাথে যোগাযোগের ভাষা। DB2 SQL কুয়েরি ব্যবহার করে আপনি ডেটাবেসের তথ্য পরিচালনা করতে পারেন। এটি প্রধানত Data Definition Language (DDL), Data Manipulation Language (DML) এবং Data Control Language (DCL) এর উপর ভিত্তি করে কাজ করে।

DB2 SQL এর প্রধান কমান্ড

  • SELECT: ডেটা অনুসন্ধান করতে ব্যবহৃত হয়।
  • INSERT: ডেটাবেসে নতুন ডেটা যোগ করতে ব্যবহৃত হয়।
  • UPDATE: বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়।
  • DELETE: ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।

SELECT, INSERT, UPDATE, DELETE Queries

SELECT Query

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

উদাহরণ:

SELECT * FROM employees;

এটি employees টেবিলের সমস্ত তথ্য নির্বাচন করবে।

বিশেষ ক্ষেত্র নির্বাচন:

SELECT first_name, last_name FROM employees;

এটি শুধুমাত্র first_name এবং last_name কলাম থেকে ডেটা নির্বাচন করবে।

INSERT Query

INSERT কমান্ড ব্যবহার করে আপনি ডেটাবেসে নতুন রেকর্ড যুক্ত করতে পারেন।

উদাহরণ:

INSERT INTO employees (first_name, last_name, hire_date) 
VALUES ('John', 'Doe', '2024-01-01');

এটি employees টেবিলে নতুন একটি রেকর্ড যোগ করবে।

UPDATE Query

UPDATE কমান্ড দিয়ে আপনি বিদ্যমান ডেটা পরিবর্তন করতে পারেন।

উদাহরণ:

UPDATE employees 
SET hire_date = '2024-06-01'
WHERE employee_id = 101;

এটি employee_id 101 এর জন্য hire_date আপডেট করবে।

DELETE Query

DELETE কমান্ডের সাহায্যে আপনি ডেটাবেস থেকে রেকর্ড মুছে ফেলতে পারেন।

উদাহরণ:

DELETE FROM employees WHERE employee_id = 101;

এটি employee_id 101 এর রেকর্ড মুছে ফেলবে।


Joins এবং Subqueries

Joins

JOIN কমান্ডের মাধ্যমে আপনি দুটি বা তার বেশি টেবিলের ডেটা একত্রে দেখতে পারেন। DB2 SQL বিভিন্ন ধরণের JOIN সমর্থন করে, যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL OUTER JOIN

INNER JOIN উদাহরণ:

SELECT employees.first_name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.department_id;

এটি employees এবং departments টেবিলের মধ্য থেকে সাধারণ ডেটা নির্বাচন করবে যেখানে department_id মেলে।

LEFT JOIN উদাহরণ:

SELECT employees.first_name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.department_id;

এটি employees টেবিলের সমস্ত রেকর্ড দেখাবে, এবং যেখানে সম্পর্কিত ডেটা পাওয়া যাবে সেখানে departments টেবিলের তথ্য যোগ করবে।

Subqueries

Subquery হল একটি কুয়েরি যা অন্য একটি কুয়েরির মধ্যে ব্যবহার করা হয়। এটি সাধারণত WHERE বা HAVING ক্লজে ব্যবহৃত হয়।

উদাহরণ:

SELECT first_name, last_name
FROM employees
WHERE department_id = (
  SELECT department_id FROM departments WHERE department_name = 'Sales'
);

এটি Sales বিভাগের কর্মচারীদের নাম প্রদর্শন করবে।


Aggregation এবং Grouping ব্যবহার

Aggregation Functions

DB2 SQL বিভিন্ন aggregation functions সমর্থন করে, যেমন COUNT(), SUM(), AVG(), MIN(), এবং MAX(), যা ডেটার উপর বিভিন্ন গণনা করতে ব্যবহৃত হয়।

উদাহরণ:

SELECT COUNT(*), AVG(salary)
FROM employees;

এটি employees টেবিলের মোট রেকর্ডের সংখ্যা এবং গড় বেতন দেখাবে।

GROUP BY

GROUP BY কমান্ড ব্যবহার করে আপনি ডেটাকে গ্রুপ করে aggregation করতে পারেন।

উদাহরণ:

SELECT department_id, COUNT(*), AVG(salary)
FROM employees
GROUP BY department_id;

এটি প্রতিটি বিভাগে কতজন কর্মচারী আছে এবং তাদের গড় বেতন দেখাবে।


DB2 Query Optimization

DB2 SQL কুয়েরি অপ্টিমাইজেশন একটি গুরুত্বপূর্ণ দিক, যা ডেটাবেসের পারফরম্যান্স এবং দক্ষতা উন্নত করতে সহায়ক। এটি Indexing, Query Execution Plans, এবং Query Caching এর মতো টেকনিক ব্যবহার করে ডেটার অনুসন্ধান দ্রুততর করে।

Query Execution Plan

DB2 SQL কুয়েরি অপ্টিমাইজেশনের জন্য Query Execution Plan ব্যবহার করা হয়, যা কুয়েরির কার্যকারিতা বিশ্লেষণ করতে সহায়ক। এটি কুয়েরি অপ্টিমাইজারের দ্বারা কুয়েরি সম্পাদনার পরিকল্পনা দেখায়।

উদাহরণ:

EXPLAIN PLAN FOR
SELECT first_name, last_name FROM employees WHERE department_id = 10;

এটি কুয়েরির এক্সিকিউশন প্ল্যান দেখাবে, যাতে আপনি জানতে পারবেন কিভাবে DB2 কুয়েরিটি সম্পাদন করবে।


সারসংক্ষেপ

DB2 SQL কুয়েরি ব্যবহার করে ডেটাবেসের সাথে যোগাযোগ করা যায় এবং ডেটার কার্যকরী ব্যবস্থাপনা নিশ্চিত করা হয়। SELECT, INSERT, UPDATE, DELETE সহ আরও অনেক SQL কমান্ডের সাহায্যে ডেটাবেসে বিভিন্ন কার্যক্রম পরিচালনা করা যায়। JOIN, Subqueries, Aggregation, এবং Grouping এর মাধ্যমে আরও জটিল ডেটা অনুসন্ধান সম্ভব হয়, যা DB2 SQL কে আরও শক্তিশালী এবং কার্যকরী করে তোলে।

common.content_added_by

DB2 এ SQL এর বেসিক ধারণা

227
227

SQL (Structured Query Language) হল একটি স্ট্যান্ডার্ড ভাষা যা ডেটাবেসে ডেটা পরিচালনা করতে ব্যবহৃত হয়। DB2 হল IBM-এর একটি জনপ্রিয় রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS), যা SQL ব্যবহার করে ডেটাবেসের ডেটা পরিচালনা এবং বিশ্লেষণ করতে সাহায্য করে। DB2 এ SQL-এর বেসিক ধারণা নিয়ে বিস্তারিত আলোচনা করা হলো।


SQL এর ভূমিকা

SQL হল ডেটাবেসের সাথে যোগাযোগ করার জন্য ব্যবহৃত প্রধান ভাষা। এটি ডেটাবেসের বিভিন্ন কাজ যেমন ডেটা ইনসার্ট, আপডেট, ডিলিট, কুয়েরি করা, এবং টেবিল ম্যানেজমেন্ট সহজে পরিচালনা করে।

DB2 SQL ব্যবহার করে, আপনি ডেটাবেসের বিভিন্ন অপারেশন সম্পাদন করতে পারেন। SQL এর কিছু মৌলিক কমান্ড এবং অপারেশন সম্পর্কে জানলে DB2 ডেটাবেস ব্যবস্থাপনাতে দক্ষ হতে পারবেন।


DB2 SQL এর প্রধান কমান্ড

SQL এর প্রধান কমান্ডগুলো নিম্নরূপ:

  1. SELECT – ডেটা রিড (প্রাপ্তি) করতে ব্যবহৃত হয়।
  2. INSERT – নতুন ডেটা ইনসার্ট করতে ব্যবহৃত হয়।
  3. UPDATE – বিদ্যমান ডেটা আপডেট করতে ব্যবহৃত হয়।
  4. DELETE – ডেটা মুছতে ব্যবহৃত হয়।

DB2 এ SQL এর বেসিক কমান্ডগুলি

1. SELECT কমান্ড

SELECT কমান্ড ডেটাবেস থেকে ডেটা বের করতে ব্যবহৃত হয়।

উদাহরণ:

SELECT * FROM customers;

এই কুয়েরি customers টেবিলের সমস্ত রেকর্ড (অথবা কলাম) বের করবে।

সুনির্দিষ্ট কলাম নির্বাচন:

SELECT first_name, last_name FROM customers;

এটি শুধুমাত্র first_name এবং last_name কলাম থেকে ডেটা ফিরিয়ে দেবে।

2. INSERT কমান্ড

INSERT কমান্ড ডেটাবেসে নতুন ডেটা ইনসার্ট করতে ব্যবহৃত হয়।

উদাহরণ:

INSERT INTO customers (first_name, last_name, age) VALUES ('John', 'Doe', 28);

এটি customers টেবিলে নতুন রেকর্ড যোগ করবে।

3. UPDATE কমান্ড

UPDATE কমান্ড বিদ্যমান রেকর্ড আপডেট করার জন্য ব্যবহৃত হয়।

উদাহরণ:

UPDATE customers SET age = 29 WHERE customer_id = 1;

এটি customer_id 1 এর customers টেবিলের age কলামটি 29 দিয়ে আপডেট করবে।

4. DELETE কমান্ড

DELETE কমান্ড ডেটাবেস থেকে রেকর্ড মুছতে ব্যবহৃত হয়।

উদাহরণ:

DELETE FROM customers WHERE customer_id = 1;

এটি customer_id 1 সহ customers টেবিল থেকে রেকর্ড মুছে ফেলবে।


SQL কুয়েরির আরও কিছু গুরুত্বপূর্ণ বৈশিষ্ট্য

1. WHERE ক্লজ

WHERE ক্লজ ব্যবহার করে, আপনি কুয়েরিতে একটি নির্দিষ্ট শর্ত যোগ করতে পারেন।

উদাহরণ:

SELECT * FROM customers WHERE age > 30;

এটি এমন সমস্ত গ্রাহকদের রেকর্ড ফিরিয়ে দেবে যাদের বয়স ৩০ এর বেশি।

2. ORDER BY ক্লজ

ORDER BY ব্যবহার করে, আপনি ডেটাকে একটি নির্দিষ্ট ক্রমে সাজাতে পারেন (এলফাবেটিক্যাল অথবা সংখ্যাগত ক্রমে)।

উদাহরণ:

SELECT * FROM customers ORDER BY last_name ASC;

এটি last_name এর উপর ভিত্তি করে এলফাবেটিক্যাল অর্ডারে সাজানো গ্রাহকদের রেকর্ড ফিরিয়ে দেবে।

3. LIMIT ক্লজ

LIMIT ব্যবহার করে আপনি কুয়েরি থেকে ফেরত আসা রেকর্ডের সংখ্যা সীমাবদ্ধ করতে পারেন।

উদাহরণ:

SELECT * FROM customers LIMIT 5;

এটি শুধুমাত্র ৫টি রেকর্ড ফেরত দেবে।

4. DISTINCT

DISTINCT ব্যবহার করে আপনি পুনরাবৃত্তি ডেটা বাদ দিতে পারেন এবং অনন্য মান ফিরিয়ে পেতে পারেন।

উদাহরণ:

SELECT DISTINCT age FROM customers;

এটি customers টেবিলের সমস্ত অনন্য age মান ফিরিয়ে দেবে।


DB2 SQL এর কিছু গুরুত্বপূর্ণ কনসেপ্ট

1. Joins

SQL এর JOIN ব্যবহার করে, আপনি দুটি বা তার অধিক টেবিলের ডেটা একত্রিত করতে পারেন।

উদাহরণ (Inner Join):

SELECT customers.first_name, orders.order_id
FROM customers
INNER JOIN orders ON customers.customer_id = orders.customer_id;

এটি customers এবং orders টেবিল থেকে তথ্য একত্রিত করে, যেখানে customer_id দুটি টেবিলেই মিলে।

2. Aggregations

SQL এর GROUP BY এবং HAVING ক্লজ ব্যবহার করে আপনি ডেটার সারাংশ বা সার্ভে করতে পারেন, যেমন গড়, সর্বোচ্চ, সর্বনিম্ন ইত্যাদি।

উদাহরণ:

SELECT age, COUNT(*) FROM customers GROUP BY age;

এটি age অনুযায়ী গ্রাহকদের সংখ্যা গণনা করবে।


সারসংক্ষেপ

DB2 এ SQL হল ডেটাবেস পরিচালনা এবং ডেটার সাথে কাজ করার জন্য প্রধান হাতিয়ার। SQL-এর মাধ্যমে আপনি ডেটাবেসের বিভিন্ন অপারেশন যেমন ডেটা নির্বাচন, ইনসার্ট, আপডেট, ডিলিট এবং জটিল কুয়েরি করতে পারেন। DB2 SQL এর মাধ্যমে আপনি কুয়েরি অপটিমাইজেশন, ডেটা অ্যানালাইসিস, এবং টেবিলের মধ্যে সম্পর্ক তৈরি করতে পারবেন। SQL এর মৌলিক ধারণা জানা থাকলে DB2 ডেটাবেস ম্যানেজমেন্টে দক্ষতা অর্জন করা সম্ভব।

common.content_added_by

Select, Insert, Update, Delete Queries

284
284

DB2 বা অন্যান্য রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) ব্যবহার করে ডেটাবেসে ডেটা পরিচালনা করতে বিভিন্ন SQL কুয়েরি ব্যবহার করা হয়। এখানে Select, Insert, Update, এবং Delete কুয়েরির বিস্তারিত আলোচনা করা হয়েছে, যা DB2 এ ডেটাবেসের সাধারণ কার্যক্রম পরিচালনা করতে ব্যবহৃত হয়।


Select Query

Select কুয়েরি DB2-এ ডেটাবেস থেকে ডেটা পুনরুদ্ধার (retrieve) করার জন্য ব্যবহৃত হয়। এটি সবচেয়ে সাধারণ এবং গুরুত্বপূর্ণ কুয়েরি। এটি ডেটাবেসের একটি বা একাধিক টেবিল থেকে তথ্য বের করার জন্য ব্যবহৃত হয়।

উদাহরণ:

  • সব কলাম থেকে সব রেকর্ড নির্বাচন করা:

    SELECT * FROM employees;
    
  • নির্দিষ্ট কলাম থেকে রেকর্ড নির্বাচন করা:

    SELECT first_name, last_name, salary FROM employees;
    
  • শর্ত ব্যবহার করে ডেটা নির্বাচন করা (WHERE ক্লজ):

    SELECT * FROM employees WHERE department = 'Sales';
    
  • কিছু কন্ডিশনের মাধ্যমে সাজানো ডেটা (ORDER BY):

    SELECT * FROM employees ORDER BY salary DESC;
    

Insert Query

Insert কুয়েরি DB2-এ নতুন ডেটা ইনসার্ট (insert) করার জন্য ব্যবহৃত হয়। এটি একটি টেবিলে নতুন রেকর্ড যুক্ত করতে ব্যবহার হয়।

উদাহরণ:

  • একটি রেকর্ড ইনসার্ট করা:

    INSERT INTO employees (first_name, last_name, department, salary)
    VALUES ('John', 'Doe', 'HR', 60000);
    
  • একাধিক রেকর্ড ইনসার্ট করা:

    INSERT INTO employees (first_name, last_name, department, salary)
    VALUES 
      ('Jane', 'Smith', 'IT', 75000),
      ('Alice', 'Johnson', 'Sales', 55000);
    

Update Query

Update কুয়েরি DB2-এ ইতিমধ্যে থাকা ডেটার মান আপডেট (update) করার জন্য ব্যবহৃত হয়। এটি কোনো টেবিলের এক বা একাধিক রেকর্ডের মান পরিবর্তন করতে ব্যবহৃত হয়।

উদাহরণ:

  • একটি রেকর্ড আপডেট করা:

    UPDATE employees
    SET salary = 65000
    WHERE first_name = 'John' AND last_name = 'Doe';
    
  • একাধিক রেকর্ড আপডেট করা:

    UPDATE employees
    SET department = 'Finance'
    WHERE salary > 70000;
    
  • সব রেকর্ডের মান আপডেট করা:

    UPDATE employees
    SET salary = 50000;
    

Delete Query

Delete কুয়েরি DB2-এ টেবিল থেকে রেকর্ড মুছতে (delete) ব্যবহৃত হয়। এটি একটি বা একাধিক রেকর্ডের ডেটা সরিয়ে দেয়।

উদাহরণ:

  • একটি রেকর্ড মুছতে:

    DELETE FROM employees
    WHERE first_name = 'John' AND last_name = 'Doe';
    
  • একাধিক রেকর্ড মুছতে:

    DELETE FROM employees
    WHERE department = 'Sales';
    
  • সব রেকর্ড মুছে ফেলা:

    DELETE FROM employees;
    

সারসংক্ষেপ

  • Select Query: DB2-এ ডেটা পুনরুদ্ধার করার জন্য ব্যবহৃত হয়।
  • Insert Query: নতুন রেকর্ড টেবিলে ইনসার্ট করার জন্য ব্যবহৃত হয়।
  • Update Query: বিদ্যমান রেকর্ডের ডেটা পরিবর্তন করার জন্য ব্যবহৃত হয়।
  • Delete Query: টেবিল থেকে রেকর্ড মুছে ফেলতে ব্যবহৃত হয়।

এই SQL কুয়েরিগুলোর মাধ্যমে DB2 ডেটাবেসে ডেটা ম্যানিপুলেট করা হয়, যা সাধারণ ডেটাবেস অপারেশন পরিচালনায় সহায়ক।

common.content_added_by

Joins এবং Subqueries

226
226

DB2 তে Joins এবং Subqueries ডেটাবেসে ডেটার সম্পর্ক স্থাপন এবং বিশ্লেষণ করার জন্য অত্যন্ত গুরুত্বপূর্ণ দুটি টুল। এগুলি SQL কুয়েরি প্রক্রিয়াতে ব্যবহৃত হয় এবং ডেটার মাঝে সম্পর্ক খুঁজে বের করতে সহায়তা করে। এখানে Joins এবং Subqueries সম্পর্কে বিস্তারিত আলোচনা করা হলো।


Joins

Joins SQL তে দুটি বা ততোধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করে ডেটা একত্রিত করার জন্য ব্যবহৃত হয়। এটি বিভিন্ন টেবিলের ডেটার মধ্যে সম্পর্কিত তথ্য পাওয়ার জন্য ব্যবহৃত হয়।

১. INNER JOIN

INNER JOIN ব্যবহার করলে দুইটি টেবিলের মধ্যে কেবলমাত্র এমন রেকর্ডগুলো রিটার্ন হয় যেগুলি উভয় টেবিলেই মেলানো হয়।

উদাহরণ:

SELECT employees.name, departments.department_name
FROM employees
INNER JOIN departments ON employees.department_id = departments.id;

এই কুয়েরিতে employees এবং departments টেবিলের মধ্যে সম্পর্ক স্থাপন করা হচ্ছে। এখানে কেবল সেই কর্মচারীদের নাম এবং তাদের বিভাগের নাম আসবে যারা নির্দিষ্ট বিভাগে কাজ করছে।

২. LEFT JOIN (LEFT OUTER JOIN)

LEFT JOIN (অথবা LEFT OUTER JOIN) ব্যবহৃত হলে, বাম দিকের টেবিলের সব রেকর্ড রিটার্ন হয়, এমনকি ডান দিকের টেবিলে সম্পর্কিত রেকর্ড না থাকলেও। ডান দিকের টেবিলের ক্ষেত্রগুলিতে NULL মান আসবে।

উদাহরণ:

SELECT employees.name, departments.department_name
FROM employees
LEFT JOIN departments ON employees.department_id = departments.id;

এখানে, এমন কর্মচারীদের নাম দেখানো হবে যাদের বিভাগে কাজ করার তথ্য নেই, তবে তাদের নামটি সবসময় প্রদর্শিত হবে।

৩. RIGHT JOIN (RIGHT OUTER JOIN)

RIGHT JOIN (অথবা RIGHT OUTER JOIN) হল LEFT JOIN এর বিপরীত, যেখানে ডান দিকের টেবিলের সমস্ত রেকর্ড রিটার্ন হয় এবং বাম দিকের টেবিলের ক্ষেত্রগুলোতে NULL থাকতে পারে।

উদাহরণ:

SELECT employees.name, departments.department_name
FROM employees
RIGHT JOIN departments ON employees.department_id = departments.id;

এখানে, এমন সব বিভাগ প্রদর্শিত হবে যেগুলোর সাথে কোনো কর্মচারী যুক্ত নয়।

৪. FULL JOIN (FULL OUTER JOIN)

FULL JOIN (অথবা FULL OUTER JOIN) ব্যবহার করলে উভয় টেবিলের সমস্ত রেকর্ড রিটার্ন হয়, এমনকি এক টেবিলের সাথে অন্য টেবিলের কোনো সম্পর্ক না থাকলেও।

উদাহরণ:

SELECT employees.name, departments.department_name
FROM employees
FULL JOIN departments ON employees.department_id = departments.id;

এখানে, সকল কর্মচারী এবং সকল বিভাগ রিটার্ন হবে, যাদের সম্পর্ক না থাকলেও তাদের জন্য NULL মান প্রদর্শিত হবে।


Subqueries

Subqueries হল একটি SQL কুয়েরি যা আরেকটি কুয়েরির ভিতরে অন্তর্ভুক্ত থাকে। এগুলি মূল কুয়েরির ফলাফল হিসেবে ব্যবহার করা হয় এবং জটিল ডেটা বিশ্লেষণ করতে সাহায্য করে।

১. সিরিজ সিলেকশন সাবকুয়েরি

এটি এমন এক কুয়েরি যা প্রধান কুয়েরির মধ্যে ব্যবহার হয় এবং কিছু ফলাফল রিটার্ন করে। এই ধরনের সাবকুয়েরি IN, NOT IN, ANY, ALL বা EXISTS এর সাথে ব্যবহার হতে পারে।

উদাহরণ:

SELECT name
FROM employees
WHERE department_id IN (SELECT id FROM departments WHERE department_name = 'HR');

এই কুয়েরি employees টেবিলের কর্মচারীদের নাম রিটার্ন করবে যারা HR বিভাগের সাথে যুক্ত।

২. স্কেলার সাবকুয়েরি

স্কেলার সাবকুয়েরি হল এমন একটি সাবকুয়েরি যা একক মান রিটার্ন করে এবং প্রধান কুয়েরিতে একাধিক ক্ষেত্রের মানের সাথে তুলনা করতে ব্যবহার হয়।

উদাহরণ:

SELECT name
FROM employees
WHERE salary > (SELECT AVG(salary) FROM employees);

এই কুয়েরি সকল কর্মচারীর নাম রিটার্ন করবে, যাদের বেতন গড় বেতনের চেয়ে বেশি।

৩. কোরেলেটেড সাবকুয়েরি

কোরেলেটেড সাবকুয়েরি এমন একটি সাবকুয়েরি যা প্রধান কুয়েরির প্রতিটি সারির জন্য কার্যকরী হয়। এর মানে হলো সাবকুয়েরি প্রতিটি মূল কুয়েরির সারির জন্য পুনরায় চালিত হয়।

উদাহরণ:

SELECT name
FROM employees e
WHERE salary > (SELECT AVG(salary) FROM employees WHERE department_id = e.department_id);

এখানে, প্রতিটি কর্মচারীর বেতন তার বিভাগের গড় বেতনের চেয়ে বেশি কিনা তা যাচাই করা হয়।

৪. EXISTS সাবকুয়েরি

EXISTS সাবকুয়েরি ব্যবহৃত হয় যখন মূল কুয়েরি সাবকুয়েরির রেকর্ডের উপস্থিতি যাচাই করতে চায়। এটি কেবলমাত্র TRUE বা FALSE রিটার্ন করে।

উদাহরণ:

SELECT name
FROM employees
WHERE EXISTS (SELECT 1 FROM departments WHERE departments.id = employees.department_id);

এখানে, সমস্ত কর্মচারীর নাম রিটার্ন হবে যারা একটি বিভাগে কাজ করছেন।


সারসংক্ষেপ

  • Joins DB2 তে ডেটাবেসের একাধিক টেবিলের মধ্যে সম্পর্ক স্থাপন করতে ব্যবহৃত হয়। বিভিন্ন ধরনের JOIN যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN ব্যবহৃত হয় ডেটার মধ্যে সম্পর্ক স্থাপনের জন্য।
  • Subqueries হল একটি SQL কুয়েরি যা আরেকটি কুয়েরির ভিতরে অন্তর্ভুক্ত থাকে। এগুলি ডেটার গভীর বিশ্লেষণ এবং পরিশোধন করতে ব্যবহৃত হয়। Scalar, Correlated, এবং EXISTS ধরনের সাবকুয়েরি DB2 তে সাধারণত ব্যবহৃত হয়।

Joins এবং Subqueries DB2 তে ডেটাবেসের জটিল কুয়েরি তৈরিতে সাহায্য করে এবং বড় ডেটা সেটের মধ্যে সম্পর্ক বিশ্লেষণ এবং ফিল্টার করতে অত্যন্ত কার্যকরী।

common.content_added_by

Aggregation এবং Grouping ব্যবহার

240
240

DB2-এ Aggregation এবং Grouping SQL কুয়েরি লেখার জন্য গুরুত্বপূর্ণ টুলস, যা ডেটা বিশ্লেষণ এবং সংক্ষেপণের জন্য ব্যবহৃত হয়। এগুলি ব্যবহৃত হয় যখন আপনি ডেটাবেস থেকে একাধিক রেকর্ডের উপর ভিত্তি করে তথ্য সংক্ষেপিত বা সামগ্রিক তথ্য পাওয়ার চেষ্টা করেন।


Aggregation ব্যবহার

Aggregation হল ডেটাবেসের একাধিক রেকর্ড থেকে একটি একক মান বের করার প্রক্রিয়া। DB2 SQL এ কিছু গুরুত্বপূর্ণ Aggregation Functions রয়েছে, যা ব্যবহৃত হয়:

  • COUNT(): একটি কলামের মধ্যে মোট রেকর্ডের সংখ্যা গণনা করে।
  • SUM(): একটি কলামের মানের যোগফল বের করে।
  • AVG(): একটি কলামের মানের গড় বের করে।
  • MIN(): একটি কলামের মধ্যে সর্বনিম্ন মান বের করে।
  • MAX(): একটি কলামের মধ্যে সর্বোচ্চ মান বের করে।

উদাহরণ:

ধরা যাক আমাদের কাছে একটি Sales টেবিল আছে যেখানে বিক্রয়ের তথ্য রাখা আছে, এবং আমরা বিক্রয়ের মোট পরিমাণ জানার চেষ্টা করছি।

SELECT SUM(sale_amount) AS total_sales
FROM Sales;

এখানে, SUM() ফাংশনটি বিক্রয়ের পরিমাণের যোগফল বের করবে।


Grouping ব্যবহার

Grouping ব্যবহার করা হয় ডেটা সেটকে কিছু নির্দিষ্ট মান বা ক্যাটাগরির ভিত্তিতে ভাগ করার জন্য। এটি একটি গুরুত্বপূর্ণ টুল যেখানে একাধিক রেকর্ডের মধ্যে সংক্ষেপিত ফলাফল পেতে হয়, তবে সেটি নির্দিষ্ট কলামের উপর ভিত্তি করে ভাগ করতে হয়।

GROUP BY ক্লজ ব্যবহার করে DB2-এ গ্রুপিং করা হয়। সাধারণত, গ্রুপিং অ্যাগ্রিগেট ফাংশনগুলোর সাথে ব্যবহার করা হয়।

উদাহরণ:

ধরা যাক, আমরা Sales টেবিলের মধ্যে প্রতিটি বিক্রয় প্রতিনিধি (Salesperson) এর মোট বিক্রয়ের পরিমাণ জানাতে চাই। আমরা এটি GROUP BY ক্লজ ব্যবহার করে করতে পারি:

SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id;

এখানে, GROUP BY salesperson_id দ্বারা প্রতিটি বিক্রয় প্রতিনিধির জন্য একটি গ্রুপ তৈরি করা হবে এবং প্রতিটি গ্রুপের জন্য SUM() ফাংশনটি প্রয়োগ করা হবে।


Aggregation এবং Grouping একসাথে ব্যবহার

অনেক সময় Aggregation এবং Grouping একসাথে ব্যবহার করা হয় যখন আপনি কিছু ক্যাটাগরি বা গ্রুপ অনুযায়ী ডেটা সংক্ষেপণ করতে চান। এই দুইটি একসাথে ব্যবহার করলে আপনি ভিন্ন ভিন্ন গ্রুপের জন্য অ্যাগ্রিগেটেড ফলাফল পেতে পারেন।

উদাহরণ:

ধরা যাক, আমরা Sales টেবিল থেকে বিক্রয়ের পরিমাণ এবং প্রতিটি বিক্রয় প্রতিনিধির গড় বিক্রয় জানাতে চাই, এবং গ্রুপিং করতে চাই বিক্রয়ের মাসের ভিত্তিতে।

SELECT salesperson_id, EXTRACT(MONTH FROM sale_date) AS sale_month, 
       SUM(sale_amount) AS total_sales, AVG(sale_amount) AS avg_sales
FROM Sales
GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date);

এখানে:

  • GROUP BY salesperson_id, EXTRACT(MONTH FROM sale_date) এই অংশটি বিক্রয়ের প্রতিনিধির সাথে মাস ভিত্তিক গ্রুপিং তৈরি করবে।
  • SUM() এবং AVG() ফাংশন ব্যবহার করে, আমরা প্রতিটি গ্রুপের মোট বিক্রয় এবং গড় বিক্রয় জানতে পারবো।

HAVING ক্লজ ব্যবহার

HAVING ক্লজ ব্যবহার করা হয় GROUP BY কুয়েরির ফলাফলে শর্ত আরোপ করার জন্য। যখন আপনি গ্রুপিংয়ের পর ফলাফল ফিল্টার করতে চান, তখন HAVING ক্লজ ব্যবহার করা হয়। এটি WHERE ক্লজের মতো কাজ করে, তবে WHERE শুধুমাত্র সিংগেল রেকর্ডে কাজ করে, আর HAVING গ্রুপেড রেকর্ডে কাজ করে।

উদাহরণ:

ধরা যাক, আমরা চাই শুধুমাত্র তাদেরকে দেখাতে, যাদের বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।

SELECT salesperson_id, SUM(sale_amount) AS total_sales
FROM Sales
GROUP BY salesperson_id
HAVING SUM(sale_amount) >= 10000;

এখানে, HAVING SUM(sale_amount) >= 10000 গ্রুপগুলির মধ্যে শুধুমাত্র সেইগুলো ফেরত দেবে, যেগুলির মোট বিক্রয়ের পরিমাণ ১০,০০০ টাকা বা তার বেশি।


সারসংক্ষেপ

  • Aggregation: এটি ডেটাবেসের একাধিক রেকর্ডের উপর ভিত্তি করে একটি একক মান বের করার প্রক্রিয়া (যেমন COUNT(), SUM(), AVG(), MIN(), MAX() ফাংশন)।
  • Grouping: এটি ডেটাকে নির্দিষ্ট কলামের ভিত্তিতে গ্রুপে ভাগ করে, যাতে গ্রুপ অনুসারে অ্যাগ্রিগেটেড ফলাফল পাওয়া যায় (যেমন GROUP BY ক্লজ)।
  • HAVING: এটি GROUP BY এর ফলাফলকে ফিল্টার করতে ব্যবহৃত হয়, বিশেষ করে যখন গ্রুপগুলির উপর অ্যাগ্রিগেট ফাংশন প্রয়োগ করা হয়।

DB2-এ Aggregation এবং Grouping ব্যবহার করলে আপনি বিশাল ডেটাসেটকে সহজে বিশ্লেষণ এবং সংক্ষেপণ করতে পারবেন, যা ব্যবসায়ের সিদ্ধান্ত নেওয়ার ক্ষেত্রে গুরুত্বপূর্ণ ভূমিকা পালন করে।

common.content_added_by
টপ রেটেড অ্যাপ

স্যাট অ্যাকাডেমী অ্যাপ

আমাদের অল-ইন-ওয়ান মোবাইল অ্যাপের মাধ্যমে সীমাহীন শেখার সুযোগ উপভোগ করুন।

ভিডিও
লাইভ ক্লাস
এক্সাম
ডাউনলোড করুন
Promotion