T-SQL (Transact-SQL) হল SQL Server-এর জন্য ব্যবহৃত একটি প্রোগ্রামিং ভাষা, যা SQL-এর মৌলিক স্ট্রাকচারের উপর ভিত্তি করে তৈরি। T-SQL এর স্ট্রাকচার কিছু নির্দিষ্ট মূল উপাদান দিয়ে তৈরি যা ডেটাবেস অপারেশন ও প্রোগ্রামিং লজিককে সহায়তা করে। এই স্ট্রাকচারটি T-SQL কোডকে আরও কার্যকরী এবং শক্তিশালী করে তোলে।
নিচে T-SQL এর বেসিক স্ট্রাকচার সম্পর্কে বিস্তারিত আলোচনা করা হল:
১. T-SQL কমান্ড স্টেটমেন্ট
T-SQL কোডে বিভিন্ন কমান্ড স্টেটমেন্ট থাকে যা SQL ডেটাবেস অপারেশন সম্পাদন করে। সবচেয়ে সাধারণ স্টেটমেন্টগুলো হল:
- SELECT: ডেটা নির্বাচন করা
- INSERT: ডেটা ইনসার্ট করা
- UPDATE: ডেটা আপডেট করা
- DELETE: ডেটা মুছে ফেলা
উদাহরণ:
SELECT * FROM Employees;
INSERT INTO Employees (Name, Position) VALUES ('John Doe', 'Manager');
UPDATE Employees SET Position = 'Senior Manager' WHERE Name = 'John Doe';
DELETE FROM Employees WHERE Name = 'John Doe';
২. ভেরিয়েবল ডিক্লেয়ারেশন এবং ব্যবহার
T-SQL তে ভেরিয়েবল ডিক্লেয়ার করা হয় এবং পরে সেগুলি ডেটা ধারণ করতে ব্যবহার করা হয়। ভেরিয়েবল ডিক্লেয়ার করতে DECLARE স্টেটমেন্ট ব্যবহার করা হয়, এবং তাদের মান সেট করতে SET বা SELECT স্টেটমেন্ট ব্যবহার করা হয়।
উদাহরণ:
DECLARE @EmployeeName VARCHAR(50);
SET @EmployeeName = 'John Doe';
SELECT @EmployeeName;
৩. কন্ট্রোল ফ্লো স্টেটমেন্ট
T-SQL বিভিন্ন কন্ট্রোল ফ্লো স্টেটমেন্ট প্রদান করে, যা কোডের কার্যকারিতা নিয়ন্ত্রণ করে। এগুলোর মধ্যে IF...ELSE, WHILE, এবং BEGIN...END অন্তর্ভুক্ত।
IF...ELSE: শর্তবদ্ধ লজিকের জন্য ব্যবহার হয়।WHILE: লুপিং স্টেটমেন্ট, যা নির্দিষ্ট শর্ত পুরণ না হওয়া পর্যন্ত কোড একাধিকবার এক্সিকিউট করে।BEGIN...END: একাধিক স্টেটমেন্ট একত্রে গ্রুপ করতে ব্যবহার হয়।
উদাহরণ:
DECLARE @Age INT = 30;
IF @Age >= 18
PRINT 'Adult';
ELSE
PRINT 'Not an adult';
DECLARE @Counter INT = 1;
WHILE @Counter <= 5
BEGIN
PRINT @Counter;
SET @Counter = @Counter + 1;
END
৪. স্টোরড প্রসিডিউর
T-SQL এ স্টোরড প্রসিডিউর হল একটি গ্রুপকৃত SQL কোড, যা একাধিক SQL স্টেটমেন্ট একসাথে রান করতে সাহায্য করে। এটি ডেটাবেসে সংরক্ষণ করা হয় এবং পরে পুনরায় ব্যবহার করা যায়।
- CREATE PROCEDURE: স্টোরড প্রসিডিউর তৈরি করতে।
- EXECUTE: স্টোরড প্রসিডিউর চালাতে।
উদাহরণ:
CREATE PROCEDURE GetEmployeeInfo
AS
BEGIN
SELECT Name, Position FROM Employees;
END;
EXEC GetEmployeeInfo;
৫. ফাংশন
T-SQL এ ফাংশন হল কাস্টম SQL কোড যা একটি নির্দিষ্ট কাজ সম্পাদন করে এবং একক মান রিটার্ন করে। এটি CREATE FUNCTION দিয়ে তৈরি হয় এবং SELECT স্টেটমেন্টে ব্যবহার করা যায়।
উদাহরণ:
CREATE FUNCTION GetTotalAmount (@OrderID INT)
RETURNS DECIMAL
AS
BEGIN
DECLARE @TotalAmount DECIMAL;
SELECT @TotalAmount = SUM(Amount) FROM OrderDetails WHERE OrderID = @OrderID;
RETURN @TotalAmount;
END;
SELECT dbo.GetTotalAmount(1);
৬. ট্রানজ্যাকশন এবং এক্সেপশন হ্যান্ডলিং
T-SQL তে ট্রানজ্যাকশন এবং এক্সেপশন হ্যান্ডলিং অত্যন্ত গুরুত্বপূর্ণ। BEGIN TRANSACTION, COMMIT, এবং ROLLBACK স্টেটমেন্টগুলো দিয়ে ট্রানজ্যাকশন পরিচালিত হয়, এবং TRY...CATCH ব্লক দিয়ে এক্সেপশন হ্যান্ডলিং করা হয়।
- BEGIN TRANSACTION: একটি ট্রানজ্যাকশন শুরু করতে।
- COMMIT: ট্রানজ্যাকশন সফল হলে পরিবর্তন সঞ্চয় করতে।
- ROLLBACK: ট্রানজ্যাকশন বাতিল করতে।
উদাহরণ:
BEGIN TRY
BEGIN TRANSACTION;
UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1;
UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 2;
COMMIT;
END TRY
BEGIN CATCH
ROLLBACK;
PRINT 'Error: ' + ERROR_MESSAGE();
END CATCH
৭. ইনডেক্স এবং কুয়েরি অপ্টিমাইজেশন
T-SQL এ ইনডেক্স ব্যবহার করা হয় ডেটাবেসের অনুসন্ধান দ্রুত করতে এবং কুয়েরি অপ্টিমাইজেশন করার জন্য কিছু বিশেষ কৌশল প্রয়োগ করা হয়।
- CREATE INDEX: একটি নতুন ইনডেক্স তৈরি করতে।
- WITH (NOLOCK): নির্দিষ্ট কুয়েরিতে লক এড়াতে।
উদাহরণ:
CREATE INDEX idx_EmployeeName ON Employees(Name);
সারাংশ
T-SQL এর বেসিক স্ট্রাকচার হল একটি শক্তিশালী প্রোগ্রামিং ভাষা যা SQL Server-এ ডেটাবেস অপারেশন সম্পাদন করতে ব্যবহৃত হয়। এতে ভেরিয়েবল ডিক্লেয়ারেশন, কন্ট্রোল ফ্লো, স্টোরড প্রসিডিউর, ফাংশন, ট্রানজ্যাকশন, এক্সেপশন হ্যান্ডলিং এবং কুয়েরি অপ্টিমাইজেশনসহ বিভিন্ন কার্যকারিতা রয়েছে। T-SQL ডেভেলপারদের জন্য SQL Server-এ ডেটাবেস পরিচালনা এবং কাস্টম কার্যক্রম সম্পাদন করতে একটি অত্যন্ত শক্তিশালী এবং কার্যকরী টুল।
T-SQL (Transact-SQL) হল SQL এর একটি এক্সটেনশন যা Microsoft SQL Server এবং Azure SQL Database-এ ব্যবহৃত হয়। T-SQL-এর মধ্যে SQL-এর মৌলিক স্ট্রাকচারগুলির পাশাপাশি অতিরিক্ত প্রোগ্রামিং ক্ষমতা, যেমন কন্ট্রোল ফ্লো, এক্সেপশন হ্যান্ডলিং, স্টোরড প্রসিডিউর, এবং ফাংশন তৈরি করার সুবিধা রয়েছে। নিচে T-SQL এর মৌলিক স্ট্রাকচার বিস্তারিতভাবে আলোচনা করা হলো।
১. T-SQL কমান্ড
T-SQL কোডের মূল স্ট্রাকচার SQL এর মতোই। এটি মূলত ডেটাবেস পরিচালনার জন্য বিভিন্ন কমান্ড ও স্টেটমেন্ট ব্যবহার করে। কিছু গুরুত্বপূর্ণ T-SQL কমান্ডের মধ্যে রয়েছে:
- SELECT: ডেটা নির্বাচন করার জন্য ব্যবহৃত হয়।
- INSERT: নতুন ডেটা ইনসার্ট করার জন্য ব্যবহৃত হয়।
- UPDATE: বিদ্যমান ডেটা আপডেট করার জন্য ব্যবহৃত হয়।
- DELETE: ডেটা মুছে ফেলার জন্য ব্যবহৃত হয়।
উদাহরণ:
-- ডেটা নির্বাচন
SELECT * FROM Employees;
-- নতুন ডেটা ইনসার্ট
INSERT INTO Employees (Name, Position) VALUES ('John Doe', 'Manager');
-- ডেটা আপডেট
UPDATE Employees SET Position = 'Senior Manager' WHERE Name = 'John Doe';
-- ডেটা মুছে ফেলা
DELETE FROM Employees WHERE Name = 'John Doe';
২. কন্ট্রোল ফ্লো স্টেটমেন্ট
T-SQL প্রোগ্রামিং ভাষা হিসেবে কন্ট্রোল ফ্লো স্টেটমেন্ট সমর্থন করে, যা কোডের মধ্যে লজিক্যাল কন্ট্রোল প্রদান করে। এর মধ্যে রয়েছে:
- IF...ELSE: শর্তভিত্তিক সিদ্ধান্ত নিতে ব্যবহৃত হয়।
- WHILE: লুপের মাধ্যমে কোড একাধিক বার চলানোর জন্য ব্যবহৃত হয়।
- BEGIN...END: একাধিক স্টেটমেন্ট একসাথে গ্রুপ করতে ব্যবহৃত হয়।
উদাহরণ:
-- IF...ELSE ব্যবহার
IF (SELECT COUNT(*) FROM Employees) > 10
PRINT 'More than 10 employees';
ELSE
PRINT 'Less than 10 employees';
-- WHILE লুপ ব্যবহার
DECLARE @Counter INT = 1;
WHILE @Counter <= 5
BEGIN
PRINT @Counter;
SET @Counter = @Counter + 1;
END;
৩. ভেরিয়েবল ঘোষণা এবং ব্যবহার
T-SQL এ ডেটাবেসের মধ্যে ডেটা ধারণ করার জন্য ভেরিয়েবল ব্যবহার করা যায়। ভেরিয়েবলগুলি DECLARE স্টেটমেন্টের মাধ্যমে ঘোষণা করা হয় এবং এগুলোর মান SET বা SELECT INTO দ্বারা নির্ধারণ করা হয়।
উদাহরণ:
-- ভেরিয়েবল ঘোষণা
DECLARE @EmployeeCount INT;
-- ভেরিয়েবলের মান নির্ধারণ
SET @EmployeeCount = (SELECT COUNT(*) FROM Employees);
-- ভেরিয়েবল ব্যবহার
PRINT @EmployeeCount;
৪. এক্সেপশন হ্যান্ডলিং
T-SQL তে এক্সেপশন হ্যান্ডলিংয়ের জন্য TRY...CATCH ব্লক ব্যবহার করা হয়। এটি কোডের মধ্যে ত্রুটি ঘটলে তা ধরা এবং যথাযথভাবে সমাধান করা সম্ভব করে।
উদাহরণ:
BEGIN TRY
-- ত্রুটি ঘটতে পারে এমন কোড
INSERT INTO Employees (Name, Position) VALUES ('Jane Doe', 'Developer');
END TRY
BEGIN CATCH
-- ত্রুটি হলে বার্তা প্রিন্ট করা
PRINT 'Error: ' + ERROR_MESSAGE();
END CATCH;
৫. স্টোরড প্রসিডিউর
T-SQL এ স্টোরড প্রসিডিউর হল একাধিক SQL স্টেটমেন্টের সমষ্টি যা SQL Server ডেটাবেসে সংরক্ষিত থাকে এবং প্রয়োজনে পুনরায় চালানো যায়। স্টোরড প্রসিডিউর তৈরির জন্য CREATE PROCEDURE ব্যবহার করা হয়।
উদাহরণ:
-- স্টোরড প্রসিডিউর তৈরি
CREATE PROCEDURE GetEmployeeDetails
AS
BEGIN
SELECT Name, Position FROM Employees;
END;
-- স্টোরড প্রসিডিউর কল করা
EXEC GetEmployeeDetails;
৬. ফাংশন
T-SQL এ ফাংশনও তৈরি করা যায়, যা একটি নির্দিষ্ট মান রিটার্ন করে। ফাংশনগুলি সাধারণত একটি নির্দিষ্ট কাজ সম্পাদন করে এবং ডেটাবেসে পুনরায় ব্যবহারের জন্য তৈরি করা হয়।
উদাহরণ:
-- ফাংশন তৈরি
CREATE FUNCTION GetEmployeeCount()
RETURNS INT
AS
BEGIN
DECLARE @Count INT;
SELECT @Count = COUNT(*) FROM Employees;
RETURN @Count;
END;
-- ফাংশন কল করা
SELECT dbo.GetEmployeeCount();
৭. ট্রানজ্যাকশন
T-SQL এ ট্রানজ্যাকশন ব্যবস্থাপনা করার জন্য BEGIN TRANSACTION, COMMIT, এবং ROLLBACK ব্যবহার করা হয়। এটি নিশ্চিত করে যে সমস্ত অপারেশন সঠিকভাবে সম্পন্ন হলে ডেটাবেসে পরিবর্তন হবে, অন্যথায় সবকিছু রোলব্যাক হয়ে যাবে।
উদাহরণ:
BEGIN TRANSACTION;
-- ডেটা আপডেট
UPDATE Accounts SET Balance = Balance - 100 WHERE AccountID = 1;
UPDATE Accounts SET Balance = Balance + 100 WHERE AccountID = 2;
-- সবকিছু সঠিক হলে পরিবর্তন সঞ্চয়
COMMIT;
৮. কাস্টম ডেটা টাইপ এবং টেবিল
T-SQL এ কাস্টম ডেটা টাইপ এবং টেবিল তৈরি করা যায়, যা ডেটাবেসের মধ্যে বিশেষ ধরনের তথ্য সংরক্ষণের জন্য ব্যবহৃত হয়।
উদাহরণ:
-- কাস্টম ডেটা টাইপ তৈরি
CREATE TYPE EmployeeType AS TABLE (
EmployeeID INT,
Name VARCHAR(100),
Position VARCHAR(50)
);
-- কাস্টম টেবিল তৈরি
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY,
Name VARCHAR(100),
Position VARCHAR(50)
);
সারাংশ
T-SQL-এর মৌলিক স্ট্রাকচার মূলত SQL এর উপর ভিত্তি করে তৈরি, তবে এতে প্রোগ্রামিং ক্ষমতা ও অতিরিক্ত বৈশিষ্ট্য যোগ করা হয়েছে। T-SQL ব্যবহার করে ডেটাবেস অপারেশন, কন্ট্রোল ফ্লো, এক্সেপশন হ্যান্ডলিং, স্টোরড প্রসিডিউর, ফাংশন, ট্রানজ্যাকশন, এবং কাস্টম ডেটা টাইপ তৈরি করা যায়, যা SQL Server-এর কার্যকারিতা আরও উন্নত এবং কাস্টমাইজড করে তোলে।
T-SQL এ DECLARE, SET, এবং SELECT তিনটি কমান্ড ব্যবহার করা হয় ভেরিয়েবল ডিক্লেয়ার এবং তাদের মান অ্যাসাইন করার জন্য। এগুলি SQL Server-এর মধ্যে ডেটাবেস অপারেশন ও লজিক্যাল কন্ট্রোল পরিচালনা করতে ব্যবহৃত হয়। নিচে এই তিনটি কমান্ডের ব্যবহার ব্যাখ্যা করা হলো।
১. DECLARE
DECLARE কমান্ড T-SQL-এ ভেরিয়েবল ডিক্লেয়ার করার জন্য ব্যবহৃত হয়। এই কমান্ডটি আপনাকে একটি ভেরিয়েবল তৈরি করতে দেয় এবং সেই ভেরিয়েবলের জন্য একটি ডেটা টাইপ নির্ধারণ করতে হয়।
ব্যবহার:
DECLARE @VariableName DataType;
এখানে:
@VariableName: ভেরিয়েবলের নাম (প্রত্যেক ভেরিয়েবলের নামের আগে@চিহ্ন ব্যবহার করতে হয়)DataType: ভেরিয়েবলের ডেটা টাইপ (যেমন:INT,VARCHAR,DATE, ইত্যাদি)
উদাহরণ:
DECLARE @Age INT;
DECLARE @Name VARCHAR(50);
এখানে আমরা @Age নামক একটি INT টাইপ ভেরিয়েবল এবং @Name নামক একটি VARCHAR টাইপ ভেরিয়েবল ডিক্লেয়ার করেছি।
২. SET
SET কমান্ডটি ব্যবহৃত হয় ডিক্লেয়ার করা ভেরিয়েবলে একটি নির্দিষ্ট মান অ্যাসাইন করার জন্য। SET কমান্ডটি এক বা একাধিক ভেরিয়েবলের জন্য মান সেট করতে ব্যবহৃত হয়।
ব্যবহার:
SET @VariableName = Value;
উদাহরণ:
SET @Age = 25;
SET @Name = 'John Doe';
এখানে, @Age ভেরিয়েবলকে 25 মান দেওয়া হয়েছে এবং @Name ভেরিয়েবলকে 'John Doe' মান দেওয়া হয়েছে।
৩. SELECT
SELECT কমান্ডটি ভেরিয়েবলকে মান অ্যাসাইন করার জন্যও ব্যবহার করা যেতে পারে, এবং এটি SET এর তুলনায় একাধিক ভেরিয়েবলের মান একযোগে অ্যাসাইন করতে পারে। SELECT সাধারণত ডেটাবেস থেকে ডেটা নির্বাচন করতে ব্যবহৃত হয়, তবে ভেরিয়েবল সেট করার ক্ষেত্রে এটিও কার্যকরী।
ব্যবহার:
SELECT @VariableName = Value;
উদাহরণ:
SELECT @Age = 30, @Name = 'Jane Smith';
এখানে SELECT দিয়ে একই সাথে @Age ভেরিয়েবলকে 30 এবং @Name ভেরিয়েবলকে 'Jane Smith' মান দেওয়া হয়েছে।
SELECT স্টেটমেন্ট একাধিক ভেরিয়েবলকে একযোগে অ্যাসাইন করার জন্য আরও উপযুক্ত। তবে, SET একটি ভেরিয়েবলে একক মান অ্যাসাইন করার ক্ষেত্রে আরও নিরাপদ এবং নির্দিষ্ট।
বিভিন্ন পরিস্থিতিতে ব্যবহারের পার্থক্য
DECLARE: ব্যবহৃত হয় ভেরিয়েবল ডিক্লেয়ার করার জন্য।SET: ব্যবহৃত হয় একক ভেরিয়েবলে মান সেট করার জন্য। এটি একটি নিরাপদ এবং নির্দিষ্ট পদ্ধতি।SELECT: ব্যবহৃত হয় একাধিক ভেরিয়েবলে মান অ্যাসাইন করার জন্য। যদিও এটি কার্যকরী, তবে এতে কিছু পারফরম্যান্স সমস্যা হতে পারে যদি কোনো ভেরিয়েবলে null মান আসে।
সারাংশ
DECLAREকমান্ড ভেরিয়েবল ডিক্লেয়ার করতে ব্যবহৃত হয়।SETএক বা একাধিক ভেরিয়েবলের জন্য মান অ্যাসাইন করার জন্য ব্যবহৃত হয়।SELECTকমান্ডও ভেরিয়েবলকে মান অ্যাসাইন করার জন্য ব্যবহার করা যেতে পারে, তবে একাধিক ভেরিয়েবলের মান একযোগে সেট করতে এটি বেশি সুবিধাজনক।
এটি SQL Server তে ভেরিয়েবল ব্যবস্থাপনার জন্য গুরুত্বপূর্ণ কমান্ডগুলো।
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 এর গুরুত্বপূর্ণ অংশ এবং ডেটাবেস অপারেশনগুলিকে আরও কাস্টমাইজড এবং কার্যকরী করতে সহায়তা করে।
T-SQL (Transact-SQL) বিভিন্ন ধরনের ডেটা টাইপ প্রদান করে, যা ডেটাবেসে বিভিন্ন ধরনের ডেটা সঞ্চয় এবং পরিচালনা করার জন্য ব্যবহৃত হয়। T-SQL-এর ডেটা টাইপগুলি সাধারণত সংখ্যা, স্ট্রিং, তারিখ ও সময়, বুলিয়ান, বাইনারি, ইন্টারঅফেস, ইউনিক আইডেন্টিফায়ার ইত্যাদির জন্য বিভিন্ন শ্রেণিতে ভাগ করা যায়।
এখানে T-SQL-এ ব্যবহৃত কিছু প্রধান ডেটা টাইপ এবং তাদের ব্যাখ্যা দেওয়া হলো:
১. সংখ্যা (Numeric Types)
- INT:
- একটি পূর্ণসংখ্যা (integer) ডেটা টাইপ যা -2,147,483,648 থেকে 2,147,483,647 পর্যন্ত মান ধারণ করতে পারে।
- সিনট্যাক্স:
INT
- BIGINT:
- বৃহত্তর পরিসরের পূর্ণসংখ্যা (integer) ডেটা টাইপ যা -9,223,372,036,854,775,808 থেকে 9,223,372,036,854,775,807 পর্যন্ত মান ধারণ করতে পারে।
- সিনট্যাক্স:
BIGINT
- SMALLINT:
- ছোট পরিসরের পূর্ণসংখ্যা ডেটা টাইপ যা -32,768 থেকে 32,767 পর্যন্ত মান ধারণ করতে পারে।
- সিনট্যাক্স:
SMALLINT
- TINYINT:
- খুব ছোট পূর্ণসংখ্যা ডেটা টাইপ যা 0 থেকে 255 পর্যন্ত মান ধারণ করতে পারে।
- সিনট্যাক্স:
TINYINT
- DECIMAL / NUMERIC:
- সঠিক দশমিক সংখ্যা ধারণ করার জন্য ব্যবহৃত হয়। এই ধরনের ডেটা টাইপের দুটি উপাদান থাকে: প্রথমটি হলো প্যাসিশন সংখ্যা এবং দ্বিতীয়টি হলো স্কেল। উদাহরণস্বরূপ,
DECIMAL(10,2)এর মান হবে 10 ডিজিট, যার মধ্যে 2 ডিজিট দশমিকের পর থাকবে। - সিনট্যাক্স:
DECIMAL(precision, scale)
- সঠিক দশমিক সংখ্যা ধারণ করার জন্য ব্যবহৃত হয়। এই ধরনের ডেটা টাইপের দুটি উপাদান থাকে: প্রথমটি হলো প্যাসিশন সংখ্যা এবং দ্বিতীয়টি হলো স্কেল। উদাহরণস্বরূপ,
- FLOAT:
- আছড়ানো দশমিক সংখ্যা (floating point) ডেটা টাইপ। এটি বড় বা ছোট সংখ্যার জন্য ব্যবহৃত হয়।
- সিনট্যাক্স:
FLOAT
- REAL:
- ছোট আছড়ানো দশমিক সংখ্যা,
FLOATএর একটি ছোট সংস্করণ। - সিনট্যাক্স:
REAL
- ছোট আছড়ানো দশমিক সংখ্যা,
২. স্ট্রিং (String Types)
- CHAR:
- একটি স্থায়ী দৈর্ঘ্য (fixed-length) চর (character) ডেটা টাইপ। এটি নির্দিষ্ট আকারের স্ট্রিং ধারণ করে।
- সিনট্যাক্স:
CHAR(length)
- VARCHAR:
- একটি পরিবর্তনশীল দৈর্ঘ্য (variable-length) চর ডেটা টাইপ, যা আসল স্ট্রিং এর আকার অনুযায়ী স্টোর হয়।
- সিনট্যাক্স:
VARCHAR(length)
- TEXT:
- দীর্ঘ টেক্সট স্ট্রিং ধারণ করার জন্য ব্যবহৃত হয়। এটি 2^31-1 চর ধারণ করতে সক্ষম।
- সিনট্যাক্স:
TEXT
- NCHAR:
- ইউনিকোড (Unicode) ক্যারেক্টার ধারণ করার জন্য ব্যবহৃত হয়, যেখানে আকার ثابت থাকে।
- সিনট্যাক্স:
NCHAR(length)
- NVARCHAR:
- ইউনিকোড স্ট্রিং ধারণ করতে ব্যবহৃত হয়, যেখানে স্ট্রিংটির দৈর্ঘ্য পরিবর্তনশীল থাকে।
- সিনট্যাক্স:
NVARCHAR(length)
- NTEXT:
- ইউনিকোড টেক্সট ডেটা ধারণ করতে ব্যবহৃত হয়। এটি খুব বড় টেক্সট ধারণ করতে সক্ষম।
- সিনট্যাক্স:
NTEXT
৩. তারিখ ও সময় (Date and Time Types)
- DATE:
- তারিখ ধারণ করে (কেবল বছর, মাস, দিন)।
- সিনট্যাক্স:
DATE
- TIME:
- সময় ধারণ করে (কেবল ঘন্টা, মিনিট, সেকেন্ড, মিলিসেকেন্ড)।
- সিনট্যাক্স:
TIME
- DATETIME:
- তারিখ ও সময় একসাথে ধারণ করে (এটি 1753 থেকে 9999 সাল পর্যন্ত তারিখ ধারণ করতে সক্ষম)।
- সিনট্যাক্স:
DATETIME
- DATETIME2:
- আরও উন্নত ফর্ম্যাট যা সেকেন্ডের সঠিকতা পর্যন্ত সময় ধারণ করতে সক্ষম।
- সিনট্যাক্স:
DATETIME2
- SMALLDATETIME:
- ছোট পরিসরের তারিখ ও সময় (যেমন 1900 থেকে 2079 পর্যন্ত) ধারণ করতে সক্ষম।
- সিনট্যাক্স:
SMALLDATETIME
- TIMESTAMP:
- সময়ের একটি স্ট্যাম্প ধারণ করে, তবে এটি ইউনিকোড হিসেবে ব্যবহার করা হয় এবং বর্তমান সময়ের ট্যাম্প তৈরি করতে ব্যবহৃত হয়।
- সিনট্যাক্স:
TIMESTAMP
৪. বুলিয়ান (Boolean Types)
- BIT:
- 0 বা 1 এর মান ধারণ করতে পারে, যা বুলিয়ান মান হিসেবে ব্যবহৃত হয়।
- সিনট্যাক্স:
BIT
৫. বাইনারি (Binary Types)
- BINARY:
- একটি স্থায়ী দৈর্ঘ্য বাইনারি ডেটা টাইপ, যেমন একটি স্থায়ী সাইজের বাইট সিকোয়েন্স।
- সিনট্যাক্স:
BINARY(length)
- VARBINARY:
- একটি পরিবর্তনশীল দৈর্ঘ্য বাইনারি ডেটা টাইপ, যা বাইট সিকোয়েন্স ধারণ করে।
- সিনট্যাক্স:
VARBINARY(length)
- IMAGE:
- বড় আকারের বাইনারি ডেটা ধারণ করার জন্য ব্যবহৃত হয়, যেমন ছবি বা ফাইল।
- সিনট্যাক্স:
IMAGE
৬. ইউনিক আইডেন্টিফায়ার (Unique Identifier)
- UNIQUEIDENTIFIER:
- একটি GUID (Globally Unique Identifier) বা ইউনিক আইডেন্টিফায়ার ধারণ করার জন্য ব্যবহৃত হয়। এটি একটি বিশেষ ধরনের আইডেন্টিফায়ার যা সাধারণত প্রোগ্রামিংয়ে ব্যবহার করা হয়।
- সিনট্যাক্স:
UNIQUEIDENTIFIER
সারাংশ
T-SQL বিভিন্ন ডেটা টাইপ প্রদান করে যা ডেটাবেসের ডেটা সংরক্ষণের জন্য ব্যবহৃত হয়। এই ডেটা টাইপগুলির মধ্যে পূর্ণসংখ্যা, দশমিক সংখ্যা, স্ট্রিং, তারিখ, সময়, বাইনারি ডেটা, এবং ইউনিক আইডেন্টিফায়ার অন্তর্ভুক্ত রয়েছে। বিভিন্ন ডেটা টাইপ নির্বাচন করার সময় আপনার ডেটার ধরন এবং প্রয়োজনে ভিত্তি করে টাইপ চয়েস করা উচিত।
Read more