ही DML (डेटा मॅनिपुलेशन लँग्वेज) कमांड्स आहेत जी डेटा बदलतात: INSERT पंक्तीं जोडते, विद्यमान पंक्तीं सुधारते, पंक्तीं हटवते. (जो फक्त वाचते) च्या विपरीत, हे डेटाबेस सुधारतात — त्यामुळे सावधानी आवश्यक आहे, विशेषत: क्लॉज.
ही DML (डेटा मॅनिपुलेशन लँग्वेज) कमांड्स आहेत जी डेटा बदलतात: INSERT पंक्तीं जोडते, विद्यमान पंक्तीं सुधारते, पंक्तीं हटवते. (जो फक्त वाचते) च्या विपरीत, हे डेटाबेस सुधारतात — त्यामुळे सावधानी आवश्यक आहे, विशेषत: क्लॉज.
UPDATEDELETESELECTWHERE-- insert one row
INSERT INTO users (name, email, age)
VALUES ('Ann', '[email protected]', 30);
-- insert multiple rows at once (efficient)
INSERT INTO users (name, email)
VALUES ('Bob', '[email protected]'), ('Carol', '[email protected]');
-- insert from a query
INSERT INTO archived_users SELECT * FROM users WHERE inactive = true;
तुम्ही स्तंभ आणि मूल्ये निर्दिष्ट करता. एका विधानात अनेक पंक्तीं घालणे अनेक वेगळ्या इन्सर्ट्सपेक्षा अधिक कार्यक्षम आहे.
UPDATE users
SET age = 31, updated_at = NOW() -- set one or more columns
WHERE id = 5; -- ❗ WHICH rows to update
-- ❌ DANGER — no WHERE clause updates EVERY row in the table!
UPDATE users SET active = false; -- sets ALL users inactive 😱
गंभीर: WHERE क्लॉज शिवाय UPDATE (किंवा DELETE) सारण्यातील प्रत्येक पंक्तीवर परिणाम करते. WHERE विसरणे हा एक विनाशकारी, सामान्य चूक आहे — सर्वदा त्याची दुप्पट तपासणी करा.
DELETE FROM users WHERE id = 5; -- delete a specific row
DELETE FROM users WHERE inactive = true; -- delete matching rows
-- ❌ DANGER — no WHERE deletes the ENTIRE table's contents!
DELETE FROM users;
✓ ALWAYS include a WHERE clause (unless you truly mean to affect all rows)
✓ Test the WHERE first with SELECT (SELECT * WHERE ... → see what you'd affect)
✓ Use TRANSACTIONS (BEGIN ... COMMIT/ROLLBACK) so you can undo mistakes
✓ DELETE vs TRUNCATE: TRUNCATE quickly empties a whole table (faster, but not row-by-row,
can't be rolled back in some DBs, resets auto-increment)
INSERT, UPDATE, आणि DELETE हे असे आहे ज्याद्वारे अनुप्रयोग डेटा बदलतात — कोणत्याही अनुप्रयोगाचा आधार जो माहिती संचयित करतो आणि सुधारतो (रेकॉर्ड तयार करणे, संपादन, हटवणे), त्यामुळे हे समजून घेणे SELECT च्या बरोबर अपरिहार्य दैनंदिन ज्ञान आहे.
(एकल, अनेक किंवा क्वेरीवरून) पंक्तीं घालणे, (स्तंभ सेट करून) अपडेट करणे, आणि पंक्तीं हटवणे कसे करायचे हे जाणून घेणे सर्व डेटा-सुधारणा ऑपरेशन्ससाठी आवश्यक आहे.
सर्वात महत्वाचा मुद्दा म्हणजे गहाळ WHERE क्लॉजचा धोका: WHERE शिवाय UPDATE किंवा DELETE सारण्यातील प्रत्येक पंक्ती वर परिणाम करते — एक विनाशकारी, आश्चर्यकारकपणे सामान्य चूक जो सर्व डेटा मिटवू शकते किंवा खराब करू शकते.
हा धोका आणि सुरक्षा प्रथा समजून घेणे (सर्वदा WHERE समाविष्ट करा, अटी SELECT सह प्रथम तपासा, त्रुटी रोलबॅक केल्या जाऊ शकतील यासाठी ट्रान्जॅक्शन्स वापरा) महत्वाचे ज्ञान आहे जे गंभीर डेटा-नुकसान अपघातांना प्रतिबंधित करते.
संबंधित तपशील जाणून घेणे (कार्यक्षम मल्टी-पंक्ती इन्सर्ट्स, टेबल रिकामी करण्यासाठी DELETE विरुद्ध TRUNCATE) व्यावहारिक ज्ञान पूर्ण करते.
डेटा सुधारणे हे अनुप्रयोगांचा मूलभूत गोष्ट असल्याने, आणि गहाळ-WHERE चूक विनाशकारी आणि सामान्य दोन्ही असल्याने (वास्तविक उत्पादन डेटा आपत्तींचा वारंवार कारण), हे DML कमांड्स — आणि विशेषत: WHERE क्लॉज आणि ट्रान्जॅक्शनल सुरक्षेच्या आसपास गंभीर शिस्त — माहिती देणारी, डेटा-बदलणारी SQL लिहणाऱ्या कोणासाठीही मुख्य, अवश्य-माहिती ज्ञान आहे, जिथे स्टेक्स (अपरिवर्तनीय डेटा नुकसान) सुरक्षा प्रथांना सिंटॅक्स जितके महत्वाचे करतात.