SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)

Blog / SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)

SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা) Detail Page

SQLite UPDATE Query – টেবিলের ডেটা পরিবর্তন করার সম্পূর্ণ গাইড (বাংলা)

SQLite UPDATE কমান্ড দিয়ে টেবিলের ডেটা পরিবর্তন করার বাংলা টিউটোরিয়াল

ডাটাবেসে জমা রাখা ডেটা সবসময় একই থাকে না – কর্মীর বেতন বাড়ে, ঠিকানা বদলায়, ফোন নম্বর আপডেট হয়। 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 – বাংলায় পূর্ণাঙ্গ সংক্ষিপ্ত টিউটোরিয়াল (শেখার সহজ গাইড)

Leave a Reply

Welcome to To Learn Team, a dynamic educational platform where knowledge meets collaboration. Designed for students, educators, and lifelong learners, we provide a curated hub of interactive study groups, expert tutorials, and comprehensive resources across diverse subjects. We believe that learning is most powerful when done together. By uniting a global community, we transform curiosity into confidence and individual aspirations into shared achievements. Join the To Learn Team today—elevate your intellect and grow with us!

Get In Touch

Address

Dhaka, Bangladesh

Email

abir43tee@gmail.com

Phone

+880 1711427737

Quick Search