WHERE Archives - To Learn Team https://tolearnteam.com/tag/where/ Learn about Everything Online Sat, 08 Aug 2026 04:59:07 +0000 en-US hourly 1 https://wordpress.org/?v=7.1.2 https://tolearnteam.com/wp-content/uploads/2026/07/cropped-Logo-32x32.png WHERE Archives - To Learn Team https://tolearnteam.com/tag/where/ 32 32 SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল) https://tolearnteam.com/sqlite-having-clause-bangla/ Fri, 07 Aug 2026 15:30:36 +0000 http://tolearnteam.com/?p=2175 আগের পর্বে আমরা শিখেছি GROUP BY দিয়ে কীভাবে ডেটাকে দলবদ্ধ করে প্রতিটি দলের জন্য যোগফল, গড়, গণনা ইত্যাদি বের করতে হয়। কিন্তু সেই গ্রুপগুলোর মধ্যেও আমাদের প্রায়ই ফিল্টার করার দরকার হয় –…

The post SQLite HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
আগের পর্বে আমরা শিখেছি GROUP BY দিয়ে কীভাবে ডেটাকে দলবদ্ধ করে প্রতিটি দলের জন্য যোগফল, গড়, গণনা ইত্যাদি বের করতে হয়। কিন্তু সেই গ্রুপগুলোর মধ্যেও আমাদের প্রায়ই ফিল্টার করার দরকার হয় – যেমন, শুধু তাদের দেখাতে চাই যাদের গ্রুপে কমপক্ষে ২টি রেকর্ড আছে, বা যাদের মোট বেতন ৫০,০০০-এর বেশি। এই কাজটির জন্য WHERE ব্যবহার করা যায় না, কারণ WHERE সারি-ভিত্তিক ফিল্টার, গ্রুপ-ভিত্তিক নয়। HAVING ক্লজ ঠিক এই চাহিদা পূরণ করে: এটি GROUP BY-র পরবর্তী গ্রুপগুলোর উপর শর্ত আরোপ করে। আজ আমরা HAVING-এর গঠন, WHERE-এর সাথে পার্থক্য, এবং বিভিন্ন অ্যাগ্রিগেট ফাংশনের সাথে এর ব্যবহার বিস্তারিত শিখব।


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

  • 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);
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);
  • আউটপুট পরিষ্কার করতে: .header on এবং .mode column।

১. HAVING-এর সিনট্যাক্স ও অবস্থান

একটি SELECT কোয়েরিতে HAVING-এর সঠিক অবস্থান:

sql

SELECT column-list
FROM table_name
WHERE condition
GROUP BY column1, column2
HAVING aggregate_condition
ORDER BY column1, column2;
  • WHERE: গ্রুপ করার আগে সারি-ভিত্তিক ফিল্টার। অর্থাৎ নির্দিষ্ট সারিগুলোই গ্রুপে অন্তর্ভুক্ত হবে।
  • GROUP BY: সারিগুলোকে দলবদ্ধ করে।
  • HAVING: গ্রুপ করার পরে অ্যাগ্রিগেট ফাংশনের উপর শর্ত প্রয়োগ করে কোন গ্রুপগুলো চূড়ান্ত ফলাফলে থাকবে তা নির্ধারণ করে।
  • ORDER BY: সর্বশেষ ফলাফল সাজায়।

গুরুত্বপূর্ণ: HAVING-এ আপনি অ্যাগ্রিগেট ফাংশন (যেমন COUNT(*), SUM(SALARY), AVG(AGE)) ব্যবহার করতে পারেন, কিন্তু WHERE-এ তা সম্ভব নয়। WHERE শুধুমাত্র কলামের সাথে সরাসরি তুলনা করতে পারে। HAVING ছাড়া অ্যাগ্রিগেট কন্ডিশন দেওয়া যায় না।


২. উদাহরণ ১: COUNT-এর সাথে HAVING

আমাদের টেবিলে Paul এবং James একাধিকবার আছে। আমরা শুধু সেই নামগুলো দেখতে চাই যাদের সংখ্যা ২-এর কম (অর্থাৎ যারা একবার এসেছে)।

sql

SELECT NAME, COUNT(*) AS CNT
FROM COMPANY
GROUP BY NAME
HAVING COUNT(*) < 2;

ফলাফল:

text

NAME        CNT
----------  ----------
Allen       1
David       1
Kim         1
Mark        1
Teddy       1

Paul ও James বাদ পড়েছে কারণ তাদের সংখ্যা ২ ও ৩।

এবার যাদের সংখ্যা ২-এর বেশি (অর্থাৎ ৩ বা তার বেশি) তা দেখতে:

sql

SELECT NAME, COUNT(*) AS CNT
FROM COMPANY
GROUP BY NAME
HAVING COUNT(*) > 2;

ফলাফল:

text

NAME        CNT
----------  ----------
James       3

শুধু James গ্রুপটি টিকে আছে।

দ্রষ্টব্য: উদাহরণের জন্য আমরা SELECT * ব্যবহার করতে পারি, কিন্তু SQLite-তে SELECT * সহ GROUP BY ও HAVING ব্যবহার করলে অ্যাগ্রিগেট ছাড়া কলামের মান ডিটারমিনিস্টিক নয় (কোন সারির মান দেখাবে তা অনিশ্চিত)। তাই নির্ভরযোগ্য ফলাফলের জন্য অ্যাগ্রিগেট ফাংশন ও গ্রুপ কলাম স্পষ্টভাবে উল্লেখ করাই ভালো প্র্যাকটিস। নিচের কয়েকটি প্রদর্শিত মূল টিউটোরিয়ালের মতো করে দেখানো হলেও আমরা পরবর্তীতে নির্দিষ্ট কলাম ও অ্যাগ্রিগেট ব্যবহার করব।

টিউটোরিয়ালের মতো করে যদি আমরা লিখি SELECT * FROM COMPANY GROUP BY name HAVING count(name) < 2; তাহলে SQLite নামের একেক গ্রুপ থেকে যেকোনো একটি সারির সমস্ত কলাম দেখাবে (যেমন Allen-এর জন্য তার একমাত্র সারি, ইত্যাদি)।


৩. উদাহরণ ২: SUM-এর সাথে HAVING

ধরুন, আমরা চাই শুধু সেই নামগুলো যাদের মোট বেতন ২৫,০০০-এর বেশি।

sql

SELECT NAME, SUM(SALARY) AS TOTAL_SALARY
FROM COMPANY
GROUP BY NAME
HAVING SUM(SALARY) > 25000;

ফলাফল:

text

NAME        TOTAL_SALARY
----------  -------------
David       85000.0
Mark        65000.0
Paul        40000.0
Kim         45000.0

James (20000) এবং Teddy (20000) বাদ পড়েছে। Allen (15000) বাদ পড়েছে।


৪. উদাহরণ ৩: AVG, MAX, MIN-এর সাথে HAVING

যেসব নামের কর্মীদের গড় বয়স ২৫-এর বেশি:

sql

SELECT NAME, AVG(AGE) AS AVG_AGE
FROM COMPANY
GROUP BY NAME
HAVING AVG(AGE) > 25;

এটি James (37.67), David (27), Paul (28) ইত্যাদি দেখাবে।


৫. WHERE ও HAVING একসাথে

একটি পূর্ণাঙ্গ কোয়েরি: প্রথমে WHERE দিয়ে নির্দিষ্ট সারি বাছাই, তারপর গ্রুপ, তারপর HAVING দিয়ে গ্রুপ ফিল্টার, শেষে ORDER BY।

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

sql

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

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


৬. WHERE বনাম HAVING সংক্ষেপে

বৈশিষ্ট্যWHEREHAVING
প্রয়োগের সময়গ্রুপ করার আগে (সারি-ভিত্তিক)গ্রুপ করার পরে (গ্রুপ-ভিত্তিক)
অ্যাগ্রিগেট ফাংশনব্যবহার করা যায় নাব্যবহার করা যায় (COUNT, SUM ইত্যাদি)
ব্যবহারসাধারণ সারি ফিল্টারগ্রুপের ফলাফল ফিল্টার

একই কোয়েরিতে উভয়ই থাকতে পারে – WHERE আগে, HAVING পরে।


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

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


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

  • অ্যাগ্রিগেট ছাড়া HAVING অর্থহীন: HAVING-এ সাধারণ কলামের শর্ত দেওয়া যায়, কিন্তু সেটা WHERE-এই দেওয়া উচিত। HAVING মূলত অ্যাগ্রিগেটের জন্যই তৈরি।
  • HAVING-এ অ্যালিয়াস: আপনি SELECT-এ যে অ্যালিয়াস দেন, HAVING-এ সরাসরি সেই অ্যালিয়াস ব্যবহার করতে পারেন (SQLite সাপোর্ট করে)।sqlSELECT NAME, SUM(SALARY) AS TOTAL FROM COMPANY GROUP BY NAME HAVING TOTAL > 25000;
  • NULL গ্রুপ: GROUP BY NULL মানগুলোকে একত্রে একটি গ্রুপ হিসেবে গণ্য করে। HAVING-এ HAVING COUNT(*) > 1 ইত্যাদি দিয়ে সেই গ্রুপ ফিল্টার করা যায়।
  • পারফরম্যান্স: HAVING-এর শর্ত যতটা সম্ভব WHERE-এ সরিয়ে নিন, কারণ WHERE আগে কম সারি রাখলে গ্রুপিং দ্রুত হবে। তবে অ্যাগ্রিগেট কন্ডিশন HAVING-এই রাখতে হবে।

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

টার্মিনালে নিচের কমান্ডগুলো চালিয়ে দক্ষতা বাড়ান:

sql

.headers on
.mode column

-- গ্রুপে নামের সংখ্যা 2 বা তার বেশি, তাদের গড় বেতন
SELECT NAME, COUNT(*) AS CNT, AVG(SALARY) AS AVG_SAL
FROM COMPANY
GROUP BY NAME
HAVING CNT >= 2;

-- শহরভিত্তিক কর্মী সংখ্যা, যেখানে কমপক্ষে 2 জন
SELECT ADDRESS, COUNT(*) AS EMPLOYEES
FROM COMPANY
GROUP BY ADDRESS
HAVING COUNT(*) >= 2;

-- বয়স 25-এর বেশি, নাম অনুযায়ী মোট বেতন, যেখানে মোট 30000-এর বেশি
SELECT NAME, SUM(SALARY) AS TOTAL
FROM COMPANY
WHERE AGE > 25
GROUP BY NAME
HAVING SUM(SALARY) > 30000;

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

আমরা SQLite DISTINCT ক্লজ শিখব – কিভাবে ডুপ্লিকেট সারি বাদ দিয়ে অনন্য মান পাওয়া যায়।

লেখকের কথা: HAVING ক্লজ জটিল ডেটা বিশ্লেষণে অপরিহার্য। বাংলায় সম্পূর্ণ 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 HAVING ক্লজ – গ্রুপের উপর শর্ত দিয়ে ডেটা ফিল্টার (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা) https://tolearnteam.com/sqlite-delete-query-bangla/ Fri, 07 Aug 2026 13:44:39 +0000 http://tolearnteam.com/?p=2157 টেবিলের অপ্রয়োজনীয় বা ভুল রেকর্ড সরিয়ে ফেলার জন্য SQLite-তে DELETE স্টেটমেন্ট ব্যবহার করা হয়। এটি DML (Data Manipulation Language) কমান্ড। UPDATE-এর মতোই, এখানেও WHERE ক্লজ ব্যবহার করে নির্দিষ্ট সারি চিহ্নিত করা হয়। যদি WHERE…

The post SQLite DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
টেবিলের অপ্রয়োজনীয় বা ভুল রেকর্ড সরিয়ে ফেলার জন্য SQLite-তে DELETE স্টেটমেন্ট ব্যবহার করা হয়। এটি DML (Data Manipulation Language) কমান্ড। UPDATE-এর মতোই, এখানেও WHERE ক্লজ ব্যবহার করে নির্দিষ্ট সারি চিহ্নিত করা হয়। যদি WHERE ব্যবহার না করা হয়, তাহলে টেবিলের সকল রেকর্ড মুছে যাবে, কিন্তু টেবিলের গঠন (schema) অক্ষত থাকবে। এটি DROP TABLE থেকে ভিন্ন – DROP টেবিলসহ পুরো গঠনই সরিয়ে দেয়, DELETE শুধু ডেটা সরায়। আজকের পর্বে আমরা DELETE-এর সঠিক ব্যবহার, সতর্কতা ও বাস্তব উদাহরণ শিখব।


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

  • 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।

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

মৌলিক গঠন:

sql

DELETE FROM table_name
WHERE condition;
  • table_name – যে টেবিল থেকে রেকর্ড মুছবেন।
  • WHERE condition – ঐচ্ছিক কিন্তু অত্যন্ত গুরুত্বপূর্ণ। এই শর্তে নির্দিষ্ট সারি(গুলো) মুছে যাবে।

যদি WHERE না দেন: টেবিলের সব রেকর্ড ডিলিট হবে, টেবিল ফাঁকা (empty) হয়ে যাবে।


২. নির্দিষ্ট রেকর্ড ডিলিট করা (WHERE সহ)

উদাহরণ ১: ID 7 (James) কে মুছে ফেলা।

sql

DELETE FROM COMPANY WHERE ID = 7;

এখন পুরো টেবিল দেখলে:

sql

SELECT * FROM COMPANY;

ফলাফল:

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

James (ID 7) আর নেই।

উদাহরণ ২: AND/OR দিয়ে একাধিক শর্তে ডিলিট।

sql

DELETE FROM COMPANY
WHERE AGE < 25 AND SALARY <= 20000;

এটি Kim (AGE 22, SALARY 45000) ডিলিট করবে না, কিন্তু Teddy (23, 20000) ডিলিট হবে। পরীক্ষা করে দেখুন।

উদাহরণ ৩: IN ব্যবহার করে একাধিক ID ডিলিট।

sql

DELETE FROM COMPANY WHERE ID IN (2, 4);

এক কমান্ডে Allen ও Mark ডিলিট হবে।


৩. সব রেকর্ড ডিলিট (WHERE ছাড়া)

এটি অত্যন্ত সতর্কতার সাথে ব্যবহার করুন। কমান্ড:

sql

DELETE FROM COMPANY;

এটি COMPANY টেবিলের সমস্ত সারি মুছে ফেলবে, কিন্তু টেবিলের গঠন (CREATE TABLE স্ট্রাকচার) থেকে যাবে। টেবিলটি আবার নতুন রেকর্ড ইনসার্টের জন্য প্রস্তুত।

পার্থক্য DROP TABLE: DROP TABLE COMPANY; করলে টেবিলের অস্তিত্বই শেষ। তারপর আবার CREATE করতে হবে। DELETE করলে টেবিল থাকে, শুধু খালি হয়।

ব্যবহারিক পরীক্ষা:

sql

SELECT COUNT(*) FROM COMPANY;  -- 7 (অথবা যাই ছিল)
DELETE FROM COMPANY;
SELECT COUNT(*) FROM COMPANY;  -- 0

৪. DELETE এবং ট্রানজ্যাকশন

ভুলবশত সমস্ত ডেটা ডিলিট এড়াতে আপনি ট্রানজ্যাকশনের ভেতর DELETE চালাতে পারেন:

sql

BEGIN;
DELETE FROM COMPANY WHERE AGE > 100; -- উদাহরণ, এমন কেউ নেই
-- যদি ভুলও করি, সাথে সাথে ROLLBACK
ROLLBACK;

তাহলে ডেটা অক্ষত থাকবে। নিশ্চিত হলে COMMIT করুন।


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

আমাদের পুরো কাজ জুড়ে শুধুমাত্র company.db ফাইলটি ব্যবহৃত হচ্ছে। DELETE কোনো অতিরিক্ত ফাইল তৈরি করে না। তবে ডিলিট করার পর ডাটাবেস ফাইল আকার ছোট নাও হতে পারে; খালি জায়গা রিক্লেইম করতে VACUUM কমান্ড প্রয়োজন (পরে আলোচিত হবে)।

কোনো বিশেষ প্যাকেজ ইন্সটল করতে হবে না।


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

  • সর্বদা WHERE ব্যবহার করুন, যতক্ষণ না পুরো টেবিল খালি করাই লক্ষ্য।
  • ডিলিটের আগে SELECT করে নিন – একই WHERE শর্ত দিয়ে SELECT * FROM COMPANY WHERE ... চালিয়ে দেখুন কোন রেকর্ডগুলো ডিলিট হবে।
  • ব্যাকআপ নিন – গুরুত্বপূর্ণ ডাটাবেসে .backup বা .dump দিয়ে কপি রেখে তারপর DELETE করুন।
  • ফরেন কি সম্পর্ক: যদি অন্য টেবিল থেকে এই টেবিলের প্রাইমারি কি ব্যবহৃত হয়, তাহলে ডিলিট করলে সম্পর্কিত রেকর্ডও নষ্ট হতে পারে অথবা অরফান রেকর্ড তৈরি হবে। তখন CASCADE ইত্যাদি ব্যবহার করা লাগে (পরে আলোচিত হবে)।
  • LIMIT: SQLite 3.35+ ভার্সনে DELETE FROM table WHERE condition LIMIT n সমর্থিত, যা নির্দিষ্ট সংখ্যক সারি ডিলিট করতে পারে।
  • সঠিক শর্ত না মানলে: WHERE-এ কলামের নাম ভুল বা এমন শর্ত দিন যার কোনো মিল নেই, তবে কিছুই ডিলিট হবে না – নিরাপদ।

৭. কমপ্লিট অনুশীলন সেশন

নিচের ধাপগুলো টার্মিনালে চালিয়ে দক্ষতা বাড়ান:

bash

sqlite3 company.db

sql

.headers on
.mode column

-- প্রাথমিক রেকর্ড দেখি
SELECT * FROM COMPANY;

-- নির্দিষ্ট ডিলিট
DELETE FROM COMPANY WHERE NAME = 'Teddy';

-- শর্তযোগে ডিলিট
DELETE FROM COMPANY WHERE AGE >= 27 AND SALARY > 80000;

-- অবশিষ্ট দেখি
SELECT * FROM COMPANY;

-- পুরো টেবিল সাফ করার আগে ব্যাকআপ নিই
.backup company_backup.db
DELETE FROM COMPANY;
SELECT * FROM COMPANY; -- ফাঁকা

-- ব্যাকআপ থেকে ফিরিয়ে আনা (পরের পর্বের জন্য রেখে দিচ্ছি)
.restore company_backup.db

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

আমরা SQLite-তে SELECT এর সাথে LIKE, GLOB, LIMIT, ORDER BY ক্লজের বিস্তারিত ব্যবহার শিখব।

লেখকের কথা: DELETE কমান্ড সহজ কিন্তু বিপজ্জনক। সতর্কতা অবলম্বন করলে আপনার ডেটা নিরাপদ থাকবে। বাংলায় এই টিউটোরিয়াল সিরিজ চলমান রাখতে আপনাদের উৎসাহই বড় শক্তি। পোস্টটি ভালো লাগলে শেয়ার করুন, এবং সব পর্বের আপডেট পেতে 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 DELETE Query – টেবিল থেকে ডেটা মুছে ফেলার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা) https://tolearnteam.com/sqlite-update-query-bangla/ Fri, 07 Aug 2026 13:39:34 +0000 http://tolearnteam.com/?p=2154 ডাটাবেসে জমা রাখা ডেটা সবসময় একই থাকে না – কর্মীর বেতন বাড়ে, ঠিকানা বদলায়, ফোন নম্বর আপডেট হয়। SQLite-তে বিদ্যমান রেকর্ড পরিবর্তন করার জন্য আমরা UPDATE স্টেটমেন্ট ব্যবহার করি। এটি DML (Data…

The post SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
ডাটাবেসে জমা রাখা ডেটা সবসময় একই থাকে না – কর্মীর বেতন বাড়ে, ঠিকানা বদলায়, ফোন নম্বর আপডেট হয়। SQLite-তে বিদ্যমান রেকর্ড পরিবর্তন করার জন্য আমরা UPDATE স্টেটমেন্ট ব্যবহার করি। এটি DML (Data Manipulation Language) কমান্ড। UPDATE-এর সাথে WHERE ক্লজ ব্যবহার করে আমরা নির্দিষ্ট রেকর্ড চিহ্নিত করি। যদি WHERE না দেওয়া হয়, তাহলে টেবিলের সকল রেকর্ড আপডেট হয়ে যায় – যা প্রায়শই অনাকাঙ্ক্ষিত ও বিপজ্জনক। আজকের পর্বে আমরা UPDATE-এর সঠিক ও নিরাপদ ব্যবহার শিখব।


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

  • 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।

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

মৌলিক গঠন:

sql

UPDATE table_name
SET column1 = value1, column2 = value2, ..., columnN = valueN
WHERE condition;
  • table_name – যে টেবিলের ডেটা পরিবর্তন করতে চান।
  • SET – এর পরে কলামের নাম ও তার নতুন মান। একাধিক কলাম একসাথে কমা দিয়ে আপডেট করা যায়।
  • WHERE – ঐচ্ছিক কিন্তু অত্যন্ত গুরুত্বপূর্ণ। এই শর্তে নির্দিষ্ট সারি(গুলো) চিহ্নিত হয়। বাদ দিলে টেবিলের সব রেকর্ড আপডেট হবে।

২. নির্দিষ্ট রেকর্ড আপডেট (WHERE সহ)

ধরুন, ID 6-এর কর্মী Kim-এর ঠিকানা পরিবর্তন করতে হবে ‘Texas’-এ।

sql

UPDATE COMPANY
SET ADDRESS = 'Texas'
WHERE ID = 6;

এখন পুরো টেবিল দেখুন:

sql

SELECT * FROM COMPANY;

ফলাফল:

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          Texas       45000.0   -- পরিবর্তিত
7           James       24          Houston     10000.0

শুধু ID 6-এর ADDRESS পরিবর্তিত হয়েছে, বাকিরা অপরিবর্তিত।

একাধিক কলাম একসাথে আপডেট:

sql

UPDATE COMPANY
SET ADDRESS = 'Los Angeles', SALARY = 50000.00
WHERE NAME = 'Paul';

এটি Paul-এর ঠিকানা ও বেতন একই কমান্ডে আপডেট করে।

AND/OR দিয়ে জটিল শর্ত:

sql

UPDATE COMPANY
SET SALARY = SALARY * 1.10
WHERE AGE > 25 AND ADDRESS = 'Texas';

টেক্সাসের ২৫+ বয়সী কর্মীদের বেতন ১০% বাড়ালাম।


৩. সকল রেকর্ড আপডেট (WHERE ছাড়া) – সতর্কতা

যদি আপনি WHERE ক্লজ বাদ দেন, তাহলে টেবিলের প্রতিটি সারি আপডেট হবে।

sql

UPDATE COMPANY
SET ADDRESS = 'Texas', SALARY = 20000.00;

এখন SELECT * FROM COMPANY; দিলে পুরো টেবিল এরকম হয়ে যাবে:

text

ID          NAME        AGE         ADDRESS     SALARY
----------  ----------  ----------  ----------  ----------
1           Paul        32          Texas       20000.0
2           Allen       25          Texas       20000.0
3           Teddy       23          Texas       20000.0
4           Mark        25          Texas       20000.0
5           David       27          Texas       20000.0
6           Kim         22          Texas       20000.0
7           James       24          Texas       20000.0

এটি সাধারণত অনাকাঙ্ক্ষিত। তাই সব সময় UPDATE-তে WHERE ব্যবহার করার মানসিকতা তৈরি করুন, যতক্ষণ না আপনি নিশ্চিত যে পুরো টেবিল আপডেট করতেই চাচ্ছেন।


৪. UPDATE-তে এক্সপ্রেশন ও সাবকোয়েরি

UPDATE-তে শুধু নির্দিষ্ট মান নয়, ক্যালকুলেশন ও সাবকোয়েরিও ব্যবহার করা যায়।

গাণিতিক এক্সপ্রেশন:

sql

UPDATE COMPANY
SET SALARY = SALARY + 5000
WHERE ID = 7;

সাবকোয়েরি ব্যবহার (অন্য টেবিল থেকে মান এনে):

sql

-- ধরুন আরেকটি টেবিল new_salaries (emp_id, new_sal) আছে
UPDATE COMPANY
SET SALARY = (SELECT new_sal FROM new_salaries WHERE emp_id = COMPANY.ID)
WHERE ID IN (SELECT emp_id FROM new_salaries);

যদিও আমরা এখনো জয়েন বা সাবকোয়েরির গভীরে যাইনি, ধারণাটুকু বুঝে রাখুন।


৫. সাধারণ ভুল ও সতর্কতা

  • WHERE ভুলে যাওয়া: এটি সবচেয়ে বড় বিপদ। প্রোডাকশন ডাটাবেসে একটি ভুল UPDATE পুরো সিস্টেমে বিপর্যয় ঘটাতে পারে। সর্বদা প্রথমে SELECT করে দেখুন কোন সারিগুলো আপডেট হবে:sqlSELECT * FROM COMPANY WHERE ID = 6; — আগে নিশ্চিত হন UPDATE COMPANY SET ADDRESS = ‘Texas’ WHERE ID = 6;
  • প্রাইমারি কি আপডেট করা: সাধারণত প্রাইমারি কি পরিবর্তন করা উচিত নয়, কারণ অন্য টেবিলের ফরেন কি সম্পর্ক নষ্ট হতে পারে।
  • কনস্ট্রেইন্ট লঙ্ঘন: UNIQUE বা NOT NULL কনস্ট্রেইন্ট থাকলে আপডেট করার সময় সতর্ক থাকুন। যেমন NAME কে NULL সেট করতে চাইলে এরর দেবে যদি NOT NULL থাকে।
  • ট্রানজ্যাকশন ব্যবহার: বড় বা সংবেদনশীল আপডেটের আগে BEGIN; দিয়ে শুরু করুন, আপডেট সঠিক হলে COMMIT;, নাহলে ROLLBACK; দিয়ে ফিরিয়ে আনুন।

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

আমাদের অনুশীলনের জন্য শুধুমাত্র company.db ফাইলটি প্রয়োজন। কোনো অতিরিক্ত প্যাকেজের দরকার নেই। আপনি চাইলে পরীক্ষার আগে .backup দিয়ে মূল ডাটাবেসের ব্যাকআপ নিতে পারেন।


৭. প্র্যাকটিক্যাল টিপস

  • প্রথমে SELECT, তারপর UPDATE: UPDATE লেখার আগে একই WHERE শর্তে SELECT চালিয়ে দেখে নিন কোন রেকর্ডগুলো নির্বাচিত হচ্ছে।
  • LIMIT ব্যবহার (সাপোর্টেড সংস্করণে): SQLite 3.33+ তে UPDATE ... LIMIT সমর্থিত, যা দুর্ঘটনাবশত অনেক রেকর্ড আপডেট হওয়া ঠেকাতে পারে।
  • লগ রাখা: গুরুত্বপূর্ণ টেবিলে আপডেট করলে একটি লগ টেবিলে পুরনো ও নতুন মান সংরক্ষণ করা ভালো প্র্যাকটিস।
  • টেস্ট ডাটাবেসে পরীক্ষা: প্রোডাকশনের আগে অবশ্যই টেস্ট ডাটাবেসে UPDATE পরীক্ষা করে নিন।

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

নিচের ধাপগুলো অনুসরণ করে হাতে-কলমে শিখুন:

sql

-- নিরাপদ আপডেট: শুধু নির্দিষ্ট কর্মী
UPDATE COMPANY SET SALARY = 48000 WHERE NAME = 'Kim';

-- একাধিক শর্তে
UPDATE COMPANY SET ADDRESS = 'Dallas' WHERE ADDRESS = 'Texas' AND AGE < 25;

-- সবাইকে একই ঠিকানায় না আনার ভুল দেখুন (ভুলেও করবেন না বাস্তবে!)
-- UPDATE COMPANY SET ADDRESS = 'Nowhere'; -- এটি সব রেকর্ড বদলে দেবে

-- এক্সপ্রেশন
UPDATE COMPANY SET AGE = AGE + 1 WHERE ID = 3;

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

আমরা শিখব SQLite DELETE Query – কিভাবে টেবিল থেকে রেকর্ড মুছে ফেলতে হয় এবং WHERE ক্লজের গুরুত্ব।

লেখকের কথা: UPDATE কমান্ড শক্তিশালী, তাই সতর্কতার সাথে ব্যবহার করুন। বাংলায় এই টিউটোরিয়াল সিরিজ চলমান রাখতে আপনার উৎসাহই প্রেরণা। ভালো লাগলে শেয়ার করুন, এবং নিয়মিত আপডেট পেতে 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 UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা) appeared first on To Learn Team.

]]>
SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল) https://tolearnteam.com/sqlite-operators-bangla/ Fri, 07 Aug 2026 12:09:17 +0000 http://tolearnteam.com/?p=2143 অপারেটর (Operator) হলো বিশেষ কিছু সংরক্ষিত শব্দ বা চিহ্ন, যা SQLite স্টেটমেন্টের WHERE ক্লজে (এবং অনেক সময় SELECT-এর কলাম তালিকায়) বিভিন্ন শর্ত তৈরি করতে ও গণনা সম্পাদন করতে ব্যবহৃত হয়। অপারেটর ছাড়া…

The post SQLite অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>
অপারেটর (Operator) হলো বিশেষ কিছু সংরক্ষিত শব্দ বা চিহ্ন, যা SQLite স্টেটমেন্টের WHERE ক্লজে (এবং অনেক সময় SELECT-এর কলাম তালিকায়) বিভিন্ন শর্ত তৈরি করতে ও গণনা সম্পাদন করতে ব্যবহৃত হয়। অপারেটর ছাড়া ডাটাবেস থেকে আমাদের প্রয়োজনীয় তথ্য সঠিকভাবে ফিল্টার করে আনা কার্যত অসম্ভব। SQLite-তে চার ধরনের অপারেটর রয়েছে: গাণিতিক (Arithmetic), তুলনামূলক (Comparison), যৌক্তিক (Logical) ও বিটভিত্তিক (Bitwise)। আজকের পর্বে আমরা প্রতিটি অপারেটরের বাংলা বর্ণনা, সিনট্যাক্স এবং বাস্তব উদাহরণ দেখব।

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

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

১. গাণিতিক অপারেটর (Arithmetic Operators)

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

ধরি, a = 10 এবং b = 20। তাহলে অপারেটরগুলোর ফলাফল নিচের টেবিলে দেওয়া হলো:

অপারেটরবর্ণনাউদাহরণফলাফল
+যোগa + b30
-বিয়োগa - b-10
*গুণa * b200
/ভাগb / a2
%মডুলাস (ভাগশেষ)b % a0

টেস্ট করার জন্য SELECT ব্যবহার:

sql

SELECT 10 + 20;   -- 30
SELECT 10 - 20;   -- -10
SELECT 10 * 20;   -- 200
SELECT 20 / 10;   -- 2
SELECT 20 % 10;   -- 0

COMPANY টেবিলের সাথে ব্যবহার: যাদের বেতন ২৫০০০-এর বেশি, তাদের নাম ও বেতন ১০% বাড়িয়ে দেখানো যাক:

sql

SELECT NAME, SALARY, SALARY * 1.1 AS INCREMENTED_SALARY
FROM COMPANY
WHERE SALARY > 25000;

এটি কর্মচারীর বেতনের সাথে গাণিতিক গুণ প্রয়োগ করে একটি নতুন কলাম দেখাচ্ছে।


২. তুলনামূলক অপারেটর (Comparison Operators)

এই অপারেটরগুলো দুটি মানের মধ্যে সম্পর্ক যাচাই করে। WHERE ক্লজে এগুলো অত্যাবশ্যক। ধরি a = 10, b = 20।

অপারেটরবর্ণনাউদাহরণ (a=10, b=20)সত্য/মিথ্যা
==দুটি মান সমান কিনাa == bমিথ্যা
=দুটি মান সমান কিনাa = bমিথ্যা
!=অসমান কিনাa != bসত্য
<>অসমান কিনাa <> bসত্য
>বাম > ডানa > bমিথ্যা
<বাম < ডানa < bসত্য
>=বাম >= ডানa >= bমিথ্যা
<=বাম <= ডানa <= bসত্য
!<বাম ডানের চেয়ে কম নয় (>=)a !< bমিথ্যা
!>বাম ডানের চেয়ে বেশি নয় (<=)a !> bসত্য

বাস্তব উদাহরণ COMPANY টেবিলে:

sql

-- ২৫ বছর বয়সী কর্মী
SELECT * FROM COMPANY WHERE AGE = 25;

-- বেতন ২০০০০ এর বেশি
SELECT NAME, SALARY FROM COMPANY WHERE SALARY > 20000;

-- যাদের বয়স ২৫ নয়
SELECT NAME, AGE FROM COMPANY WHERE AGE <> 25;
-- বা WHERE AGE != 25;

-- বয়স ২৫-এর চেয়ে কম নয় (>=25)
SELECT NAME, AGE FROM COMPANY WHERE AGE !< 25;

লক্ষ্য করুন: SQLite-তে = এবং == একই কাজ করে। তবে == কিছুটা অপ্রচলিত, তাই = ব্যবহারই বেশি প্রচলিত।


৩. যৌক্তিক অপারেটর (Logical Operators)

যৌক্তিক অপারেটর একাধিক শর্ত একত্রে ব্যবহার, প্যাটার্ন মিল, তালিকা যাচাই ইত্যাদি জটিল যুক্তি তৈরি করে।

নিচে গুরুত্বপূর্ণ যৌক্তিক অপারেটরগুলোর তালিকা ও ব্যাখ্যা দেওয়া হলো:

অপারেটরবর্ণনা
ANDএকাধিক শর্ত একসাথে সত্য হতে হবে
ORএক বা একাধিক শর্ত সত্য হলে সত্য
NOTশর্তের উল্টো অর্থ
BETWEEN … AND …একটি রেঞ্জের মধ্যে মান
IN (val1, val2, …)তালিকাভুক্ত মানগুলোর মধ্যে আছে কিনা
NOT INতালিকার বাইরের মান
LIKEপ্যাটার্ন মিল (কেস-ইনসেনসিটিভ; % যেকোনো স্ট্রিং, _ একক অক্ষর)
GLOBপ্যাটার্ন মিল (কেস-সেনসিটিভ; * যেকোনো, ? একক অক্ষর)
EXISTSসাবকোয়েরির সারি থাকলে সত্য
IS NULLমান NULL কিনা যাচাই
IS / IS NOTযথাক্রমে = ও !=-এর মতো, কিন্তু NULL-এর সাথে তুলনায়ও সঠিক আচরণ করে
UNIQUEটেবিলে একটি নির্দিষ্ট মান অনন্য কিনা (প্রায়োগিক ব্যবহার কম)
****দুটি স্ট্রিং জোড়া দেয় (কনক্যাটিনেশন)

উদাহরণ দিয়ে ব্যাখ্যা (COMPANY টেবিল)

AND: বয়স ২৫-এর বেশি এবং বেতন ২০০০০-এর বেশি

sql

SELECT * FROM COMPANY WHERE AGE > 25 AND SALARY > 20000;

ফলাফল: Paul (32, 20000), Allen (25, 15000 — বয়স ২৫ বেশি নয়, বাদ), David (27, 85000) ইত্যাদি।

OR: বয়স ২৫-এর কম অথবা বেতন ৬০০০০-এর বেশি

sql

SELECT * FROM COMPANY WHERE AGE < 25 OR SALARY > 60000;

BETWEEN: বয়স ২৩ থেকে ২৭ এর মধ্যে

sql

SELECT * FROM COMPANY WHERE AGE BETWEEN 23 AND 27;

IN: নির্দিষ্ট শহরে থাকা কর্মী

sql

SELECT * FROM COMPANY WHERE ADDRESS IN ('Texas', 'Houston');

LIKE: নাম ‘J’ দিয়ে শুরু (যেকোনো কেস)

sql

SELECT * FROM COMPANY WHERE NAME LIKE 'J%';

GLOB: নাম ‘K’ দিয়ে শুরু (কেস-সেনসিটিভ)

sql

SELECT * FROM COMPANY WHERE NAME GLOB 'K*';

IS NULL: ঠিকানা অনুপস্থিত (NULL) থাকলে

sql

SELECT * FROM COMPANY WHERE ADDRESS IS NULL;

|| (স্ট্রিং কনক্যাট):

sql

SELECT NAME || ' works in ' || ADDRESS AS info FROM COMPANY;

আউটপুট হবে: Paul works in California ইত্যাদি।

NOT: শর্ত উল্টানো

sql

SELECT * FROM COMPANY WHERE NOT (AGE = 25); -- বয়স ২৫ নয়

EXISTS: (সাবকোয়েরির উপর নির্ভর করে) — অন্যদের চেয়ে আলাদা; একটি উদাহরণ:

sql

SELECT NAME FROM COMPANY WHERE EXISTS (SELECT * FROM COMPANY WHERE SALARY > 80000);

এটি আসলে সব সারি দেখাবে কারণ সাবকোয়েরি অন্তত একটি রেকর্ড ফেরত দেয় (David)। বাস্তবে EXISTS ব্যবহার করা হয় সম্পর্কিত টেবিলের সাথে, যা পরবর্তীতে শিখব।


৪. বিটভিত্তিক অপারেটর (Bitwise Operators)

বিটভিত্তিক অপারেটর সংখ্যার বাইনারি বিটের ওপর কাজ করে। এগুলো সাধারণত ফ্ল্যাগ বা স্টেটাস ম্যানেজমেন্টে ব্যবহৃত হয়। নিচে ট্রুথ টেবিল দেওয়া হলো:

pqp & q (AND)p | q (OR)
0000
0101
1111
1001

ধরা যাক, A = 60 (0011 1100) এবং B = 13 (0000 1101)।

অপারেটরবর্ণনাউদাহরণফলাফল (দশমিক)
&বিট-ভিত্তিক ANDA & B12 (0000 1100)
|বিট-ভিত্তিক ORA | B61 (0011 1101)
~একের কমপ্লিমেন্ট (টগল)~A-61 (২’স কমপ্লিমেন্টে)
<<বামে শিফটA << 2240 (1111 0000)
>>ডানে শিফটA >> 215 (0000 1111)

টেস্ট SELECT:

sql

SELECT 60 & 13;  -- 12
SELECT 60 | 13;  -- 61
SELECT ~60;      -- -61
SELECT 60 << 2;  -- 240
SELECT 60 >> 2;  -- 15

আমাদের COMPANY টেবিলে বর্তমানে এ ধরনের বিট অপারেশনের তেমন প্রয়োগ নেই। তবে ধরুন, একটি কলাম PERMISSIONS (পূর্ণসংখ্যা) আছে যা বিভিন্ন বিট সেট ধরে রাখে। তাহলে নির্দিষ্ট বিট চেক করতে আমরা & ব্যবহার করি:

sql

SELECT NAME FROM USERS WHERE (PERMISSIONS & 4) != 0; -- তৃতীয় বিট চালু থাকলে

এটি পরে টেবিল ডিজাইন করার সময় কাজে লাগবে।


৫. সম্পূর্ণ অনুশীলন (নমুনা সেশন)

টার্মিনাল খুলে নিচের ধাপগুলো অনুসরণ করুন:

bash

sqlite3 company.db

sql

.header on
.mode column

-- গাণিতিক অপারেটর
SELECT NAME, SALARY, SALARY * 0.9 AS DISCOUNTED FROM COMPANY WHERE AGE > 25;

-- তুলনামূলক
SELECT NAME FROM COMPANY WHERE AGE != 25;

-- লজিক্যাল
SELECT NAME, AGE, SALARY FROM COMPANY WHERE AGE BETWEEN 23 AND 27 AND SALARY > 30000;

-- বিটওয়াইজ (টেস্ট)
SELECT 60 & 13 AS bitwise_and;

-- স্ট্রিং কনক্যাট
SELECT NAME || ' - ' || ADDRESS AS Details FROM COMPANY;

ডিরেক্টরি স্ট্রাকচার: শুধু company.db ফাইল। কোনো অতিরিক্ত প্যাকেজের প্রয়োজন নেই।


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

  • কেস সেনসিটিভ: LIKE কেস-ইনসেনসিটিভ (ছোট-বড় অক্ষর একই), কিন্তু GLOB কেস-সেনসিটিভ। তাই নির্ভুল প্যাটার্ন মেলাতে GLOB ব্যবহারে সতর্ক থাকুন।
  • NULL-এর সাথে তুলনা: = NULL সবসময় মিথ্যা; NULL চেক করতে IS NULL বা IS NOT NULL ব্যবহার করুন।
  • অগ্রাধিকার: অপারেটরের প্রাধান্য (precedence) রয়েছে। উদাহরণ: * / %-এর প্রাধান্য + --এর চেয়ে বেশি। জটিল শর্তে ব্র্যাকেট দিয়ে নিশ্চিত করুন।
  • বিট অপারেটরের ব্যবহার: বিট অপারেটর শুধুমাত্র পূর্ণসংখ্যায় কাজ করে। REAL টাইপের ওপর ব্যবহার করলে ফলাফল অপ্রত্যাশিত হতে পারে।
  • || বিকল্প: SQLite-তে কনক্যাটিনেশন করতে concat() ফাংশন নেই; || ব্যবহার করুন।

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

আমরা WHERE ক্লজ ও LIKE, GLOB, IN, BETWEEN-এর আরও গভীরে গিয়ে শিখব জটিল ডেটা ফিল্টারিং। একই সাথে LIMIT ও ORDER 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 অপারেটর (Operators) – Arithmetic, Comparison, Logical, Bitwise (বাংলা টিউটোরিয়াল) appeared first on To Learn Team.

]]>