বিল্ট-ইন ফাংশন কোনো প্রসিডিউরাল লজিক না লিখেই মান রূপান্তর বা সংক্ষিপ্ত করে। এই পাঠে সেই ফাংশনগুলো আলোচনা করা হবে যা আপনি ক্রমাগত ব্যবহার করবেন।
সারির সংখ্যা গণনা করে।
SELECT COUNT(*) FROM table_name;SELECT COUNT(*) FROM Employee;* নাকি একটি নির্দিষ্ট কলাম দিচ্ছেন তার উপর — COUNT(column) সেই কলামের NULL বাদ দেয়, COUNT(*) দেয় না।সাধারণ ভুল
COUNT(column) NULL গণনা করবে বলে আশা করা — এটি করে না।
একটি সংখ্যাসূচক কলামের সব মান যোগ করে।
SELECT SUM(column) FROM table_name;SELECT SUM(salary) FROM Employee;সাধারণ ভুল
একটি নন-নিউমেরিক কলামে SUM প্রয়োগ করা।
একটি সংখ্যাসূচক কলামের গড় মান ফেরত দেয়।
SELECT AVG(column) FROM table_name;SELECT AVG(salary) FROM Employee;সাধারণ ভুল
AVG NULL উপেক্ষা করে তা ভুলে যাওয়া, যা অন্য কোথাও হাতে করা একটি হিসাবের সাথে তুলনা করলে ফলাফল বিকৃত করতে পারে।
একটি কলামের সবচেয়ে ছোট বা সবচেয়ে বড় মান ফেরত দেয়।
SELECT MIN(column), MAX(column) FROM table_name;SELECT MIN(salary), MAX(salary) FROM Employee;সাধারণ ভুল
ইঞ্জিনকে এক ধাপে অ্যাগ্রিগেট করতে দেওয়ার বদলে অ্যাপ্লিকেশন কোডে প্রতিটি সারির জন্য MIN/MAX ডাকা।
টেক্সট মান নিয়ে কাজ করে — কেসিং, জোড়া লাগানো, ট্রিম করা, বের করে আনা।
UPPER(col) · LOWER(col) · CONCAT(a,b) · SUBSTRING(col,start,len) · TRIM(col) · LENGTH(col)SELECT UPPER(name), CONCAT(name, ' - ', department)
FROM Employee;সাধারণ ভুল
আগে কেস স্বাভাবিক না করে স্ট্রিং তুলনা করা, যার ফলে এমন মিল বাদ পড়ে যা একজন মানুষ অভিন্ন বলেই ধরে নিতেন।
তারিখ আর সময় নিয়ে কাজ করে — বর্তমান তারিখ, পার্থক্য, গাণিতিক হিসাব।
NOW() · CURDATE() · DATEDIFF(a,b) · DATE_ADD(date, INTERVAL n unit)SELECT DATEDIFF(NOW(), hire_date) AS days_employed
FROM Employee;সাধারণ ভুল
আগে নির্ভুলতা না মিলিয়েই DATE আর DATETIME কলাম সরাসরি তুলনা করা।
একটি কোয়েরির ভেতরেই সংখ্যাসূচক মানে গণিত করে।
ROUND(col, n) · ABS(col) · MOD(a, b)SELECT ROUND(salary / 12, 2) AS monthly_pay
FROM Employee;সাধারণ ভুল
কোয়েরির বদলে অ্যাপ্লিকেশন কোডে রাউন্ড করা, যা দুইয়ের মধ্যে প্রদর্শনের অমিল তৈরি করে।
ফাংশন দৈনন্দিন গণিত আর টেক্সটের কাজ সামলায়। পরের পাঠে উইন্ডো ফাংশন নিয়ে আলোচনা হবে — একটি সম্পর্কিত কিন্তু আরও শক্তিশালী টুল, সারিগুলোকে একটিতে গুটিয়ে না ফেলেই একদল সারি জুড়ে গণনা করার জন্য।