MySQL Database Full Course – Somo la 14: UPDATE na SET – Jinsi ya Kubadilisha Data Iliyopo Katika MySQL
Karibu kwenye Somo la 14 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kutumia:
LIMITna:
OFFSETkupunguza idadi ya records tunazotaka kuonyesha.
Sasa tutajifunza jinsi ya kubadilisha data ambayo tayari ipo kwenye table.
Command muhimu tutakayotumia ni:
UPDATEpamoja na:
SETUPDATE ni command muhimu sana katika mifumo halisi kwa sababu taarifa zinaweza kubadilika.
Kwa mfano:
- Mwanafunzi amebadilisha phone number
- Jina limekosewa na linahitaji kurekebishwa
- Mwalimu amebadilisha subject
- Marks zimekosewa
- Product price imebadilika
- Stock imeongezeka
- User amebadilisha email
- Status ya record imebadilika
Malengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
UPDATEni nini - Kuelewa
SETni nini - Kubadilisha column moja
- Kubadilisha columns nyingi
- Kutumia
WHEREpamoja na UPDATE - Ku-update record kwa Primary Key
- Kubadilisha marks
- Kubadilisha phone number
- Kubadilisha prices
- Kutumia conditions kwenye UPDATE
- Kuelewa hatari ya UPDATE bila WHERE
- Kuangalia data kabla na baada ya UPDATE
- Kuepuka makosa ya kawaida
1. UPDATE ni Nini?
UPDATE ni SQL command inayotumika kubadilisha data iliyopo ndani ya table.
Mfano:
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 2;Hii ina maana:
Badilisha phone number ya student mwenye ID 2.
2. SET ni Nini?
SET hutumika kuonyesha column na value mpya tunayotaka kuweka.
Mfano:
SET phone_number = '0766666666'Hapa tunasema:
Weka phone_number kuwa 0766666666.
3. Structure ya UPDATE
Muundo wa kawaida ni:
UPDATE table_name
SET column_name = new_value
WHERE condition;Mfano:
UPDATE students
SET student_name = 'Asha Hassan'
WHERE student_id = 1;4. Tutumie Table ya Students
Fikiria tuna table hii:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
gender VARCHAR(10),
age INT,
phone_number VARCHAR(20),
class_name VARCHAR(50)
);Ingiza data:
INSERT INTO students (
student_name,
gender,
age,
phone_number,
class_name
)
VALUES
('Asha Mussa', 'Female', 16, '0711111111', 'Form One'),
('John Peter', 'Male', 17, '0722222222', 'Form Two'),
('Neema Joseph', 'Female', 15, '0733333333', 'Form One'),
('Peter Michael', 'Male', 18, '0744444444', 'Form Three');5. Kuangalia Data Kabla ya UPDATE
Kabla ya kubadilisha record, ni vizuri kuiangalia kwanza.
Mfano:
SELECT *
FROM students
WHERE student_id = 2;Unaweza kuona:
student_id: 2
student_name: John Peter
phone_number: 07222222226. Kubadilisha Phone Number
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 2;Baada ya hapo:
SELECT *
FROM students
WHERE student_id = 2;Phone number mpya inaweza kuwa:
07666666667. Kubadilisha Jina la Student
UPDATE students
SET student_name = 'John Michael'
WHERE student_id = 2;Hii itabadilisha jina la student mwenye ID 2 pekee.
8. Kwa Nini WHERE ni Muhimu?
Hili ni jambo muhimu sana.
Query:
UPDATE students
SET class_name = 'Form Two';haina WHERE.
Hii inaweza kubadilisha:
Records zote kwenye students table.
Kila student anaweza kuwekwa Form Two.
Ndiyo maana lazima uwe makini sana na UPDATE.
9. UPDATE Bila WHERE ni Hatari
Mfano:
UPDATE students
SET gender = 'Male';Hii inaweza kufanya records zote ziwe:
MaleIkiwa ulikuwa unataka kubadilisha student mmoja tu, umefanya kosa kubwa.
Kwa hiyo rule muhimu ni:
Kabla ya kufanya UPDATE, jiulize kama unahitaji WHERE.
10. UPDATE kwa Primary Key
Njia salama na ya kawaida ni kutumia Primary Key.
Mfano:
UPDATE students
SET phone_number = '0755555555'
WHERE student_id = 3;Kwa sababu student_id ni unique, tunalenga record moja maalumu.
11. Kubadilisha Age
UPDATE students
SET age = 16
WHERE student_id = 3;12. Kubadilisha Class
UPDATE students
SET class_name = 'Form Two'
WHERE student_id = 3;13. Kubadilisha Columns Nyingi
Unaweza kubadilisha zaidi ya column moja kwa query moja.
Mfano:
UPDATE students
SET
student_name = 'Neema Hassan',
age = 16,
phone_number = '0788888888'
WHERE student_id = 3;Hii itabadilisha columns tatu.
14. Comma Kwenye SET
Columns nyingi zinatenganishwa kwa comma.
Mfano sahihi:
UPDATE students
SET
age = 17,
class_name = 'Form Two'
WHERE student_id = 1;15. UPDATE kwa Jina
Unaweza kutumia:
UPDATE students
SET phone_number = '0712345678'
WHERE student_name = 'Asha Mussa';Lakini hii inaweza kuwa risky ikiwa students wawili wana jina moja.
Kwa hiyo Primary Key mara nyingi ni bora zaidi.
16. Kwa Nini Primary Key ni Bora?
Fikiria tuna students wawili:
Asha Mussa
Asha MussaUkiandika:
UPDATE students
SET class_name = 'Form Three'
WHERE student_name = 'Asha Mussa';records zote zinazolingana na jina hilo zinaweza kubadilika.
Lakini:
UPDATE students
SET class_name = 'Form Three'
WHERE student_id = 8;inalenga record moja maalumu.
17. UPDATE na Text
Text inawekwa kwenye quotes.
Mfano:
UPDATE students
SET gender = 'Female'
WHERE student_id = 1;18. UPDATE na Numbers
Numeric values hazihitaji quotes.
Mfano:
UPDATE students
SET age = 18
WHERE student_id = 1;19. UPDATE na NULL
Unaweza kuweka column kuwa NULL ikiwa column inaruhusu NULL.
Mfano:
UPDATE students
SET phone_number = NULL
WHERE student_id = 4;Hii ina maana phone number haipo.
20. Kutofautisha NULL na 'NULL'
Sahihi:
SET phone_number = NULLHii ni SQL NULL.
Lakini:
SET phone_number = 'NULL'hii ni text yenye neno:
NULLNi vitu tofauti.
21. UPDATE na Table ya Marks
Tutengeneze:
CREATE TABLE marks (
mark_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
subject VARCHAR(100),
score DECIMAL(5,2)
);Ingiza:
INSERT INTO marks (
student_name,
subject,
score
)
VALUES
('Asha Mussa', 'Mathematics', 85),
('John Peter', 'Mathematics', 42),
('Neema Joseph', 'Mathematics', 91),
('Peter Michael', 'Mathematics', 55);22. Kubadilisha Marks
Fikiria score ya John Peter ilikosewa.
Tuna:
42lakini score sahihi ni:
62Tunaweza kufanya:
UPDATE marks
SET score = 62
WHERE mark_id = 2;23. Kuangalia Marks Baada ya UPDATE
SELECT *
FROM marks
WHERE mark_id = 2;Unaweza kuona:
John Peter
Mathematics
6224. Kubadilisha Subject na Score
UPDATE marks
SET
subject = 'English',
score = 75
WHERE mark_id = 4;25. UPDATE na WHERE Condition
Sio lazima WHERE iwe Primary Key kila wakati.
Mfano:
UPDATE students
SET class_name = 'Form Two'
WHERE age = 16;Hii inaweza kubadilisha students wote wenye age 16.
Hapa tunakusudia records nyingi.
26. UPDATE Records Nyingi
Mfano:
UPDATE products
SET price = 50000
WHERE category = 'Accessories';Products zote za category Accessories zinaweza kupata price mpya.
Kwa hiyo UPDATE inaweza kubadilisha:
- Record moja
- Records nyingi
- Records zote
Kulingana na condition yako.
27. UPDATE na AND
Tunaweza kutumia:
UPDATE students
SET class_name = 'Form Two'
WHERE gender = 'Female'
AND age = 16;Hii itabadilisha Female students wenye age 16 tu.
28. UPDATE na OR
Mfano:
UPDATE students
SET class_name = 'Special Class'
WHERE student_id = 1
OR student_id = 3;Records zenye IDs 1 na 3 zinaweza kubadilishwa.
29. UPDATE na NOT
Mfano:
UPDATE students
SET class_name = 'General Class'
WHERE NOT gender = 'Female';Kwa data yenye Male na Female, inaweza kubadilisha Male students.
Lakini tumia conditions kama hizi kwa umakini mkubwa.
30. UPDATE na Comparison Operators
Unaweza kutumia:
=
>
<
>=
<=
!=
<>Mfano:
UPDATE products
SET discount = 10
WHERE price >= 500000;ikiwa table ina column ya discount.
31. UPDATE katika Products Table
Fikiria:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
price DECIMAL(10,2),
quantity INT
);32. Kubadilisha Product Price
UPDATE products
SET price = 1600000
WHERE product_id = 1;33. Kubadilisha Quantity
UPDATE products
SET quantity = 20
WHERE product_id = 1;34. Kubadilisha Price na Quantity
UPDATE products
SET
price = 1550000,
quantity = 15
WHERE product_id = 1;35. Kuongeza Quantity kwa Value Iliyopo
UPDATE inaweza kufanya calculation.
Mfano:
UPDATE products
SET quantity = quantity + 10
WHERE product_id = 1;Kama quantity ilikuwa:
5inaweza kuwa:
1536. Kupunguza Quantity
Mfano:
UPDATE products
SET quantity = quantity - 1
WHERE product_id = 1;Hii ni concept muhimu kwenye shop system baada ya product kuuzwa.
37. Kuongeza Salary kwa Employees
Fikiria table:
employeesUnaweza kufanya:
UPDATE employees
SET salary = salary + 100000
WHERE employee_id = 2;38. Kuongeza Salary kwa Department Nzima
UPDATE employees
SET salary = salary + 50000
WHERE department = 'IT';Employees wote wa IT wanaweza kuongezewa salary.
39. Percentage Increase
Unaweza kufanya calculation.
Mfano kuongeza price kwa asilimia 10:
UPDATE products
SET price = price * 1.10
WHERE category = 'Electronics';Hii inaongeza 10%.
Lakini kabla ya kufanya update ya records nyingi, ni vizuri sana kufanya SELECT kwanza.
40. SELECT Kabla ya UPDATE
Hii ni habit muhimu.
Kabla ya:
UPDATE products
SET price = price * 1.10
WHERE category = 'Electronics';anza na:
SELECT *
FROM products
WHERE category = 'Electronics';Angalia kama records unazotaka ndizo zitakazobadilishwa.
Kisha ndiyo ufanye UPDATE.
41. Workflow Salama ya UPDATE
Hatua nzuri ni:
1. SELECT record
2. Hakikisha ni record sahihi
3. UPDATE
4. SELECT tena
5. Hakikisha change imefanyika vizuriMfano:
SELECT *
FROM students
WHERE student_id = 3;Kisha:
UPDATE students
SET phone_number = '0788888888'
WHERE student_id = 3;Halafu:
SELECT *
FROM students
WHERE student_id = 3;42. UPDATE na LIMIT
MySQL inaweza kuruhusu matumizi kama:
UPDATE students
SET class_name = 'Form Two'
WHERE age = 16
LIMIT 1;Hii inaweza kupunguza update hadi record moja.
Lakini usitumie LIMIT kama mbadala wa condition nzuri.
Ni bora kutumia identifier sahihi kama Primary Key.
43. Makosa ya Kawaida – Kusahau WHERE
Hili ndiyo kosa kubwa zaidi.
Mfano:
UPDATE students
SET class_name = 'Form Four';Hii inaweza kubadilisha students wote.
Ikiwa ulikuwa unataka student mmoja tu, hiyo ni hatari.
44. Makosa ya Kawaida – Kusahau SET
Mfano mbaya:
UPDATE students
phone_number = '0711111111'
WHERE student_id = 1;Sahihi:
UPDATE students
SET phone_number = '0711111111'
WHERE student_id = 1;45. Makosa ya Kawaida – Kusahau Comma
Mfano mbaya:
UPDATE students
SET
age = 17
class_name = 'Form Two'
WHERE student_id = 1;Sahihi:
UPDATE students
SET
age = 17,
class_name = 'Form Two'
WHERE student_id = 1;46. Makosa ya Kawaida – Column Isiyopo
Mfano:
UPDATE students
SET location = 'Masasi'
WHERE student_id = 1;Lakini kama location haipo, MySQL itatoa error.
Tumia:
DESC students;kuangalia columns.
47. Makosa ya Kawaida – Table Isiyopo
Mfano:
UPDATE student
SET age = 18
WHERE student_id = 1;lakini table inaitwa:
studentsSahihi:
UPDATE students
SET age = 18
WHERE student_id = 1;48. Makosa ya Kawaida – Quotes
Mfano mbaya:
UPDATE students
SET student_name = Asha Hassan
WHERE student_id = 1;Sahihi:
UPDATE students
SET student_name = 'Asha Hassan'
WHERE student_id = 1;49. Makosa ya Kawaida – Condition Isiyo Sahihi
Fikiria unataka ID 5 lakini ukaandika:
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 6;Query inaweza kuwa valid lakini ukabadilisha record isiyo sahihi.
Ndiyo maana SELECT kabla ya UPDATE ni muhimu.
50. UPDATE na Safe Update Mode
Katika baadhi ya MySQL tools unaweza kukutana na error kuhusu:
Safe Update ModeHii inaweza kutokea unapojaribu update bila kutumia key column kwenye WHERE.
Mfano:
UPDATE students
SET age = 18
WHERE gender = 'Male';MySQL Workbench inaweza kuzuia query kulingana na settings.
Safe Update Mode imeundwa kusaidia kuzuia accidental mass updates.
Kwa beginner, ni vizuri kuelewa warning hiyo badala ya kuzima protection bila sababu.
51. UPDATE katika Mfumo wa Shule
User anaweza kufungua page:
Edit StudentForm inaweza kuwa na:
Student Name
Gender
Phone Number
ClassBaada ya kubonyeza:
UpdateSQL concept inaweza kuwa:
UPDATE students
SET
student_name = 'Asha Hassan',
phone_number = '0712345678',
class_name = 'Form Two'
WHERE student_id = 1;52. UPDATE katika PHP
Baadaye tutakapofika PHP, hatutafanya hivi moja kwa moja kwa data ya user:
UPDATE students
SET student_name = '$student_name'
WHERE student_id = $student_id;Badala yake tutajifunza kutumia:
Prepared Statementskwa usalama zaidi.
Hii itasaidia kuzuia SQL Injection.
53. UPDATE katika Mfumo wa Marks
Teacher anaweza ku-edit marks.
Mfano:
UPDATE marks
SET score = 78
WHERE mark_id = 15;54. UPDATE katika User System
Fikiria table:
usersUnaweza kubadilisha email:
UPDATE users
SET email = 'newemail@example.com'
WHERE user_id = 7;55. UPDATE katika Blog System
Fikiria table:
postsAdmin anaweza ku-edit title:
UPDATE posts
SET title = 'MySQL Tutorial Mpya'
WHERE post_id = 10;Au title na content:
UPDATE posts
SET
title = 'MySQL Database Tutorial',
content = 'Hii ni content iliyorekebishwa.'
WHERE post_id = 10;56. UPDATE katika Accounting System
Fikiria contribution amount ilikosewa.
Unaweza kufanya:
UPDATE contributions
SET amount = 50000
WHERE contribution_id = 15;57. UPDATE na Date
Fikiria:
paid_dateUnaweza kufanya:
UPDATE contributions
SET paid_date = '2026-09-02'
WHERE contribution_id = 15;58. UPDATE na CURRENT_TIMESTAMP
Ikiwa table ina:
updated_atunaweza kufanya:
UPDATE students
SET
phone_number = '0788888888',
updated_at = CURRENT_TIMESTAMP
WHERE student_id = 3;Hii inaweza kuhifadhi muda wa mwisho record ilipobadilishwa.
59. updated_at Automatically
Table inaweza pia kutengenezwa ili updated_at ibadilike automatically.
Mfano:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100),
updated_at TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
);Hapo MySQL inaweza kubadilisha updated_at automatically kila record inapofanyiwa update.
60. UPDATE na DEFAULT
Kwenye baadhi ya mazingira unaweza kurudisha column kwenye default yake.
Mfano table ina:
status VARCHAR(20) DEFAULT 'Active'Unaweza kutumia:
UPDATE users
SET status = DEFAULT
WHERE user_id = 5;61. UPDATE na Multiple Conditions
Mfano:
UPDATE students
SET class_name = 'Form Two'
WHERE gender = 'Female'
AND age = 16
AND class_name = 'Form One';Hii inalenga records zinazotimiza conditions zote tatu.
62. Parentheses Katika UPDATE Conditions
Unaweza kutumia:
UPDATE students
SET class_name = 'Special Class'
WHERE (
student_id = 1
OR student_id = 3
)
AND age >= 16;Parentheses husaidia kuweka logic wazi.
63. UPDATE na ORDER BY
MySQL inaweza kuruhusu baadhi ya single-table updates kutumia ORDER BY.
Mfano:
UPDATE products
SET price = price + 1000
WHERE category = 'Electronics'
ORDER BY product_id ASC
LIMIT 2;Hii inaweza ku-update records 2 za kwanza kulingana na order.
Hata hivyo, kwenye mfumo halisi ni vizuri zaidi kulenga records wazi kwa keys au conditions sahihi.
64. Je UPDATE Inabadilisha Structure ya Table?
Hapana.
UPDATE inabadilisha:
Datahaibadilishi:
Table StructureKwa kubadilisha structure tunatumia commands kama:
ALTER TABLEambazo tutajifunza baadaye.
65. UPDATE vs ALTER TABLE
UPDATE:
UPDATE students
SET student_name = 'Asha Hassan'
WHERE student_id = 1;Inabadilisha data.
ALTER TABLE:
ALTER TABLE students
ADD email VARCHAR(150);Inabadilisha structure.
Ni muhimu kutofautisha hizi.
66. UPDATE vs INSERT
INSERT huongeza record mpya:
INSERT INTO students (student_name)
VALUES ('Asha Mussa');UPDATE hubadilisha record iliyopo:
UPDATE students
SET student_name = 'Asha Hassan'
WHERE student_id = 1;67. UPDATE vs SELECT
SELECT husoma data:
SELECT *
FROM students;UPDATE hubadilisha data:
UPDATE students
SET age = 17
WHERE student_id = 1;68. Workflow Yetu Mpaka Sasa
Tumeshajifunza:
CREATE DATABASE
USE
CREATE TABLE
PRIMARY KEY
AUTO_INCREMENT
INSERT INTO
SELECT
WHERE
AND
OR
NOT
ORDER BY
LIMIT
OFFSET
UPDATEMfano:
SELECT *
FROM students
WHERE gender = 'Female'
ORDER BY student_name ASC
LIMIT 10;Na sasa:
UPDATE students
SET phone_number = '0712345678'
WHERE student_id = 1;69. Mazoezi ya Somo
Tumia table ya students yenye:
student_id
student_name
gender
age
phone_number
class_nameFanya yafuatayo:
- Badilisha phone number ya student ID 1.
- Badilisha jina la student ID 2.
- Badilisha age ya student ID 3.
- Badilisha age na class_name ya student ID 4.
- Weka phone_number ya student ID 5 kuwa NULL.
- Badilisha class ya Female students wenye age 16.
- Angalia record kabla na baada ya kila UPDATE.
70. Challenge ya Somo
Tengeneza table:
productsyenye:
product_id
product_name
category
price
quantityIngiza products angalau 6.
Kisha:
- Badilisha price ya product ID 1.
- Badilisha quantity ya product ID 2.
- Badilisha price na quantity ya product ID 3.
- Ongeza quantity ya product ID 4 kwa 10.
- Punguza quantity ya product ID 5 kwa 1.
- Ongeza price ya products za Electronics kwa 5%.
- Tumia SELECT kabla ya mass update.
- Angalia results baada ya UPDATE.
Mfano:
SELECT *
FROM products
WHERE category = 'Electronics';Kisha:
UPDATE products
SET price = price * 1.05
WHERE category = 'Electronics';71. Maswali ya Kujipima
Jaribu kujibu:
UPDATEinatumika kufanya nini?SETinatumika kufanya nini?- Kwa nini WHERE ni muhimu kwenye UPDATE?
- Nini kinaweza kutokea ukifanya UPDATE bila WHERE?
- Unawezaje kubadilisha columns mbili kwa wakati mmoja?
- Kwa nini Primary Key ni nzuri kwenye UPDATE?
- Unawezaje kuongeza quantity kwa 5?
- Unawezaje kuweka value kuwa NULL?
- Kuna tofauti gani kati ya UPDATE na ALTER TABLE?
- Kwa nini ni vizuri kufanya SELECT kabla ya UPDATE kubwa?
72. Muhtasari wa Somo
Katika somo hili tumejifunza kutumia:
UPDATEna:
SETkubadilisha data iliyopo.
Mfano:
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 2;Kubadilisha columns nyingi:
UPDATE students
SET
student_name = 'John Michael',
age = 18,
phone_number = '0712345678'
WHERE student_id = 2;Kufanya calculation:
UPDATE products
SET quantity = quantity + 10
WHERE product_id = 1;Tumejifunza pia jambo muhimu sana:
UPDATE bila WHERE inaweza kubadilisha records nyingi au records zote.
Kwa hiyo kabla ya UPDATE kubwa, ni vizuri kuanza na:
SELECT *
FROM table_name
WHERE condition;uhakikishe condition yako inalenga records sahihi.
Somo Linalofuata
Katika Somo la 15 tutajifunza:
DELETE – Jinsi ya Kufuta Records Katika MySQL
Tutajifunza:
DELETE FROM- Kufuta record moja
- Kufuta kwa Primary Key
- Kutumia WHERE
- Kufuta records nyingi
- Kutumia AND na OR
- Hatari ya DELETE bila WHERE
- Kuangalia record kabla ya DELETE
- Tofauti ya DELETE na DROP
- Tofauti ya DELETE na TRUNCATE
- Usalama wakati wa kufuta data
- Mifano ya mifumo halisi
- Mazoezi ya DELETE
Hili ni somo muhimu sana kwa sababu DELETE inaweza kuondoa data kabisa, hivyo lazima itumike kwa umakini mkubwa.
🚀 Unahitaji mfumo au website ya biashara?
Chagua huduma hapa chini kisha mteja bofya moja kwa moja kwenda kwenye ukurasa wa huduma au kuwasiliana nasi kwa WhatsApp.