COUNT Archives - To Learn Team https://tolearnteam.com/tag/count/ Learn about Everything Online Sat, 08 Aug 2026 04:58:58 +0000 en-US hourly 1 https://wordpress.org/?v=7.1.2 https://tolearnteam.com/wp-content/uploads/2026/07/cropped-Logo-32x32.png COUNT Archives - To Learn Team https://tolearnteam.com/tag/count/ 32 32 SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল) https://tolearnteam.com/sqlite-useful-functions-bangla/ Sat, 08 Aug 2026 03:43:51 +0000 http://tolearnteam.com/?p=2240 SQLite ডেটা বিশ্লেষণ ও প্রক্রিয়াকরণের জন্য অনেকগুলো বিল্ট-ইন ফাংশন সরবরাহ করে। এদের মধ্যে আছে সারি গণনা করা, যোগফল বের করা, সর্বোচ্চ-সর্বনিম্ন মান খোঁজা, স্ট্রিংকে বড়/ছোট হাতের অক্ষরে রূপান্তর করা, র‍্যান্ডম…

The post SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
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

  1. SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
  2. SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
  3. SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
  4. SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
  5. SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
  6. SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
  7. SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
  8. SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
  9. SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
  10. SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
  11. SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
  12. SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
  13. SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
  14. SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
  15. SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
  16. SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  17. SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
  18. SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
  19. SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
  20. SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
  21. SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
  22. SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
  23. SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
  24. SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  25. SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
  26. SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
  27. SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
  28. SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
  29. SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
  30. SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
  31. SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
  32. SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
  33. SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
  34. SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
  35. SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
  36. SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
  37. SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
  38. SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
  39. SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
  40. SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
  41. SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
  42. SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
  43. SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
  44. SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
  45. SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
  46. SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
  47. SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
  48. SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
  49. SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
  50. SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)

The post SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা) https://tolearnteam.com/sqlite-group-by-clause-bangla/ Fri, 07 Aug 2026 14:18:32 +0000 http://tolearnteam.com/?p=2173 ডাটাবেসের ডেটা বিশ্লেষণের অন্যতম শক্তিশালী উপায় হলো গ্রুপিং – অর্থাৎ, কোনো একটি কলামের ভিত্তিতে সারিগুলোকে দলবদ্ধ করে প্রতিটি দলের জন্য হিসাব-নিকাশ করা। যেমন, প্রতিটি শহরে কর্মীদের মোট বেতন, অথবা একই নামের কতজন…

The post SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
ডাটাবেসের ডেটা বিশ্লেষণের অন্যতম শক্তিশালী উপায় হলো গ্রুপিং – অর্থাৎ, কোনো একটি কলামের ভিত্তিতে সারিগুলোকে দলবদ্ধ করে প্রতিটি দলের জন্য হিসাব-নিকাশ করা। যেমন, প্রতিটি শহরে কর্মীদের মোট বেতন, অথবা একই নামের কতজন আছে। SQLite-তে এই গ্রুপিং কাজটি করে GROUP BY ক্লজ, যা প্রায় সবসময় অ্যাগ্রিগেট ফাংশন (যেমন SUM, COUNT, AVG, MAX, MIN) এর সাথে ব্যবহৃত হয়। আজকের পর্বে আমরা GROUP BY-এর সিনট্যাক্স, কাজের নিয়ম, বাস্তব উদাহরণ এবং ORDER BY-এর সাথে সমন্বয় বিস্তারিতভাবে শিখব।


পূর্বপ্রস্তুতি

  • SQLite ইন্সটল থাকতে হবে (সিরিজের ৩য় পর্ব দেখুন)।
  • company.db ডাটাবেসে COMPANY টেবিল থাকতে হবে। আমরা আগের ডেটা রেখে সাথেই নতুন ডুপ্লিকেট রেকর্ড যোগ করব। যদি টেবিল না থাকে, নিচের ধাপে তৈরি করুন:

bash

sqlite3 company.db

sql

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY NOT NULL,
   NAME TEXT NOT NULL,
   AGE INT NOT NULL,
   ADDRESS CHAR(50),
   SALARY REAL
);

-- প্রাথমিক 7 রেকর্ড
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।

১. GROUP BY-এর সিনট্যাক্স

GROUP BY ক্লজ SELECT স্টেটমেন্টের WHERE-এর পরে এবং ORDER BY-এর আগে বসে।

sql

SELECT column-list, aggregate_function(column)
FROM table_name
WHERE condition
GROUP BY column1, column2, ...
ORDER BY column1, column2, ...;
  • column-list: সাধারণত যে কলামের ভিত্তিতে গ্রুপ করবেন, সেই কলাম(গুলো) এখানে দিতে হবে। সাথে অ্যাগ্রিগেট ফাংশনের কলামও থাকে।
  • GROUP BY column1, column2: যেসব কলাম অনুসারে দলবদ্ধ করতে চান। একাধিক কলাম ব্যবহার করলে, প্রতিটি অনন্য সমন্বয়ের জন্য আলাদা গ্রুপ হবে।
  • ORDER BY: গ্রুপ করার পর ফলাফল সাজাতে ব্যবহার হয়।

২. সহজ উদাহরণ: প্রতিটি কর্মীর মোট বেতন (প্রাথমিক অবস্থা)

প্রাথমিক টেবিলে কোনো ডুপ্লিকেট নাম নেই, তাই GROUP BY NAME করলে প্রতিটি কর্মী আলাদা গ্রুপ, এবং SUM(SALARY) তাদের একক বেতন-ই দেখাবে।

sql

SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;

ফলাফল:

text

NAME        SUM(SALARY)
----------  -----------
Allen       15000.0
David       85000.0
James       10000.0
Kim         45000.0
Mark        65000.0
Paul        20000.0
Teddy       20000.0

এখানে NAME কলামের প্রতিটি ভিন্ন নাম একটি গ্রুপ। SUM(SALARY) সেই নামের সারির বেতনের যোগফল দেয় (একক সারি বলে বেতনের সমান)।


৩. ডুপ্লিকেট নাম যোগ করে গ্রুপিং এর আসল ক্ষমতা দেখা

বাস্তবে একই নাম একাধিকবার আসতেই পারে। আসুন আমরা আরও তিনটি রেকর্ড যোগ করি যাতে Paul এবং James একাধিকবার থাকে।

sql

INSERT INTO COMPANY VALUES (8, 'Paul', 24, 'Houston', 20000.00);
INSERT INTO COMPANY VALUES (9, 'James', 44, 'Norway', 5000.00);
INSERT INTO COMPANY VALUES (10, 'James', 45, 'Texas', 5000.00);

এখন টেবিলের অবস্থা:

text

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          California  20000.0
2           Allen       25          Texas       15000.0
3           Teddy       23          Norway      20000.0
4           Mark        25          Rich-Mond   65000.0
5           David       27          Texas       85000.0
6           Kim         22          South-Hall  45000.0
7           James       24          Houston     10000.0
8           Paul        24          Houston     20000.0
9           James       44          Norway      5000.0
10          James       45          Texas       5000.0

এবার আবার NAME দিয়ে গ্রুপ করে বেতনের যোগফল বের করি এবং নামের ক্রমানুসারে সাজাই:

sql

SELECT NAME, SUM(SALARY) AS TOTAL_SALARY
FROM COMPANY
GROUP BY NAME
ORDER BY NAME;

ফলাফল:

text

NAME        TOTAL_SALARY
----------  -------------
Allen       15000.0
David       85000.0
James       20000.0      (10000 + 5000 + 5000)
Kim         45000.0
Mark        65000.0
Paul        40000.0      (20000 + 20000)
Teddy       20000.0

এখানে James-এর মোট বেতন 20,000 এবং Paul-এর 40,000 – দেখাই যাচ্ছে গ্রুপিং-এর জাদু।


৪. অন্যান্য অ্যাগ্রিগেট ফাংশন

GROUP BY-এর সাথে শুধু SUM নয়, আরও ফাংশন ব্যবহার করা যায়:

  • COUNT: গ্রুপে কতটি সারি আছে।
  • AVG: গড় মান।
  • MAX / MIN: সর্বোচ্চ/সর্বনিম্ন মান।

উদাহরণ: প্রতিটি নামের কতজন কর্মী আছে এবং তাদের গড় বয়স:

sql

SELECT NAME, COUNT(*) AS COUNT, AVG(AGE) AS AVG_AGE
FROM COMPANY
GROUP BY NAME;

ফলাফল:

text

NAME        COUNT       AVG_AGE
----------  ----------  ----------------
Allen       1           25.0
David       1           27.0
James       3           37.6666666666667
Kim         1           22.0
Mark        1           25.0
Paul        2           28.0
Teddy       1           23.0

৫. GROUP BY-এর সাথে WHERE ও ORDER BY

কোয়েরির ধাপ: WHERE → GROUP BY → ORDER BY → LIMIT।

উদাহরণ: যাদের বেতন ১০,০০০-এর বেশি, সেই সব রেকর্ড NAME দিয়ে গ্রুপ করে মোট বেতন দেখাও, এবং মোট বেতন অনুযায়ী সাজাও (বড় থেকে ছোট)।

sql

SELECT NAME, SUM(SALARY) AS TOTAL
FROM COMPANY
WHERE SALARY > 10000
GROUP BY NAME
ORDER BY TOTAL DESC;

ফলাফল: (যাদের বেতন > 10000, তাদের হিসাব করা হবে। Paul-এর প্রথম রেকর্ড 20000, দ্বিতীয় 20000, James-এর প্রথম 10000টা বাদ, পরের দুইটি 5000 বাদ – তাই James-এর কোনো টোটাল আসবে না, কারণ কোনো SALARY > 10000 নেই। James-এর 10000 রেকর্ডটি condition false, তাই James গ্রুপই তৈরি হবে না। Paul-এর দুইটি রেকর্ডই 20000, তাই TOTAL 40000। David 85000, Kim 45000, Mark 65000, Teddy 20000, Allen 15000। তাই দেখাবে Paul, David, Mark, Kim, Teddy, Allen – James নেই।)

এটি দেখায় WHERE ফিল্টার আগে কাজ করে, তারপর গ্রুপিং।


৬. একাধিক কলাম দিয়ে গ্রুপিং

আপনি চাইলে একাধিক কলামের ভিত্তিতে গ্রুপ করতে পারেন। যেমন প্রতিটি শহরের মধ্যে প্রতিটি নামের কর্মীদের মোট বেতন জানতে:

sql

SELECT ADDRESS, NAME, SUM(SALARY) AS TOTAL
FROM COMPANY
GROUP BY ADDRESS, NAME;

এটি প্রতিটি (শহর, নাম) সমন্বয়ের জন্য একটি গ্রুপ তৈরি করবে। একই শহরে একই নাম একাধিক বার থাকলে যোগ হবে।


৭. GROUP BY-তে কলাম সিলেক্টের নিয়ম

যে কলামটি GROUP BY-তে দেওয়া হয় না, সেটি সরাসরি SELECT-এ রাখা যাবে না যদি না সেটি কোনো অ্যাগ্রিগেট ফাংশনের ভেতর থাকে। যেমন:

sql

SELECT NAME, AGE FROM COMPANY GROUP BY NAME;  -- এরর! কারণ AGE-কে গ্রুপ করা হয়নি

কেন? গ্রুপ করার পর প্রতিটি গ্রুপে একাধিক AGE থাকতে পারে, SQLite জানে না কোন AGE দেখাবে। তবে SQLite নিজস্ব নিয়মে কিছুটা নমনীয়, কিন্তু স্ট্যান্ডার্ড SQL-এ এটি অনুমোদিত নয়। সঠিক উপায়:

sql

SELECT NAME, MAX(AGE) FROM COMPANY GROUP BY NAME;  -- ঠিক আছে

অথবা AGE-কে GROUP BY-তে অন্তর্ভুক্ত করতে হবে।


৮. ডিরেক্টরি স্ট্রাকচার ও প্যাকেজ

আমাদের অনুশীলনের জন্য শুধুমাত্র company.db ফাইলটি প্রয়োজন। কোনো অতিরিক্ত প্যাকেজ ইন্সটল করতে হবে না। GROUP BY সম্পূর্ণরূপে SQLite-এর অন্তর্নির্মিত।


৯. গুরুত্বপূর্ণ টিপস

  • GROUP BY-তে কলাম নাম্বার ব্যবহার: GROUP BY 1 দিয়ে প্রথম কলামের ভিত্তিতে গ্রুপ করা যায়, কিন্তু স্পষ্টতায় কলাম নাম ব্যবহার করুন।
  • HAVING ক্লজ: গ্রুপ করার পর শর্ত দিতে WHERE না, HAVING ব্যবহার করতে হয়। (পরবর্তী পর্বে আলোচিত হবে।) উদাহরণ: SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME HAVING SUM(SALARY) > 20000;
  • NULL মানের আচরণ: GROUP BY NULL-কে একটি আলাদা গ্রুপ হিসেবে গণ্য করে। সব NULL একসাথে একটি গ্রুপে জমা হয়।
  • ইনডেক্স: GROUP BY-তে ব্যবহৃত কলামে ইনডেক্স পারফরম্যান্স বাড়ায়।

১০. সম্পূর্ণ অনুশীলন সেশন

টার্মিনালে নিচের ধাপগুলো চালিয়ে দেখুন:

sql

.headers on
.mode column

-- বর্তমান টেবিল দেখি
SELECT * FROM COMPANY;

-- নাম অনুসারে মোট বেতন
SELECT NAME, SUM(SALARY) FROM COMPANY GROUP BY NAME;

-- শহর অনুসারে কর্মী সংখ্যা
SELECT ADDRESS, COUNT(*) AS TOTAL_EMP FROM COMPANY GROUP BY ADDRESS;

-- বয়স ২৫ এর নিচে, নাম গ্রুপ করে গড় বেতন, সাজানো বেতন অনুযায়ী
SELECT NAME, AVG(SALARY) AS AVG_SALARY
FROM COMPANY
WHERE AGE < 25
GROUP BY NAME
ORDER BY AVG_SALARY DESC;

পরবর্তী পর্বে

আমরা শিখব HAVING ক্লজ – GROUP BY-র ফলাফলের উপর শর্ত আরোপ করার কৌশল।

লেখকের কথা: GROUP BY দিয়ে ডেটার গভীরে প্রবেশ করে তথ্যের সারাংশ বের করা সম্ভব। বাংলায় প্রযুক্তি শেখার এই সিরিজে আপনার আগ্রহই আমাদের প্রেরণা। পোস্টটি ভালো লাগলে শেয়ার করতে ভুলবেন না, এবং সম্পূর্ণ সিরিজের আপডেট পেতে ToLearnTeam.com ব্লগ সাবস্ক্রাইব করুন। আপনার মতামত বা প্রশ্ন জানাতে কমেন্ট করুন – আমরা উত্তর দিতে প্রস্তুত!



SQLite Full Course

  1. SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
  2. SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
  3. SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
  4. SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
  5. SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
  6. SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
  7. SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
  8. SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
  9. SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
  10. SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
  11. SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
  12. SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
  13. SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
  14. SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
  15. SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
  16. SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  17. SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
  18. SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
  19. SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
  20. SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
  21. SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
  22. SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
  23. SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
  24. SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  25. SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
  26. SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
  27. SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
  28. SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
  29. SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
  30. SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
  31. SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
  32. SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
  33. SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
  34. SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
  35. SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
  36. SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
  37. SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
  38. SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
  39. SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
  40. SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
  41. SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
  42. SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
  43. SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
  44. SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
  45. SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
  46. SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
  47. SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
  48. SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
  49. SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
  50. SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)

The post SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল) https://tolearnteam.com/sqlite-expressions-bangla/ Fri, 07 Aug 2026 13:26:55 +0000 http://tolearnteam.com/?p=2146 এক্সপ্রেশন (Expression) হলো এক বা একাধিক মান, অপারেটর এবং SQL ফাংশনের সমন্বয়, যা শেষ পর্যন্ত একটি নির্দিষ্ট ভ্যালুতে মূল্যায়িত হয়। সহজ ভাষায়, এগুলো ডাটাবেসের ভাষায় লেখা সূত্র (formula), যা দিয়ে…

The post SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
এক্সপ্রেশন (Expression) হলো এক বা একাধিক মান, অপারেটর এবং SQL ফাংশনের সমন্বয়, যা শেষ পর্যন্ত একটি নির্দিষ্ট ভ্যালুতে মূল্যায়িত হয়। সহজ ভাষায়, এগুলো ডাটাবেসের ভাষায় লেখা সূত্র (formula), যা দিয়ে আমরা নির্দিষ্ট ডেটা খুঁজে বের করি, গাণিতিক হিসাব করি অথবা তারিখ-সময় সংক্রান্ত তথ্য পাই। SQLite-তে মূলত তিন ধরনের এক্সপ্রেশন ব্যবহৃত হয়:

  1. বুলিয়ান এক্সপ্রেশন (Boolean Expressions) – একটি নির্দিষ্ট মানের সাথে মিলিয়ে ডেটা আনে।
  2. নিউমেরিক এক্সপ্রেশন (Numeric Expressions) – গাণিতিক গণনা করে ফলাফল দেয়।
  3. ডেট এক্সপ্রেশন (Date Expressions) – বর্তমান তারিখ-সময় এবং তারিখ সংক্রান্ত তথ্য দেয়।

আজকের পর্বে আমরা প্রতিটি এক্সপ্রেশনের সিনট্যাক্স ও বাস্তব উদাহরণ দেখব।

পূর্বপ্রস্তুতি

  • SQLite ইন্সটল থাকতে হবে (সিরিজের ৩য় পর্ব দেখুন)।
  • company.db ডাটাবেসে COMPANY টেবিল থাকতে হবে। যদি না থাকে, নিচের কমান্ড চালান:

bash

sqlite3 company.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 দিয়ে আউটপুট সুন্দর করে দেখতে পারেন।

১. বুলিয়ান এক্সপ্রেশন (Boolean Expressions)

বুলিয়ান এক্সপ্রেশন মূলত WHERE ক্লজে ব্যবহৃত হয় এবং একটি শর্ত পূরণ হলে TRUE (সত্য) বা FALSE (মিথ্যা) ফেরত দেয়। এর মাধ্যমে আমরা নির্দিষ্ট মান মেলানো রেকর্ড ফিল্টার করি।

সিনট্যাক্স:

sql

SELECT column1, column2, ...
FROM table_name
WHERE SINGLE_VALUE_MATCHING_EXPRESSION;

এখানে SINGLE_VALUE_MATCHING_EXPRESSION এমন একটি শর্ত যা একটি মানের সাথে তুলনা করে (যেমন SALARY = 10000)।

উদাহরণ ১: যার বেতন ঠিক ১০,০০০, তাকে খুঁজে বের করা।

sql

SELECT * FROM COMPANY WHERE SALARY = 10000;

ফলাফল:

text

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
7           James       24          Houston     10000.0

উদাহরণ ২: টেক্সাস শহরের কর্মীদের তালিকা:

sql

SELECT NAME, ADDRESS FROM COMPANY WHERE ADDRESS = 'Texas';

উদাহরণ ৩: যাদের বয়স ২৫-এর বেশি:

sql

SELECT * FROM COMPANY WHERE AGE > 25;

এখানে AGE > 25 একটি বুলিয়ান এক্সপ্রেশন, যা প্রতিটি সারির জন্য সত্য বা মিথ্যা হবে।

গুরুত্বপূর্ণ: বুলিয়ান এক্সপ্রেশনে AND, OR, NOT ইত্যাদি লজিক্যাল অপারেটর দিয়েও জটিল শর্ত তৈরি করা যায়, যা আমরা আগের পর্বে আলোচনা করেছি।


২. নিউমেরিক এক্সপ্রেশন (Numeric Expressions)

নিউমেরিক এক্সপ্রেশন গাণিতিক হিসাব (যোগ, বিয়োগ, গুণ, ভাগ) বা অ্যাগ্রিগেট ফাংশনের মাধ্যমে সংখ্যাবাচক ফলাফল তৈরি করে। এটি শুধু SELECT কলামে বা WHERE-এ ব্যবহার করা যায়।

সিনট্যাক্স:

sql

SELECT numerical_expression AS alias
[FROM table_name WHERE CONDITION];

ক) সরাসরি গাণিতিক হিসাব:

sql

SELECT (15 + 6) AS ADDITION;

ফলাফল: ADDITION = 21

খ) টেবিল কলামের ওপর গণনা:
ধরুন, প্রতিটি কর্মীর ১০% বোনাস সহ মোট বেতন দেখাতে চাই:

sql

SELECT NAME, SALARY, SALARY * 0.10 AS BONUS, SALARY + (SALARY * 0.10) AS TOTAL
FROM COMPANY;

এখানে SALARY * 0.10 এবং SALARY + (SALARY * 0.10) হলো নিউমেরিক এক্সপ্রেশন, যা প্রতিটি রেকর্ডের জন্য আলাদাভাবে হিসাব হয়।

গ) বিল্ট-ইন অ্যাগ্রিগেট ফাংশন:
SQLite-তে কিছু প্রি-ডিফাইন্ড ফাংশন আছে যা অনেকগুলো সারির উপর গণনা করে একটি মাত্র ফলাফল দেয়। যেমন:

  • COUNT(*) – সারির সংখ্যা গণনা
  • SUM(column) – কলামের মোট যোগফল
  • AVG(column) – গড়
  • MAX(column) / MIN(column) – সর্বোচ্চ / সর্বনিম্ন

উদাহরণ:

sql

SELECT COUNT(*) AS "TOTAL RECORDS" FROM COMPANY;

ফলাফল: TOTAL RECORDS = 7

sql

SELECT AVG(SALARY) AS "AVERAGE SALARY" FROM COMPANY;

এটি সমস্ত কর্মীর গড় বেতন দেখাবে।

sql

SELECT MAX(AGE) AS "OLDEST", MIN(AGE) AS "YOUNGEST" FROM COMPANY;

বাস্তব উদাহরণ:

sql

SELECT SUM(SALARY) AS TOTAL_PAYROLL FROM COMPANY WHERE ADDRESS = 'Texas';

শুধুমাত্র টেক্সাস শহরের কর্মীদের মোট বেতন ফেরত দেবে।


৩. ডেট এক্সপ্রেশন (Date Expressions)

ডেট এক্সপ্রেশন বর্তমান সিস্টেমের তারিখ ও সময় অথবা তারিখ-সম্পর্কিত বিভিন্ন হিসাব ফেরত দেয়। SQLite-তে CURRENT_TIMESTAMP, CURRENT_DATE, CURRENT_TIME ইত্যাদি বিশেষ কীওয়ার্ড আছে, এবং date(), time(), datetime(), strftime() ফাংশনও আছে।

ক) বর্তমান টাইমস্ট্যাম্প পাওয়া:

sql

SELECT CURRENT_TIMESTAMP;

ফলাফল (উদাহরণ): 2025-08-07 14:23:05

খ) বর্তমান তারিখ ও সময় আলাদাভাবে:

sql

SELECT CURRENT_DATE; -- 2025-08-07
SELECT CURRENT_TIME; -- 14:23:05

গ) টেবিলে ব্যবহার: ধরুন, একটি টেবিলে created_at নামে একটি TEXT কলাম আছে। ডেট এক্সপ্রেশন দিয়ে সাম্প্রতিক রেকর্ড ফিল্টার করা যায়। তবে আমাদের COMPANY টেবিলে এমন কলাম নেই। আমরা একটি উদাহরণ দিয়ে বুঝতে পারি:

sql

CREATE TABLE events (id INTEGER PRIMARY KEY, event_date TEXT);
INSERT INTO events (event_date) VALUES (datetime('now', '-1 day'));
INSERT INTO events (event_date) VALUES (datetime('now'));

SELECT * FROM events WHERE event_date >= date('now');

এখানে date('now') আজকের তারিখ ফেরত দেয়, এবং আমরা তার চেয়ে বড় বা সমান তারিখের ইভেন্ট নির্বাচন করলাম।

ঘ) স্ট্রিং ফরম্যাটিং:

sql

SELECT strftime('%d/%m/%Y', 'now') AS BANGLA_DATE; -- ০৭/০৮/২০২৫

মনে রাখবেন: SQLite ডেট টাইপ আলাদা নয়, তবে টেক্সট/ইন্টিজার/রিয়েল হিসেবে তারিখ সংরক্ষণ করে এবং এই ফাংশনগুলো সেই মানকে সঠিকভাবে ব্যাখ্যা করতে পারে।


৪. সম্পূর্ণ অনুশীলন সেশন

আপনি চাইলে নিচের সম্পূর্ণ সেশনটি চালিয়ে দেখতে পারেন:

bash

sqlite3 company.db

sql

.header on
.mode column

-- বুলিয়ান এক্সপ্রেশন
SELECT * FROM COMPANY WHERE AGE >= 25 AND SALARY > 30000;

-- নিউমেরিক এক্সপ্রেশন
SELECT NAME, SALARY, SALARY * 12 AS ANNUAL_SALARY FROM COMPANY;

-- অ্যাগ্রিগেট ফাংশন
SELECT COUNT(*) AS কর্মী_সংখ্যা, AVG(SALARY) AS গড়_বেতন FROM COMPANY;

-- ডেট এক্সপ্রেশন
SELECT CURRENT_TIMESTAMP AS এখন_সময়;
SELECT date('now', '+7 days') AS এক_সপ্তাহ_পর;

৫. ডিরেক্টরি স্ট্রাকচার

উপরের কাজ শেষে আপনার ফোল্ডারে শুধু company.db ফাইলটি থাকবে। অন্য কোনো ফাইল তৈরি হবে না। কোনো বিশেষ প্যাকেজের প্রয়োজন নেই।


৬. গুরুত্বপূর্ণ টিপস

  • এলিয়াস ব্যবহার: নিউমেরিক এক্সপ্রেশনে AS দিয়ে কলামের নাম দিন, এতে আউটপুট পড়তে সুবিধা হয়।
  • NULL হ্যান্ডেলিং: অ্যাগ্রিগেট ফাংশন (যেমন AVG) NULL মান অগ্রাহ্য করে। যদি একটি রেকর্ডের SALARY NULL হয়, তবে সেটি গড় গণনায় ধরা হবে না।
  • ডেট ফরম্যাট: ডেট এক্সপ্রেশন ব্যবহারের সময় স্ট্রিং ফরম্যাট নিশ্চিত করুন, বিশেষ করে WHERE শর্তে।
  • অপ্টিমাইজেশন: বুলিয়ান এক্সপ্রেশনে কলামের ওপর ফাংশন ব্যবহার করলে ইনডেক্স কাজ করবে না (যেমন WHERE UPPER(name) = 'PAUL' এড়িয়ে চলুন, বরং ডেটা সংরক্ষণের সময়ই কেস ঠিক করুন)।

পরবর্তী পর্বে

আমরা SQLite-তে WHERE ক্লজ ও LIKE, GLOB, LIMIT, ORDER BY এর ব্যবহার আরও গভীরভাবে শিখব। ফিল্টারিংয়ের মাস্টারক্লাস!

লেখকের কথা: প্রতিটি এক্সপ্রেশন নিজে টাইপ করে চালান – তবেই আয়ত্ত্বে আসবে। বাংলায় SQLite শেখার এই সিরিজ আপনার উপকারে এলে অবশ্যই শেয়ার করুন। আর সব আপডেট পেতে ToLearnTeam.com ব্লগ সাবস্ক্রাইব করতে ভুলবেন না। প্রশ্ন থাকলে কমেন্টে জানান!



SQLite Full Course

  1. SQLite পরিচিতি ও ইন্সটলেশন গাইড – বাংলায় প্রথম ডাটাবেস তৈরি
  2. SQLite কী এবং কেন শিখবেন? সম্পূর্ণ ওভারভিউ ও কমান্ড ক্লাসিফিকেশন (DDL, DML, DQL)
  3. SQLite ইন্সটলেশন গাইড – Windows, Linux ও Mac-এ ধাপে ধাপে সেটআপ
  4. SQLite ডট কমান্ড (Dot Commands) – সম্পূর্ণ গাইড, আউটপুট ফরম্যাট ও sqlite_master
  5. SQLite সিনট্যাক্স (Syntax) – কেস সেনসিটিভিটি, কমেন্ট, সব কমান্ডের গঠন ও উদাহরণ
  6. SQLite ডেটা টাইপ (Data Type) – স্টোরেজ ক্লাস, টাইপ অ্যাফিনিটি, বুলিয়ান ও ডেট-টাইম
  7. SQLite ডেটাবেস তৈরি (Create Database) – ধাপে ধাপে গাইড, .dump এক্সপোর্ট ও রিস্টোর
  8. SQLite ATTACH DATABASE – একাধিক ডাটাবেস সংযুক্ত করার সম্পূর্ণ গাইড (বাংলা)
  9. SQLite DETACH DATABASE – সংযুক্ত ডাটাবেস বিচ্ছিন্ন করার পূর্ণাঙ্গ গাইড
  10. SQLite CREATE TABLE স্টেটমেন্ট – টেবিল তৈরি করার পূর্ণাঙ্গ গাইড (বাংলা)
  11. SQLite DROP TABLE স্টেটমেন্ট – টেবিল ডিলিট করার সম্পূর্ণ গাইড (বাংলা)
  12. SQLite INSERT INTO স্টেটমেন্ট – ডেটা ইনসার্ট করার সম্পূর্ণ গাইড (বাংলা)
  13. SQLite SELECT স্টেটমেন্ট – টেবিল থেকে ডেটা ফেচ করার সম্পূর্ণ গাইড (বাংলা)
  14. SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল)
  15. SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল)
  16. SQLite AND ও OR অপারেটর – একাধিক শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  17. SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)
  18. SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা)
  19. SQLite LIKE Operator – প্যাটার্ন মিলিয়ে ডেটা খোঁজার সম্পূর্ণ গাইড (বাংলা)
  20. SQLite GLOB Operator – কেস-সেনসিটিভ প্যাটার্ন মিলিয়ে ডেটা খোঁজা (বাংলা)
  21. SQLite LIMIT Clause – ডেটা সীমিত করে আনার সম্পূর্ণ গাইড (বাংলা)
  22. SQLite ORDER BY ক্লজ – ডেটা সাজানোর সম্পূর্ণ গাইড (বাংলা)
  23. SQLite GROUP BY ক্লজ – ডেটা গ্রুপ করে বিশ্লেষণ করার সম্পূর্ণ গাইড (বাংলা)
  24. SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল)
  25. SQLite DISTINCT Keyword – ডুপ্লিকেট ডেটা বাদ দিয়ে ইউনিক ভ্যালু পাওয়া (বাংলা)
  26. SQLite PRAGMA কমান্ড – ডাটাবেস কনফিগারেশন ও সেটিংস (বাংলা টিউটোরিয়াল)
  27. SQLite Constraints – NOT NULL, DEFAULT, UNIQUE, PRIMARY KEY, CHECK (বাংলা টিউটোরিয়াল)
  28. SQLite JOINS – CROSS JOIN, INNER JOIN, LEFT OUTER JOIN (বাংলা টিউটোরিয়াল)
  29. SQLite UNION ও UNION ALL – একাধিক SELECT একত্রিত করার সম্পূর্ণ গাইড (বাংলা)
  30. SQLite NULL Values – NULL কী, IS NULL, IS NOT NULL (বাংলা টিউটোরিয়াল)
  31. SQLite ALIAS Syntax – টেবিল ও কলামের অস্থায়ী নাম (বাংলা টিউটোরিয়াল)
  32. SQLite Triggers – স্বয়ংক্রিয় ট্রিগার তৈরি, ব্যবহার ও মুছে ফেলা (বাংলা টিউটোরিয়াল)
  33. SQLite Indexes – CREATE, UNIQUE, COMPOSITE, DROP INDEX (বাংলা টিউটোরিয়াল)
  34. SQLite INDEXED BY Clause – নির্দিষ্ট ইনডেক্স ব্যবহার ও NOT INDEXED (বাংলা)
  35. SQLite ALTER TABLE Command – টেবিলের গঠন পরিবর্তন (বাংলা টিউটোরিয়াল)
  36. SQLite TRUNCATE TABLE Command – DELETE ও DROP দিয়ে টেবিল খালি করা (বাংলা)
  37. SQLite Views – ভার্চুয়াল টেবিল তৈরি, ব্যবহার ও ডিলিট (বাংলা টিউটোরিয়াল)
  38. SQLite Transactions – BEGIN, COMMIT, ROLLBACK ও ACID প্রপার্টি (বাংলা)
  39. SQLite Subqueries – SELECT, INSERT, UPDATE, DELETE-এ সাবকোয়েরি ব্যবহার (বাংলা টিউটোরিয়াল)
  40. SQLite AUTOINCREMENT – স্বয়ংক্রিয়ভাবে প্রাইমারি কি মান বৃদ্ধি (বাংলা টিউটোরিয়াল)
  41. SQLite SQL Injection – কী, কেন বিপজ্জনক ও প্রতিরোধের উপায় (বাংলা টিউটোরিয়াল)
  42. SQLite EXPLAIN ও EXPLAIN QUERY PLAN – কোয়েরি বিশ্লেষণ (বাংলা টিউটোরিয়াল)
  43. SQLite VACUUM – ডাটাবেস পরিষ্কার, স্পেস রিক্লেইম ও অটো-ভ্যাকুয়াম (বাংলা টিউটোরিয়াল)
  44. SQLite Date & Time ফাংশন – date(), time(), datetime(), julianday(), strftime() (বাংলা টিউটোরিয়াল)
  45. SQLite Useful Functions – COUNT, MAX, MIN, AVG, SUM, RANDOM, ABS, UPPER, LOWER, LENGTH (বাংলা টিউটোরিয়াল)
  46. SQLite C/C++ প্রোগ্রামিং – sqlite3_open, exec, close, callback (বাংলা টিউটোরিয়াল)
  47. SQLite PHP প্রোগ্রামিং – PHP-তে SQLite ডাটাবেস ব্যবহার (বাংলা টিউটোরিয়াল)
  48. SQLite Perl প্রোগ্রামিং – DBI/DBD::SQLite দিয়ে ডাটাবেস অপারেশন (বাংলা)
  49. SQLite Python প্রোগ্রামিং – sqlite3 মডিউল দিয়ে CRUD অপারেশন (বাংলা টিউটোরিয়াল)
  50. SQLite Quick Guide – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)

The post SQLite এক্সপ্রেশন (Expressions) – বুলিয়ান, নিউমেরিক ও ডেট এক্সপ্রেশন (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>