T-SQL (Transact-SQL) তে দুটি ধরণের ফাংশন রয়েছে: Built-in Functions এবং User-Defined Functions (UDF)। এই ফাংশনগুলো ডেটাবেসে ডেটা ম্যানিপুলেশন ও বিশ্লেষণের জন্য ব্যবহৃত হয়।
1. Built-in Functions
Built-in Functions হল সেই ফাংশনগুলো যা SQL Server নিজেই সরবরাহ করে এবং ডেটাবেস অপারেশনকে আরও সহজ এবং কার্যকরী করতে সাহায্য করে। এগুলি ডেটা ম্যানিপুলেশন, গণনা, স্ট্রিং প্রসেসিং, তারিখ এবং সময় সম্পর্কিত কাজ ইত্যাদি করার জন্য ব্যবহার করা হয়।
Built-in Functions এর ধরন:
এ্যাগ্রিগেট ফাংশন (Aggregate Functions): এগুলি গ্রুপ করা ডেটার ওপর কাজ করে এবং একটি একক ফলাফল প্রদান করে।
COUNT(): রেকর্ডের সংখ্যা গণনা করা।SUM(): মানের যোগফল গণনা করা।AVG(): গড় মান বের করা।MIN()এবংMAX(): সর্বনিম্ন এবং সর্বোচ্চ মান বের করা।
উদাহরণ:
SELECT COUNT(*) FROM Employees; -- সমস্ত রেকর্ড গুনতে SELECT AVG(Salary) FROM Employees; -- গড় বেতন বের করাস্ট্রিং ফাংশন (String Functions): এগুলি স্ট্রিং ডেটার সাথে কাজ করে।
LEN(): স্ট্রিং এর দৈর্ঘ্য বের করা।UPPER()এবংLOWER(): স্ট্রিংকে বড়/ছোট অক্ষরে রূপান্তর করা।CONCAT(): দুটি বা তার বেশি স্ট্রিংকে একত্রিত করা।
উদাহরণ:
SELECT LEN('Hello') AS StringLength; -- 5 SELECT UPPER('hello') AS UpperString; -- 'HELLO'তারিখ এবং সময় ফাংশন (Date and Time Functions):
GETDATE(): বর্তমান তারিখ এবং সময় ফিরিয়ে দেয়।DATEADD(): নির্দিষ্ট তারিখে সময় যোগ করা।DATEDIFF(): দুটি তারিখের মধ্যে পার্থক্য বের করা।
উদাহরণ:
SELECT GETDATE(); -- বর্তমান তারিখ এবং সময় SELECT DATEADD(DAY, 5, GETDATE()); -- 5 দিন যোগ করানিউমেরিক ফাংশন (Numeric Functions):
ROUND(): একটি সংখ্যা রাউন্ড করা।ABS(): একটি সংখ্যার অভ্যন্তরীণ মান বের করা (নেগেটিভ মানের জন্য পজিটিভ মান)
উদাহরণ:
SELECT ROUND(123.456, 2); -- 123.46 SELECT ABS(-100); -- 100
2. User-Defined Functions (UDF)
User-Defined Functions (UDF) হল ফাংশনগুলি যা ব্যবহারকারী নিজে তৈরি করে। এগুলি বিশেষভাবে তৈরি করা হয় যখন Built-in Functions এর মাধ্যমে নির্দিষ্ট কাজ করা সম্ভব না হয়। UDF ব্যবহার করে আপনি কাস্টম লজিক বা হিসাব তৈরি করতে পারেন এবং তা বারবার ব্যবহার করতে পারেন।
UDF এর ধরন:
Scalar Functions:
- একটি স্কেলার ফাংশন একক মান রিটার্ন করে।
- এই ধরনের ফাংশন সাধারণত একক ইনপুট গ্রহণ করে এবং একটি একক আউটপুট প্রদান করে।
উদাহরণ:
CREATE FUNCTION dbo.GetFullName (@FirstName VARCHAR(50), @LastName VARCHAR(50)) RETURNS VARCHAR(100) AS BEGIN RETURN @FirstName + ' ' + @LastName; END;এটি
GetFullNameনামে একটি ফাংশন তৈরি করে যা দুটি ইনপুট নেয় এবং সেগুলির মধ্যে স্পেস দিয়ে যুক্ত করে একটি পূর্ণ নাম প্রদান করে।ব্যবহার:
SELECT dbo.GetFullName('John', 'Doe');Table-Valued Functions (TVF):
- এটি একটি ফাংশন যা টেবিলের মতো ডেটা রিটার্ন করে। একটি Table-Valued Function এর রিটার্ন টেবিলের মতো হয় এবং এটিকে সাধারণ টেবিলের মতো ব্যবহার করা যায়।
উদাহরণ:
CREATE FUNCTION dbo.GetEmployeesByDepartment (@DepartmentName VARCHAR(50)) RETURNS TABLE AS RETURN ( SELECT EmployeeID, FirstName, LastName FROM Employees WHERE Department = @DepartmentName );এখানে একটি Table-Valued Function তৈরি করা হয়েছে যা একটি নির্দিষ্ট ডিপার্টমেন্টের সকল কর্মচারীর তথ্য রিটার্ন করবে।
ব্যবহার:
SELECT * FROM dbo.GetEmployeesByDepartment('IT');Inline Table-Valued Functions:
- Inline TVF গুলি সাধারণত SELECT স্টেটমেন্ট দ্বারা রিটার্ন করা হয়। এগুলি সাধারণত ছোট ফাংশন হয় এবং SQL Server-এর জন্য পারফরম্যান্স অপ্টিমাইজড হয়।
উদাহরণ:
CREATE FUNCTION dbo.GetEmployeeInfo (@EmployeeID INT) RETURNS TABLE AS RETURN (SELECT FirstName, LastName, Department FROM Employees WHERE EmployeeID = @EmployeeID);ব্যবহার:
SELECT * FROM dbo.GetEmployeeInfo(1);
Built-in Functions এবং UDF এর মধ্যে পার্থক্য
| বৈশিষ্ট্য | Built-in Functions | User-Defined Functions (UDF) |
|---|---|---|
| সংজ্ঞা | SQL Server দ্বারা প্রাক-নির্ধারিত ফাংশন | ব্যবহারকারীর তৈরি কাস্টম ফাংশন |
| ফাংশনের ধরন | স্ট্রিং, তারিখ, সংখ্যার জন্য বিভিন্ন ফাংশন | স্কেলার ফাংশন বা টেবিল-ভ্যালু ফাংশন (TVF) |
| প্রত্যাবর্তন মান | একক মান, তালিকা বা একাধিক মান | একক মান (scalar) বা টেবিল (table) |
| পারফরম্যান্স | সাধারণত অপ্টিমাইজড এবং দ্রুত | পারফরম্যান্সের জন্য ব্যবহারকারীর উপর নির্ভর করে |
| ব্যবহার | সাধারণত ডেটাবেস অপারেশন, গণনা বা স্ট্রিং ম্যানিপুলেশনের জন্য | জটিল কাস্টম লজিক বা ডেটাবেস অপারেশন করার জন্য |
সারাংশ
- Built-in Functions SQL Server দ্বারা প্রাক-নির্ধারিত ফাংশন যা সাধারণ কাজের জন্য ব্যবহৃত হয় যেমন গাণিতিক অপারেশন, তারিখ এবং সময় ব্যবস্থাপনা, স্ট্রিং প্রসেসিং ইত্যাদি।
- User-Defined Functions (UDF) ব্যবহারকারীর তৈরি কাস্টম ফাংশন যা বিশেষ কাজের জন্য তৈরি হয় এবং এগুলিকে একাধিকবার ব্যবহার করা যায়, স্কেলার বা টেবিল-ভ্যালু ফাংশন হিসেবে রিটার্ন করতে পারে।
UDF ব্যবহার করে আপনি SQL Server-এ কাস্টম লজিক তৈরি করতে পারেন, যখন Built-in Functions সাধারণত প্রতিদিনের ডেটাবেস অপারেশন এবং ডেটা প্রসেসিংয়ের জন্য উপযুক্ত।
Read more