SQLite ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণের জন্য অনেকগুলো বিল্ট-ইন ফাংশন সরবরাহ করে। এদের মধ্যে আছে সারি গণনা করা, যোগফল বের করা, সর্বোচ্চ-সর্বনিম্ন মান খোঁজা, স্ট্রিংকে বড়/ছোট হাতের অক্ষরে রূপান্তর করা, র্যান্ডম সংখ্যা তৈরি ইত্যাদি। এই ফাংশনগুলো কেস-ইনসেনসিটিভ, অর্থাৎ COUNT, count, বা Count—সবই একইভাবে কাজ করে। আজকের পর্বে আমরা বেশ কিছু গুরুত্বপূর্ণ বিল্ট-ইন ফাংশন উদাহরণসহ শিখব এবং আমাদের পরিচিত COMPANY টেবিলের ওপর তাদের প্রয়োগ দেখব।
পূর্বপ্রস্তুতি
- SQLite ইন্সটল থাকতে হবে (সিরিজের ৩য় পর্ব দেখুন)।
- আমরা
COMPANYটেবিল পুনরায় ব্যবহার করব।functions_demo.dbনামে ডাটাবেস বানাই।
টার্মিনাল:
bash
sqlite3 functions_demo.db
sql
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL, AGE INT NOT NULL, ADDRESS CHAR(50), SALARY REAL ); INSERT INTO COMPANY VALUES (1, 'Paul', 32, 'California', 20000.00); INSERT INTO COMPANY VALUES (2, 'Allen', 25, 'Texas', 15000.00); INSERT INTO COMPANY VALUES (3, 'Teddy', 23, 'Norway', 20000.00); INSERT INTO COMPANY VALUES (4, 'Mark', 25, 'Rich-Mond', 65000.00); INSERT INTO COMPANY VALUES (5, 'David', 27, 'Texas', 85000.00); INSERT INTO COMPANY VALUES (6, 'Kim', 22, 'South-Hall', 45000.00); INSERT INTO COMPANY VALUES (7, 'James', 24, 'Houston', 10000.00);
- আউটপুট ফরম্যাট:
.header on,.mode column।
১. COUNT ফাংশন – সারির সংখ্যা গণনা
কোনো টেবিলে মোট কতটি সারি আছে, বা নির্দিষ্ট শর্তে কতটি সারি আছে, তা জানতে COUNT ব্যবহৃত হয়। COUNT(*) সব সারি (NULL সহ) গণনা করে; COUNT(column) শুধু not-null মান গণনা করে।
sql
SELECT COUNT(*) FROM COMPANY;
ফলাফল: 7
sql
SELECT COUNT(SALARY) FROM COMPANY WHERE SALARY > 30000;
ফলাফল: 3 (Mark, David, Kim)
২. MAX ও MIN ফাংশন – সর্বোচ্চ ও সর্বনিম্ন মান
একটি কলামের সবচেয়ে বড় ও ছোট মান বের করতে।
MAX:
sql
SELECT MAX(SALARY) FROM COMPANY;
ফলাফল: 85000.0
MIN:
sql
SELECT MIN(SALARY) FROM COMPANY;
ফলাফল: 10000.0
এগুলো GROUP BY-র সাথেও ব্যবহার করা যায়, যেমন প্রতিটি শহরের সর্বোচ্চ বেতন।
৩. AVG ফাংশন – গড় মান
একটি সংখ্যাবাচক কলামের গড় (average) বের করে। NULL মান উপেক্ষা করে।
sql
SELECT AVG(SALARY) FROM COMPANY;
ফলাফল: প্রায় 37142.857...
৪. SUM ফাংশন – যোগফল
একটি কলামের সমস্ত মানের যোগফল দেয়।
sql
SELECT SUM(SALARY) FROM COMPANY;
ফলাফল: 260000.0
৫. RANDOM ফাংশন – এলোমেলো সংখ্যা
একটি সিউডো-র্যান্ডম পূর্ণসংখ্যা ফেরত দেয়, যার সীমা -9223372036854775808 থেকে +9223372036854775807।
sql
SELECT RANDOM() AS RandomNumber;
একটি নির্দিষ্ট সীমার মধ্যে র্যান্ডম পেতে:
sql
SELECT ABS(RANDOM()) % 100 + 1 AS Random1to100; -- 1 থেকে 100
৬. ABS ফাংশন – পরম মান
কোনো সংখ্যার ধনাত্মক মান (পরম মান) ফেরত দেয়। স্ট্রিং দিলে 0.0 ফেরত দেয় (যদি সেটি সংখ্যায় রূপান্তরযোগ্য না হয়)।
sql
SELECT ABS(5), ABS(-15), ABS(NULL), ABS(0), ABS("ABC");
ফলাফল: 5 | 15 | NULL | 0 | 0.0
৭. UPPER ও LOWER ফাংশন – বড়/ছোট হাতের অক্ষর
স্ট্রিংকে বড় হাতের (UPPER) বা ছোট হাতের (LOWER) অক্ষরে রূপান্তর করে।
sql
SELECT UPPER(NAME) FROM COMPANY; SELECT LOWER(NAME) FROM COMPANY;
ফলাফল: PAUL, ALLEN, … এবং paul, allen, …
৮. LENGTH ফাংশন – স্ট্রিং-এর দৈর্ঘ্য
একটি স্ট্রিংয়ে কয়টি অক্ষর আছে তা ফেরত দেয়। ইউনিকোড সমর্থিত, তাই বাংলা বর্ণের জন্যও কাজ করবে।
sql
SELECT NAME, LENGTH(NAME) FROM COMPANY;
ফলাফল:
text
NAME LENGTH(NAME) ---------- ------------ Paul 4 Allen 5 Teddy 5 Mark 4 David 5 Kim 3 James 5
৯. sqlite_version ফাংশন – SQLite সংস্করণ
বর্তমানে ব্যবহৃত SQLite লাইব্রেরির ভার্সন নাম্বার জানতে।
sql
SELECT sqlite_version() AS 'SQLite Version';
ফলাফল: 3.51.1
১০. ডিরেক্টরি স্ট্রাকচার ও প্যাকেজ
শুধুমাত্র functions_demo.db ফাইলটি ব্যবহৃত হয়েছে। সমস্ত ফাংশন বিল্ট-ইন; কোনো বাড়তি প্যাকেজ লাগবে না।
text
project-folder/ └── functions_demo.db
১১. গুরুত্বপূর্ণ টিপস
- কেস ইনসেনসিটিভ: আপনি
count,COUNT, বাCountযেকোনোভাবে লিখতে পারেন। - NULL-এর সাথে আচরণ:
COUNT(*)NULL সারিও গণনা করে;COUNT(column)শুধু not-null সারি।AVG,SUM,MAX,MINফাংশনগুলো NULL উপেক্ষা করে। - পারফরম্যান্স: অ্যাগ্রিগেট ফাংশন বড় টেবিলে ইনডেক্সের সাথে দ্রুত কাজ করে।
- RANDOM-এর ব্যবহার: টেস্ট ডেটা জেনারেশন বা লটারির জন্য
RANDOMকাজে আসে। - UPPER/LOWER: এগুলো শুধু ASCII-র জন্য কার্যকর; ইউনিকোড অক্ষরের ক্ষেত্রে SQLite-র আচরণ কোলেশন সেটিংয়ের উপর নির্ভর করে।
১২. সম্পূর্ণ অনুশীলন সেশন
sql
.headers on .mode column -- ১. মোট রেকর্ড ও বেতনের গড় SELECT COUNT(*) AS TotalEmployees, AVG(SALARY) AS AverageSalary FROM COMPANY; -- ২. সর্বোচ্চ ও সর্বনিম্ন বেতন SELECT MAX(SALARY) AS Highest, MIN(SALARY) AS Lowest FROM COMPANY; -- ৩. বড় হাতের নাম SELECT UPPER(NAME) AS NAME_UPPER FROM COMPANY; -- ৪. ছোট হাতের নাম ও দৈর্ঘ্য SELECT LOWER(NAME) AS NAME_LOWER, LENGTH(NAME) AS Length FROM COMPANY; -- ৫. র্যান্ডম সংখ্যা SELECT RANDOM() AS RandomValue; -- ৬. পরম মান SELECT ABS(-123.45) AS Absolute; -- ৭. SQLite ভার্সন SELECT sqlite_version();
পরবর্তী পর্বে
আমরা শিখব SQLite EXPLAIN – কিভাবে কোয়েরি প্ল্যান বিশ্লেষণ করে ডিবাগিং ও অপ্টিমাইজেশন করতে হয়।
লেখকের কথা: বিল্ট-ইন ফাংশনগুলো SQLite-তে ডেটা ম্যানিপুলেশনকে সহজ ও দ্রুত করে। বাংলায় প্রযুক্তি শেখার এই সিরিজ আপনার ডাটাবেস দক্ষতা বৃদ্ধির যাত্রায় সঙ্গী হোক। পোস্টটি ভালো লাগলে শেয়ার করুন, এবং সম্পূর্ণ সিরিজের আপডেট পেতে ToLearnTeam.com সাবস্ক্রাইব করুন। কোনো প্রশ্ন থাকলে কমেন্টে জানান – আমরা উত্তর দিতে প্রস্তুত!
SQLite Full Course
- SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
- SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
- SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
- SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
- SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
- SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
- SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
- SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
- SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
- SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
- SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
- SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
- SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
- SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
- SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
- SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
- SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
- SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
- SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
- SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
- SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
- SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
- SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
- SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
- SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
- SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
- SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
- SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
- SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
- SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
- SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
- SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
- SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
- SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
- SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
- SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
- SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
- SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
- SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
- SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
- SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
- SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
- SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
- SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
- SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
- SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
- SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
- SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
- SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
- SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)
