এসকিউএল ফাংশন

From binaryoption
Jump to navigation Jump to search
Баннер1

এসকিউএল ফাংশন

ভূমিকা

এসকিউএল (স্ট্রাকচার্ড কোয়েরি ল্যাঙ্গুয়েজ) হলো ডেটাবেস ম্যানেজমেন্ট সিস্টেমের (ডিবিএমএস) সাথে যোগাযোগের জন্য বহুল ব্যবহৃত একটি ভাষা। এসকিউএল-এর অন্যতম গুরুত্বপূর্ণ অংশ হলো ফাংশন। ফাংশনগুলি ডেটা ম্যানিপুলেশন, ক্যালকুলেশন এবং ডেটা থেকে প্রয়োজনীয় তথ্য বের করতে ব্যবহৃত হয়। এই নিবন্ধে, এসকিউএল ফাংশনগুলির বিভিন্ন প্রকার, ব্যবহার এবং উদাহরণ নিয়ে বিস্তারিত আলোচনা করা হবে।

ফাংশন কি?

ফাংশন হলো প্রিডিফাইন্ড কোডের ব্লক যা ইনপুট হিসেবে আর্গুমেন্ট গ্রহণ করে এবং একটি নির্দিষ্ট আউটপুট প্রদান করে। ফাংশনগুলি কোডকে পুনরায় ব্যবহারযোগ্য করে তোলে এবং জটিল কাজগুলিকে সহজ করে। এসকিউএল-এ, ফাংশনগুলি ডেটাবেস সার্ভারে সংরক্ষিত থাকে এবং এসকিউএল কোয়েরির মধ্যে ব্যবহার করা যায়।

এসকিউএল ফাংশনের প্রকারভেদ

এসকিউএল ফাংশনগুলিকে প্রধানত তিনটি ভাগে ভাগ করা যায়:

১. সিঙ্গেল-রো ফাংশন: এই ফাংশনগুলি একটিমাত্র রো-এর উপর কাজ করে এবং একটিমাত্র মান প্রদান করে। উদাহরণস্বরূপ, কোনো স্ট্রিং-এর দৈর্ঘ্য নির্ণয় করা বা কোনো সংখ্যার বর্গমূল বের করা। ২. মাল্টিপল-রো ফাংশন: এই ফাংশনগুলি একাধিক রো-এর উপর কাজ করে এবং একাধিক মান প্রদান করে। উদাহরণস্বরূপ, কোনো টেবিলের সমস্ত মানের গড় নির্ণয় করা বা কোনো গ্রুপের মধ্যে সর্বোচ্চ মান বের করা। ৩. এগ্রিগেট ফাংশন: এগ্রিগেট ফাংশনগুলি মাল্টিপল-রো ফাংশনের একটি বিশেষ প্রকার, যা ডেটার সমষ্টিগত মান (যেমন: যোগ, গড়, গণনা) প্রদান করে।

সিঙ্গেল-রো ফাংশন

সিঙ্গেল-রো ফাংশনগুলির মধ্যে উল্লেখযোগ্য কিছু ফাংশন নিচে উল্লেখ করা হলো:

  • স্ট্রিং ফাংশন:
   * LENGTH(): একটি স্ট্রিং-এর দৈর্ঘ্য নির্ণয় করে। উদাহরণ: `SELECT LENGTH('Hello World');`
   * SUBSTRING(): একটি স্ট্রিং থেকে নির্দিষ্ট অংশ বের করে। উদাহরণ: `SELECT SUBSTRING('Hello World', 1, 5);`
   * UPPER(): একটি স্ট্রিং-কে বড় হাতের অক্ষরে রূপান্তরিত করে। উদাহরণ: `SELECT UPPER('hello world');`
   * LOWER(): একটি স্ট্রিং-কে ছোট হাতের অক্ষরে রূপান্তরিত করে। উদাহরণ: `SELECT LOWER('HELLO WORLD');`
   * TRIM(): একটি স্ট্রিং থেকে অতিরিক্ত স্পেস সরিয়ে দেয়। উদাহরণ: `SELECT TRIM('   Hello World   ');`
   * REPLACE(): একটি স্ট্রিং-এর মধ্যে নির্দিষ্ট অংশ পরিবর্তন করে। উদাহরণ: `SELECT REPLACE('Hello World', 'World', 'Universe');`
  • নাম্বার ফাংশন:
   * ROUND(): একটি সংখ্যাকে নির্দিষ্ট দশমিক স্থানে রাউন্ড করে। উদাহরণ: `SELECT ROUND(3.14159, 2);`
   * FLOOR(): একটি সংখ্যাকে নিকটবর্তী ছোট পূর্ণসংখ্যায় রাউন্ড করে। উদাহরণ: `SELECT FLOOR(3.7);`
   * CEILING(): একটি সংখ্যাকে নিকটবর্তী বড় পূর্ণসংখ্যায় রাউন্ড করে। উদাহরণ: `SELECT CEILING(3.2);`
   * SQRT(): একটি সংখ্যার বর্গমূল নির্ণয় করে। উদাহরণ: `SELECT SQRT(16);`
   * POWER(): একটি সংখ্যার ঘাত নির্ণয় করে। উদাহরণ: `SELECT POWER(2, 3);`
  • ডেট ফাংশন:
   * NOW(): বর্তমান তারিখ এবং সময় প্রদান করে। উদাহরণ: `SELECT NOW();`
   * CURDATE(): বর্তমান তারিখ প্রদান করে। উদাহরণ: `SELECT CURDATE();`
   * CURTIME(): বর্তমান সময় প্রদান করে। উদাহরণ: `SELECT CURTIME();`
   * DATE_ADD(): একটি নির্দিষ্ট তারিখের সাথে সময় যোগ করে। উদাহরণ: `SELECT DATE_ADD(CURDATE(), INTERVAL 1 DAY);`
   * DATE_SUB(): একটি নির্দিষ্ট তারিখ থেকে সময় বিয়োগ করে। উদাহরণ: `SELECT DATE_SUB(CURDATE(), INTERVAL 1 WEEK);`
  • কনভার্সন ফাংশন:
   * CAST(): একটি ডেটা টাইপকে অন্য ডেটা টাইপে রূপান্তরিত করে। উদাহরণ: `SELECT CAST('123' AS INTEGER);`
   * CONVERT(): CAST() ফাংশনের মতোই কাজ করে, তবে এটি আরও নমনীয়।

মাল্টিপল-রো ফাংশন

মাল্টিপল-রো ফাংশনগুলি একটি টেবিলের একাধিক রো-এর উপর কাজ করে এবং প্রতিটি রো-এর জন্য একটি করে মান প্রদান করে। এই ফাংশনগুলি সাধারণত CASE এক্সপ্রেশন এবং অন্যান্য কন্ডিশনাল লজিকের সাথে ব্যবহৃত হয়।

  • CASE এক্সপ্রেশন: CASE এক্সপ্রেশন একটি কন্ডিশনাল স্টেটমেন্ট যা বিভিন্ন শর্তের উপর ভিত্তি করে বিভিন্ন মান প্রদান করে। উদাহরণ:

```sql SELECT

   CASE
       WHEN salary > 50000 THEN 'High Salary'
       WHEN salary > 30000 THEN 'Medium Salary'
       ELSE 'Low Salary'
   END AS salary_level

FROM employees; ```

এগ্রিগেট ফাংশন

এগ্রিগেট ফাংশনগুলি ডেটার সমষ্টিগত মান প্রদান করে। এই ফাংশনগুলি সাধারণত GROUP BY ক্লজের সাথে ব্যবহৃত হয়।

  • COUNT(): একটি গ্রুপের মধ্যে রো-এর সংখ্যা গণনা করে। উদাহরণ: `SELECT COUNT(*) FROM employees;`
  • SUM(): একটি গ্রুপের মধ্যে সংখ্যাসূচক মানের যোগফল নির্ণয় করে। উদাহরণ: `SELECT SUM(salary) FROM employees;`
  • AVG(): একটি গ্রুপের মধ্যে সংখ্যাসূচক মানের গড় নির্ণয় করে। উদাহরণ: `SELECT AVG(salary) FROM employees;`
  • MIN(): একটি গ্রুপের মধ্যে সর্বনিম্ন মান নির্ণয় করে। উদাহরণ: `SELECT MIN(salary) FROM employees;`
  • MAX(): একটি গ্রুপের মধ্যে সর্বোচ্চ মান নির্ণয় করে। উদাহরণ: `SELECT MAX(salary) FROM employees;`
  • GROUP BY: এই ক্লজটি ডেটাগুলোকে নির্দিষ্ট কলামের মানের ভিত্তিতে গ্রুপ করে। উদাহরণ: `SELECT department, AVG(salary) FROM employees GROUP BY department;`

উইন্ডো ফাংশন (Window Functions)

উইন্ডো ফাংশনগুলি এসকিউএল-এর একটি অত্যাধুনিক বৈশিষ্ট্য, যা একটি টেবিলের রো-এর একটি নির্দিষ্ট "উইন্ডো" বা সেটের উপর ভিত্তি করে গণনা করে। এটি এগ্রিগেট ফাংশনগুলির মতো, কিন্তু প্রতিটি রো-এর জন্য একটি মান প্রদান করে, সম্পূর্ণ গ্রুপের জন্য নয়।

  • ROW_NUMBER(): একটি পার্টিশনের মধ্যে প্রতিটি রো-কে একটি ক্রমিক নম্বর প্রদান করে।
  • RANK(): একটি পার্টিশনের মধ্যে রো-গুলোকে তাদের মানের ভিত্তিতে র‍্যাঙ্ক করে।
  • DENSE_RANK(): RANK() এর মতোই, তবে র‍্যাঙ্কগুলোতে কোনো ফাঁক থাকে না।
  • LAG(): একটি পার্টিশনের আগের রো থেকে মান অ্যাক্সেস করে।
  • LEAD(): একটি পার্টিশনের পরের রো থেকে মান অ্যাক্সেস করে।

উদাহরণস্বরূপ, আপনি যদি প্রতিটি বিভাগের কর্মীদের বেতন অনুযায়ী র‍্যাঙ্ক করতে চান, তবে আপনি RANK() উইন্ডো ফাংশন ব্যবহার করতে পারেন:

```sql SELECT

   employee_name,
   department,
   salary,
   RANK() OVER (PARTITION BY department ORDER BY salary DESC) AS salary_rank

FROM employees; ```

এই কোয়েরিটি প্রতিটি বিভাগের কর্মীদের তাদের বেতনের ভিত্তিতে র‍্যাঙ্ক করবে।

ব্যবহারিক উদাহরণ

একটি টেবিল বিবেচনা করা যাক, যেখানে কিছু পণ্যের তথ্য রয়েছে:

Products Table
ProductName | Price | Category
Laptop | 1200 | Electronics
Mouse | 25 | Electronics
T-shirt | 20 | Clothing
Jeans | 50 | Clothing
Book | 15 | Books

এখন, কিছু এসকিউএল ফাংশনের ব্যবহারিক উদাহরণ দেখা যাক:

১. সমস্ত পণ্যের গড় মূল্য নির্ণয় করা:

```sql SELECT AVG(Price) FROM Products; ```

২. ইলেকট্রনিক্স বিভাগের পণ্যের সংখ্যা গণনা করা:

```sql SELECT COUNT(*) FROM Products WHERE Category = 'Electronics'; ```

৩. পণ্যের নাম বড় হাতের অক্ষরে পরিবর্তন করা:

```sql SELECT UPPER(ProductName) FROM Products; ```

৪. প্রতিটি পণ্যের মূল্যকে রাউন্ড করে নিকটবর্তী পূর্ণসংখ্যায় নিয়ে আসা:

```sql SELECT ROUND(Price) FROM Products; ```

৫. পণ্যের নামের প্রথম ৫টি অক্ষর বের করা:

```sql SELECT SUBSTRING(ProductName, 1, 5) FROM Products; ```

৬. Category অনুসারে পণ্যের গড় দাম বের করা:

```sql SELECT Category, AVG(Price) FROM Products GROUP BY Category; ```

এসকিউএল ফাংশনের গুরুত্ব

এসকিউএল ফাংশনগুলি ডেটাবেস ব্যবস্থাপনার জন্য অত্যন্ত গুরুত্বপূর্ণ। এর কিছু কারণ নিচে উল্লেখ করা হলো:

  • ডেটা ম্যানিপুলেশন: ফাংশনগুলি ডেটাকে সহজে ম্যানিপুলেট করতে সাহায্য করে, যেমন স্ট্রিং পরিবর্তন, তারিখের হিসাব এবং সংখ্যাসূচক গণনা।
  • কোড পুনরায় ব্যবহারযোগ্যতা: ফাংশনগুলি কোডকে পুনরায় ব্যবহারযোগ্য করে তোলে, যা ডেভেলপমেন্টের সময় এবং শ্রম সাশ্রয় করে।
  • জটিলতা হ্রাস: ফাংশনগুলি জটিল কাজগুলিকে সহজ করে তোলে এবং কোডকে আরও পাঠযোগ্য করে।
  • ডেটা সুরক্ষা: ফাংশনগুলি ডেটা সুরক্ষায় সাহায্য করে, কারণ এগুলি ডেটাবেস সার্ভারে সংরক্ষিত থাকে এবং সরাসরি ডেটা অ্যাক্সেস করার প্রয়োজন হয় না।

ডেটাবেস ডিজাইন | এসকিউএল কোয়েরি | ইনডেক্সিং | ট্রানজেকশন ম্যানেজমেন্ট | ডাটা মডেলিং | রিলেশনাল ডাটাবেস | নন-রিলেশনাল ডাটাবেস | ডাটা ইন্টিগ্রিটি | ডাটাবেস স্বাভাবিককরণ | ডাটাবেস অপটিমাইজেশন | এসকিউএল ইনজেকশন | ভিউ (এসকিউএল) | স্টোড প্রসিডিউর | ট্রিগার (ডাটাবেস) | ডাটা warehousing | ডাটা মাইনিং | বিগ ডাটা | ক্লাউড ডাটাবেস | ডাটা সিকিউরিটি | ব্যাকআপ এবং রিকভারি

কৌশল, টেকনিক্যাল বিশ্লেষণ এবং ভলিউম বিশ্লেষণ সম্পর্কিত লিঙ্ক:

মুভিং এভারেজ | আরএসআই (রিলেটিভ স্ট্রেন্থ ইনডেক্স) | এমএসিডি (মুভিং এভারেজ কনভারজেন্স ডাইভারজেন্স) | বোলিঙ্গার ব্যান্ডস | ফিিবোনাচ্চি রিট্রেসমেন্ট | ক্যান্ডেলস্টিক প্যাটার্ন | ভলিউম ওয়েটেড এভারেজ প্রাইস (ভিডব্লিউএপি) | অন ব্যালেন্স ভলিউম (ওবিভি) | চাইকিন মানি ফ্লো | এলিট ওয়েভ থিওরি | ডাউ থিওরি | গ্যাপ অ্যানালাইসিস | সাপোর্ট এবং রেজিস্ট্যান্স লেভেল | ট্রেডিং ইন্ডিকেটর | ঝুঁকি ব্যবস্থাপনা

উপসংহার

এসকিউএল ফাংশনগুলি ডেটাবেস ব্যবস্থাপনার একটি অপরিহার্য অংশ। এই ফাংশনগুলি ডেটা ম্যানিপুলেশন, ক্যালকুলেশন এবং ডেটা থেকে প্রয়োজনীয় তথ্য বের করতে সহায়ক। বিভিন্ন প্রকার এসকিউএল ফাংশন সম্পর্কে জ্ঞান থাকা ডেটাবেস ডেভেলপার এবং অ্যাডমিনিস্ট্রেটরদের জন্য অত্যন্ত গুরুত্বপূর্ণ। সঠিক ফাংশন ব্যবহার করে, ডেটাবেস অপারেশনগুলিকে আরও কার্যকর এবং নির্ভরযোগ্য করা যায়।

এখনই ট্রেডিং শুরু করুন

IQ Option-এ নিবন্ধন করুন (সর্বনিম্ন ডিপোজিট $10) Pocket Option-এ অ্যাকাউন্ট খুলুন (সর্বনিম্ন ডিপোজিট $5)

আমাদের সম্প্রদায়ে যোগ দিন

আমাদের টেলিগ্রাম চ্যানেলে যোগ দিন @strategybin এবং পান: ✓ দৈনিক ট্রেডিং সংকেত ✓ একচেটিয়া কৌশলগত বিশ্লেষণ ✓ বাজারের প্রবণতা সম্পর্কে বিজ্ঞপ্তি ✓ নতুনদের জন্য শিক্ষামূলক উপকরণ

Баннер