T-SQL (Transact-SQL) একটি শক্তিশালী SQL ভাষার এক্সটেনশন, যা ডেটাবেসের বিভিন্ন অপারেশন এবং প্রোগ্রামিং কার্যক্রম করতে ব্যবহৃত হয়। T-SQL-এ ভেরিয়েবল ব্যবহার করা যায়, যেগুলি Scalar এবং Table ভেরিয়েবলে বিভক্ত। প্রতিটি ভেরিয়েবলের ভূমিকা এবং ব্যবহারের ক্ষেত্র আলাদা।
১. Scalar ভেরিয়েবল
Scalar ভেরিয়েবল হল একক মান ধারণ করে এমন ভেরিয়েবল। এটি সাধারণত একটি নির্দিষ্ট ডেটা টাইপের একটি একক মান ধারণ করে এবং বিভিন্ন ডেটাবেস অপারেশনে ব্যবহার করা হয়। Scalar ভেরিয়েবলগুলি ইনটিজার, ভ্যারচার, ডেট, ফ্লোট, বা অন্যান্য ডেটা টাইপ ধারণ করতে পারে।
Scalar ভেরিয়েবল ঘোষণা এবং ব্যবহার:
DECLARE @MyVariable INT; -- Scalar ভেরিয়েবল ঘোষণা
SET @MyVariable = 100; -- ভেরিয়েবলে মান সেট করা
-- Scalar ভেরিয়েবল ব্যবহার
SELECT @MyVariable AS ScalarVariable; -- Scalar ভেরিয়েবলের মান দেখানো
Scalar ভেরিয়েবল ব্যবহার:
- DECLARE: ভেরিয়েবল ঘোষণা করা
- SET: ভেরিয়েবলে মান দেওয়া
- SELECT: ভেরিয়েবলটির মান বের করা
Scalar ভেরিয়েবল সাধারণত একক ডেটা টাইপ যেমন INT, VARCHAR, DATE, ইত্যাদির মান ধারণ করে এবং সহজ ডেটাবেস পরিচালনা করতে সহায়তা করে।
২. Table ভেরিয়েবল
Table ভেরিয়েবল হল একটি ভেরিয়েবল যা একটি পূর্ণ টেবিলের মতো কাজ করে, তবে এটি মূলত ডেটাবেসের একটি অস্থায়ী টেবিলের মত। Table ভেরিয়েবল একটি কাঠামো ধারণ করে, যার মধ্যে একাধিক রেকর্ড এবং কলাম থাকতে পারে। এটি সাধারণত ছোট ডেটা সংরক্ষণে ব্যবহৃত হয় এবং এর মাধ্যমে SQL কোডে টেবিলের মতো ডেটা রাখা যায়।
Table ভেরিয়েবল ঘোষণা এবং ব্যবহার:
DECLARE @MyTableVariable TABLE (ID INT, Name VARCHAR(50)); -- Table ভেরিয়েবল ঘোষণা
-- Table ভেরিয়েবলে ডেটা ইনসার্ট করা
INSERT INTO @MyTableVariable (ID, Name)
VALUES (1, 'John'), (2, 'Alice');
-- Table ভেরিয়েবলের ডেটা সিলেক্ট করা
SELECT * FROM @MyTableVariable;
Table ভেরিয়েবল ব্যবহার:
- DECLARE: Table ভেরিয়েবল ঘোষণা করা, যেখানে কলাম এবং ডেটা টাইপস নির্দিষ্ট করা হয়।
- INSERT INTO: Table ভেরিয়েবলে ডেটা ইনসার্ট করা।
- SELECT: Table ভেরিয়েবল থেকে ডেটা বের করা।
Table ভেরিয়েবল ডেটাবেসে টেম্পোরারি ডেটা কাজের জন্য ব্যবহৃত হয়, যেখানে সার্বক্ষণিক টেবিল তৈরি করার প্রয়োজন পড়ে না। এটি টেবিলের মতো আচরণ করে, যেমন ডেটা ইনসার্ট, আপডেট, সিলেক্ট, ইত্যাদি করা যায়।
৩. Scalar এবং Table ভেরিয়েবলের মধ্যে পার্থক্য
| বৈশিষ্ট্য | Scalar ভেরিয়েবল | Table ভেরিয়েবল |
|---|---|---|
| ভেরিয়েবলের ধরন | একক মান ধারণ করে (যেমন: INT, VARCHAR) | একটি টেবিলের মতো (কোলাম সহ ডেটা) |
| ব্যবহার | একক মান অথবা একটি সিংগেল ডেটা ধারণ করতে ব্যবহৃত | ডেটাবেসে অস্থায়ী টেবিলের মতো একাধিক রেকর্ড ধারণ করার জন্য ব্যবহৃত |
| ডেটা টাইপ | সিম্পল ডেটা টাইপ (যেমন: INT, DATE, VARCHAR) | টেবিলের কাঠামো (কলাম, ডেটা টাইপ সহ) |
| সীমাবদ্ধতা | একক মানের জন্য ব্যবহার করা হয়, একাধিক মান ধারণ করতে পারে না | একাধিক রেকর্ড এবং কলাম ধারণ করতে পারে |
| ব্যবহারের ক্ষেত্র | সাধারণত একক মানের হিসাব বা ফলাফল ধারন করতে ব্যবহৃত | টেবিলের মতো ডেটা স্টোরেজ এবং অস্থায়ী ডেটা হ্যান্ডলিংয়ের জন্য ব্যবহৃত |
| ডেটা পরিস্কার | স্কেলার ভেরিয়েবলের মান একবার সেট হলে, তা পরিবর্তন করা হয় | Table ভেরিয়েবল একটি স্কোপে ব্যবহার করা হয় এবং স্কোপের শেষে ডিলিট হয়ে যায় |
| পারফরম্যান্স | সহজ এবং দ্রুত, কিন্তু একাধিক রেকর্ড ধারণ করতে পারে না | স্লো হতে পারে যদি খুব বড় পরিমাণ ডেটা ব্যবহৃত হয় |
সারাংশ
- Scalar ভেরিয়েবল একক ডেটা মান ধারণ করে, যা একটি নির্দিষ্ট ডেটা টাইপে (যেমন
INT,VARCHAR,DATE) সংরক্ষিত হয় এবং সাধারণত একক মান বা ছোট হিসাবের জন্য ব্যবহৃত হয়। - Table ভেরিয়েবল একটি টেবিলের মতো একাধিক রেকর্ড ধারণ করতে পারে এবং অস্থায়ী ডেটা ব্যবস্থাপনার জন্য ব্যবহৃত হয়। এটি SQL Server-এ ছোট, অস্থায়ী টেবিল তৈরি করতে সহায়ক।
Scalar এবং Table ভেরিয়েবল উভয়ই T-SQL এর গুরুত্বপূর্ণ অংশ এবং ডেটাবেস অপারেশনগুলিকে আরও কাস্টমাইজড এবং কার্যকরী করতে সহায়তা করে।