JOINs এবং Subqueries এর ব্যবহার

Teradata SQL Basics - টেরাডেটা (Teradata) - Big Data and Analytics

293

Teradata একটি রিলেশনাল ডেটাবেস ম্যানেজমেন্ট সিস্টেম (RDBMS) এবং এতে JOINs ও Subqueries এর মাধ্যমে ডেটা সম্পর্কিত বিভিন্ন প্রশ্নের সমাধান করা হয়। JOINs এবং Subqueries দুটি শক্তিশালী টুল যা ডেটাবেস থেকে ডেটা একত্রিত বা বিশ্লেষণ করতে সহায়তা করে।


JOINs এর ব্যবহার

JOIN হল দুটি বা তার বেশি টেবিলের মধ্যে সম্পর্ক স্থাপন করার একটি SQL পদ্ধতি, যেখানে একটি সাধারণ কলামের মাধ্যমে টেবিলগুলোকে যুক্ত করা হয়। Teradata তে বিভিন্ন ধরনের JOIN ব্যবহার করা যেতে পারে, যা ডেটাকে একত্রিত করতে বা ফিল্টার করতে সহায়তা করে।

1. INNER JOIN

INNER JOIN দুটি টেবিলের মধ্যে শুধুমাত্র মিল থাকা রেকর্ডগুলোকেই ফেরত দেয়। অর্থাৎ, যদি দুটি টেবিলের মধ্যে কোনো সম্পর্ক না থাকে তবে সেই রেকর্ডগুলো রিটার্ন করা হয় না।

উদাহরণ:

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

এখানে, employees এবং departments টেবিলকে department_id কলামের মাধ্যমে যুক্ত করা হয়েছে এবং শুধু তাদের মিল থাকা রেকর্ডগুলো দেখানো হবে।

2. LEFT JOIN (LEFT OUTER JOIN)

LEFT JOIN প্রথম টেবিলের সমস্ত রেকর্ড এবং দ্বিতীয় টেবিলের মিল থাকা রেকর্ডগুলো ফেরত দেয়। যদি দ্বিতীয় টেবিলে মিল না থাকে, তবে NULL মান ফেরত আসে।

উদাহরণ:

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

এখানে, employees টেবিলের সমস্ত রেকর্ড এবং তাদের সাথে মিলে যাওয়া departments টেবিলের রেকর্ডগুলো পাওয়া যাবে। যদি কোনো employee এর জন্য কোনো department না থাকে, তবে সেই employee এর জন্য department_name NULL হবে।

3. RIGHT JOIN (RIGHT OUTER JOIN)

RIGHT JOIN ঠিক উল্টোভাবে কাজ করে, যেখানে দ্বিতীয় টেবিলের সমস্ত রেকর্ড এবং প্রথম টেবিলের মিল থাকা রেকর্ডগুলো ফেরত দেওয়া হয়।

উদাহরণ:

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

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

4. FULL JOIN (FULL OUTER JOIN)

FULL JOIN দুটি টেবিলের সমস্ত রেকর্ড ফিরিয়ে দেয়, যেখানে মিল না থাকলে NULL মান দেখানো হয়।

উদাহরণ:

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

এখানে, উভয় টেবিলের সমস্ত রেকর্ড দেখানো হবে, এবং যেখানে কোনো মিল নেই সেখানে NULL থাকবে।


Subqueries এর ব্যবহার

Subquery হল একটি SQL কুয়েরি যা অন্য একটি কুয়েরির মধ্যে ব্যবহার করা হয়। এটি মূল কুয়েরির ডেটা প্রক্রিয়াকরণে সহায়তা করে এবং সাধারণত WHERE, FROM বা SELECT ক্লজে ব্যবহার করা হয়। Teradata তে Subqueries ব্যবহার করা হয় বিভিন্ন স্তরের ডেটা বিশ্লেষণ বা ফিল্টার করার জন্য।

1. WHERE ক্লজে Subquery

Subquery মূল কুয়েরির WHERE ক্লজে ব্যবহার করা হয়, যাতে একটি নির্দিষ্ট শর্তের ভিত্তিতে রেকর্ড নির্বাচন করা যায়।

উদাহরণ:

SELECT employee_id, name
FROM employees
WHERE department_id IN (SELECT department_id FROM departments WHERE department_name = 'Sales');

এখানে, প্রথম কুয়েরি employees টেবিল থেকে শুধুমাত্র সেই রেকর্ডগুলো নির্বাচন করবে, যেখানে department_id Sales বিভাগের সাথে মেলে।

2. FROM ক্লজে Subquery

Subquery কে মূল কুয়েরির FROM ক্লজে ব্যবহার করে একটি অন্তর্নিহিত টেবিল হিসেবে ব্যবহার করা হয়।

উদাহরণ:

SELECT department_name, AVG(salary)
FROM (SELECT employees.salary, departments.department_name 
      FROM employees
      INNER JOIN departments ON employees.department_id = departments.department_id) AS dept_salaries
GROUP BY department_name;

এখানে, একটি Subquery প্রথমে employees এবং departments টেবিলকে JOIN করে এবং তারপর মূল কুয়েরি সেই ডেটার উপর গড় বেতন (AVG) হিসাব করে।

3. SELECT ক্লজে Subquery

SELECT ক্লজে Subquery ব্যবহার করে একটি একক মান বা ফলাফল নির্বাচন করা যায়।

উদাহরণ:

SELECT employee_id, name, (SELECT MAX(salary) FROM employees) AS max_salary
FROM employees;

এখানে, Subquery employees টেবিল থেকে সর্বোচ্চ বেতন (MAX salary) বের করবে এবং সেই মানকে মূল কুয়েরির সাথে যোগ করবে।

4. Correlated Subquery

Correlated Subquery এমন একটি Subquery, যা মূল কুয়েরির প্রতিটি রেকর্ডের জন্য পুনরায় চালানো হয় এবং মূল কুয়েরির কলামের মানের সাথে সম্পর্কিত হয়।

উদাহরণ:

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

এখানে, প্রতিটি employee এর বেতন department_id এর গড় বেতনের তুলনায় বেশি কিনা, তা যাচাই করা হচ্ছে। Subquery প্রতিটি employee এর জন্য পুনরায় গড় বেতন বের করবে।


সারাংশ

Teradata তে JOINs এবং Subqueries ডেটাবেস থেকে ডেটা বিশ্লেষণ এবং একত্রিত করার জন্য অত্যন্ত গুরুত্বপূর্ণ টুল। JOINs টেবিলের মধ্যে সম্পর্ক স্থাপন করে বিভিন্ন ধরণের তথ্য একত্রিত করতে সাহায্য করে, যেমন INNER JOIN, LEFT JOIN, RIGHT JOIN, এবং FULL JOIN। অপরদিকে, Subqueries মূল কুয়েরিতে অন্তর্নিহিত কুয়েরি হিসেবে ব্যবহৃত হয় এবং বিভিন্ন ধাপে ডেটা ফিল্টার, বিশ্লেষণ এবং প্রক্রিয়া করতে সহায়তা করে। Subqueries সাধারণত WHERE, FROM, অথবা SELECT ক্লজে ব্যবহার করা হয় এবং প্রয়োজনে Correlated Subqueries দিয়েও গঠন করা যায়।

Content added By
Promotion

Are you sure to start over?

Loading...