সংখ্যাসূচক ফাংশনের তালিকা

যেমনটি আমরা উপরে বলেছি, একটি ডিবিএমএসের পক্ষে কেবলমাত্র একটি নির্দিষ্ট ধরণের ডেটা সঞ্চয় করা যথেষ্ট নয়, এটি এই ধরণের ডেটার উপর অতি-দ্রুত অপারেশনগুলির একটি বিস্তৃত সেটকে সমর্থন করতে হবে।

এবং, আপনি জানেন যে, সমস্ত DBMS বিভিন্ন ধরনের সংখ্যাসূচক এবং তাদের উপর অপারেশন সমর্থন করে। আজ আপনি তাদের মধ্যে সবচেয়ে জনপ্রিয় সঙ্গে পরিচিত হবে.

MySQL-এর সমস্ত সাংখ্যিক ফাংশন শর্তসাপেক্ষে 5টি গ্রুপে বিভক্ত করা যেতে পারে:

  • গাণিতিকভাবে অপারেশন
  • বিট অপারেশন
  • রাউন্ডিং ফাংশন
  • বীজগণিতের ফাংশন
  • ত্রিকোণমিতিক ফাংশন

যাইহোক, আপনি জাভা ভাষার জন্য তাদের অনেকের সাথে পরিচিত, তাই আমি মনে করি তারা আপনার কাছে অবাক হবে না। কিন্তু এর ক্রম শুরু করা যাক.

বৈশিষ্ট্যগুলির সম্পূর্ণ তালিকা এখানে পাওয়া যাবে ।

গাণিতিক অপারেশন

নীতিগতভাবে, অপ্রত্যাশিত কিছুই নেই, সমস্ত একই স্ট্যান্ডার্ড অপারেশন অন্য কোথাও:

# উদাহরণ
1 +, -, *, / 2+2*2 যোগ, বিয়োগ, গুণ, ভাগ (নিখুঁত নয়!)
2 % 13% 5 বিভাগের অবশিষ্টাংশ
3 MOD 13MOD5 বিভাগের অবশিষ্টাংশ
4 ডিভি 13 DIV 5 পূর্ণসংখ্যা দ্বারা বিভাজন

আকর্ষণীয় থেকে: দুটি পূর্ণসংখ্যা ভাগ করার সময়, আপনি একটি বাস্তব সংখ্যা পাবেন। পূর্ণসংখ্যা দ্বারা ভাগ করতে, আপনাকে DIV অপারেটর ব্যবহার করতে হবে।

আপনি যদি একটি পূর্ণসংখ্যা দ্বারা একটি বিভাগের অবশিষ্টাংশ পেতে চান, তাহলে আপনাকে জাভা ভাষার মতো MOD বা % অপারেটর ব্যবহার করতে হবে। আমি উদাহরণ দেব না, কারণ আমার জন্য এখানে সবকিছু স্পষ্ট।

বিট অপারেশন

আপনি এসকিউএল-এ সংখ্যার উপর বিটওয়াইজ অপারেশনও করতে পারেন, অনেকটা জাভাতে। যদিও সূক্ষ্মতা আছে। উপলব্ধ বিট অপারেশনগুলির তালিকা নীচের টেবিলে উপস্থাপন করা হয়েছে:

# উদাহরণ বিঃদ্রঃ
1 এবং 0b1111 এবং 0b1000 বিটওয়াইজ এবং
2 | 0b1111 | 0b0001 বিটওয়াইজ বা
3 ^ 0b1111^0b1111 বিট XOR
4 ~ ~0b1111 বিটওয়াইজ ইনভার্সন
5 >> 128 >> ​​5 বিট শিফট ডান
6 << 2 << 5 বিট শিফট বাম
7 BIT_COUNT() BIT_COUNT(255) 1 বিটের সংখ্যা প্রদান করে

MySQL সংস্করণ 8.0-এর আগে, এই ধরনের ক্রিয়াকলাপগুলি শুধুমাত্র BIGINT ডেটা টাইপের উপর সঞ্চালিত হতে পারে, যা 64 বিট দীর্ঘ ছিল এবং জাভা-এর লং টাইপের মতো ছিল। যাইহোক, MySQL 8.0 এ (যা আমরা বিবেচনা করছি), ধারণাটি পরিবর্তিত হয়েছে। এখন এই অপারেশনগুলি বিশেষ বাইনারি ধরনের উপর সঞ্চালিত করা যেতে পারে:

  • বাইনারি
  • ভারবাইনারী
  • এবং BLOB প্রকারের উপরও (যা বাইটের একটি অ্যারে)

অন্য সব ধরনের সহজভাবে BIGINT টাইপে রূপান্তরিত হয় এবং অপারেশনগুলি আগের মতোই সঞ্চালিত হয় (শুধুমাত্র প্রথম 64 বিটে)।

রাউন্ডিং ফাংশন

MySQL ফাংশন রাউন্ডিংয়ের জন্য আপনার কাছে বেদনাদায়কভাবে পরিচিত ব্যবহার করা হয়। তাদের একটি তালিকা নীচের টেবিলে দেওয়া হয়েছে:

# উদাহরণ বিঃদ্রঃ
1 CEIL(), CEILING() CEIL (5.1) = 6 একটি বাস্তব সংখ্যাকে পূর্ণাঙ্গ করে
2 ফ্লোর() ফ্লোর(5.9) = 5 একটি প্রকৃত সংখ্যাকে নিচের দিকে রাউন্ড করে
3 রাউন্ড() রাউন্ড(4.1) = 4 একটি বাস্তব সংখ্যাকে নিকটতম পূর্ণসংখ্যায় পূর্ণ করে
4 ছিন্ন() ট্রাঙ্কেট(4.123, 2) = 4.12 একটি সংখ্যাকে N দশমিক স্থানে ছোট করে
5 RAND() 0.61914388706828 0 এবং 1 এর মধ্যে একটি এলোমেলো বাস্তব সংখ্যা প্রদান করে
6 RAND(N) ০.৯৩৮৪৫১৬৮৩০৯১৪২ 0 এবং 1 এর মধ্যে একটি এলোমেলো বাস্তব সংখ্যা প্রদান করে। বীজের মান হিসাবে N ব্যবহার করা হয়

জাভাতে প্রথম অনুসন্ধানের পর থেকে আপনি সমস্ত রাউন্ডিং ফাংশনের সাথে পরিচিত। শুধুমাত্র TRUNCATE() এবং RANDOM(N) ফাংশন এখানে আগ্রহের বিষয় হতে পারে।

TRUNCATE (সংখ্যা, পরিমাণ) ফাংশনটি তার প্রথম প্যারামিটার হিসেবে একটি বাস্তব সংখ্যা নেয় এবং দ্বিতীয় প্যারামিটার হিসেবে দশমিক স্থানের সংখ্যা বাকি থাকে। সংখ্যাটিকে দশমিক স্থানের পছন্দসই সংখ্যায় ছাঁটাই করা হয়েছে।

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

এই ক্ষেত্রে, ক্রমটির প্রতিটি নতুন সংখ্যা এই ক্রমটির পূর্ববর্তী সংখ্যার উপর ভিত্তি করে একটি জটিল নিয়ম অনুসারে তৈরি করা হয় । অতএব, আপনি যদি র্যান্ডম সংখ্যা তৈরির অ্যালগরিদমে একটি নির্দিষ্ট প্রারম্ভিক সংখ্যা (একটি বীজও বলা হয়) পাস করেন, তাহলে প্রতিবার আপনি র্যান্ডম সংখ্যার একই ক্রম পাবেন