MySQL Database Full Course – Somo la 8: INSERT INTO – Jinsi ya Kuingiza Data Kwenye Table kwa MySQL
Karibu kwenye Somo la 8 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kuhusu:
PRIMARY KEYAUTO_INCREMENT- Unique ID
- Jinsi MySQL inavyotengeneza ID automatically
Sasa tayari tunaweza kutengeneza database na tables zenye structure nzuri.
Katika somo hili tutajifunza command muhimu sana inayotumika kuingiza data kwenye table:
INSERT INTOHii ndiyo command utakayotumia kila unapohitaji kuongeza taarifa mpya kwenye database.
Kwa mfano:
- Kusajili mwanafunzi
- Kuongeza mwalimu
- Kuongeza shule
- Kuongeza subject
- Kuweka marks
- Kusajili user
- Kuongeza product
- Kuongeza blog post
Malengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
INSERT INTOni nini - Kuingiza record moja kwenye table
- Kuingiza records nyingi kwa wakati mmoja
- Kuingiza data kwenye columns maalumu
- Kutumia AUTO_INCREMENT wakati wa INSERT
- Kuelewa matumizi ya
NULL - Kuingiza numbers na text kwa usahihi
- Kuelewa matumizi ya single quotes
- Kutambua makosa ya kawaida ya INSERT
- Kuangalia data baada ya kuiingiza
- Kutengeneza mfano wa mfumo wa shule
1. INSERT INTO ni Nini?
INSERT INTO ni SQL command inayotumika kuongeza record mpya ndani ya table.
Mfano:
INSERT INTO students (student_name)
VALUES ('Asha Mussa');Command hii inaambia MySQL:
Ongeza record mpya kwenye table ya
students.
2. Structure ya INSERT INTO
Muundo wa kawaida ni:
INSERT INTO table_name (column1, column2, column3)
VALUES (value1, value2, value3);Mfano:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'Asha Mussa',
'Female',
'0712345678'
);Hapa:
studentsni jina la table.
Halafu:
student_name
gender
phone_numberni columns.
Na:
Asha Mussa
Female
0712345678ni values tunazoingiza.
3. Tutengeneze Table Yetu
Kabla ya kutumia INSERT INTO, lazima tuwe na table.
Mfano:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
gender VARCHAR(10),
phone_number VARCHAR(20),
email VARCHAR(150)
);Table hii ina columns:
student_id
student_name
gender
phone_number
emailstudent_id ni:
PRIMARY KEY AUTO_INCREMENTKwa hiyo hatutalazimika kuingiza ID wenyewe.
4. Kuingiza Record Moja
Tuingize mwanafunzi mmoja:
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES (
'Asha Mussa',
'Female',
'0712345678',
'asha@example.com'
);MySQL inaweza kutengeneza:
student_id = 1automatically.
5. Kuangalia Data Tuliyoingiza
Baada ya INSERT tunaweza kutumia:
SELECT * FROM students;Result inaweza kuwa:
+------------+--------------+--------+--------------+------------------+
| student_id | student_name | gender | phone_number | email |
+------------+--------------+--------+--------------+------------------+
| 1 | Asha Mussa | Female | 0712345678 | asha@example.com |
+------------+--------------+--------+--------------+------------------+Hapa tunaona record imeingia vizuri.
6. Kuingiza Mwanafunzi wa Pili
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES (
'John Peter',
'Male',
'0722222222',
'john@example.com'
);Kisha:
SELECT * FROM students;Result inaweza kuwa:
+------------+--------------+--------+--------------+------------------+
| student_id | student_name | gender | phone_number | email |
+------------+--------------+--------+--------------+------------------+
| 1 | Asha Mussa | Female | 0712345678 | asha@example.com |
| 2 | John Peter | Male | 0722222222 | john@example.com |
+------------+--------------+--------+--------------+------------------+MySQL imetengeneza ID ya pili automatically.
7. Kwa Nini Hatujaweka student_id?
Kwa sababu:
student_id INT PRIMARY KEY AUTO_INCREMENTMySQL yenyewe inaongeza namba.
Kwa hiyo tunaandika:
INSERT INTO students (
student_name,
gender
)
VALUES (
'Neema Joseph',
'Female'
);Badala ya:
INSERT INTO students (
student_id,
student_name,
gender
)
VALUES (
3,
'Neema Joseph',
'Female'
);Njia ya kwanza ni nzuri zaidi ikiwa ID ni AUTO_INCREMENT.
8. Kuingiza Data Kwenye Columns Chache
Si lazima kila mara ujaze columns zote.
Mfano:
INSERT INTO students (
student_name,
gender
)
VALUES (
'Anna Charles',
'Female'
);Hapa hatujaweka:
phone_number
emailKama columns hizo zinaruhusu NULL, MySQL inaweza kuweka:
NULL9. NULL ni Nini?
NULL ina maana:
Hakuna value iliyowekwa.
Mfano:
student_name = Anna Charles
gender = Female
phone_number = NULL
email = NULLHii si sawa na:
''Empty string na NULL ni vitu tofauti.
10. Kuweka NULL Wakati wa INSERT
Unaweza kuandika:
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES (
'Peter Michael',
'Male',
NULL,
NULL
);Muhimu:
NULL haiwekwi kwenye quotes.
Sahihi:
NULLSi sahihi:
'NULL'Kwa sababu 'NULL' itachukuliwa kama text.
11. Text Lazima Iwekwe Kwenye Quotes
Mfano wa text:
Asha Mussa
Female
Dar es SalaamKwa SQL tunatumia single quotes:
'Asha Mussa''Female''Dar es Salaam'Mfano:
INSERT INTO students (student_name)
VALUES ('Asha Mussa');12. Numbers Hazihitaji Quotes
Kwa mfano tuna table:
CREATE TABLE marks (
id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
score INT
);Tunaweza kuandika:
INSERT INTO marks (
student_name,
score
)
VALUES (
'Asha Mussa',
85
);Hapa:
85ni number.
Kwa hiyo hatuhitaji:
'85'Ingawa MySQL wakati mwingine inaweza kubadilisha automatically, ni vizuri kutumia data types kwa usahihi.
13. Kuingiza Decimal Values
Mfano tuna:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
price DECIMAL(10,2)
);Tunaweza kuingiza:
INSERT INTO products (
product_name,
price
)
VALUES (
'Laptop',
1500000.00
);Hapa:
1500000.00ni decimal number.
14. Kuingiza Records Nyingi kwa Wakati Mmoja
Hili ni jambo muhimu sana.
Badala ya kuandika INSERT mara nyingi:
INSERT INTO students (student_name, gender)
VALUES ('Asha Mussa', 'Female');INSERT INTO students (student_name, gender)
VALUES ('John Peter', 'Male');INSERT INTO students (student_name, gender)
VALUES ('Neema Joseph', 'Female');Tunaweza kuandika command moja:
INSERT INTO students (
student_name,
gender
)
VALUES
('Asha Mussa', 'Female'),
('John Peter', 'Male'),
('Neema Joseph', 'Female');Hii inaitwa:
Multiple Row INSERT15. Mfano wa Kuingiza Wanafunzi Wengi
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES
(
'Asha Mussa',
'Female',
'0711111111',
'asha@example.com'
),
(
'John Peter',
'Male',
'0722222222',
'john@example.com'
),
(
'Neema Joseph',
'Female',
'0733333333',
'neema@example.com'
),
(
'Peter Joseph',
'Male',
'0744444444',
'peter@example.com'
);Kisha:
SELECT * FROM students;16. Mpangilio wa Columns na Values
Hili ni muhimu sana.
Ikiwa umeandika:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'Asha Mussa',
'Female',
'0712345678'
);Mpangilio ni:
student_name -> Asha Mussa
gender -> Female
phone_number -> 0712345678Usibadilishe values bila kubadilisha columns.
Mfano mbaya:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'0712345678',
'Asha Mussa',
'Female'
);Hapa data imewekwa kwenye columns zisizo sahihi.
17. INSERT Bila Kuandika Majina ya Columns
Unaweza kuona code kama:
INSERT INTO students
VALUES (
1,
'Asha Mussa',
'Female',
'0712345678',
'asha@example.com'
);Njia hii inaweza kufanya kazi ikiwa umeweka value kwa kila column katika mpangilio halisi wa table.
Lakini si njia nzuri sana kwa beginner.
Njia inayopendekezwa ni:
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES (
'Asha Mussa',
'Female',
'0712345678',
'asha@example.com'
);Hii ni rahisi kusoma na kupunguza makosa.
18. INSERT na NOT NULL
Fikiria table:
CREATE TABLE teachers (
teacher_id INT PRIMARY KEY AUTO_INCREMENT,
teacher_name VARCHAR(100) NOT NULL,
gender VARCHAR(10)
);Hapa:
teacher_name VARCHAR(100) NOT NULLina maana teacher_name lazima iwepo.
Kwa hiyo:
INSERT INTO teachers (gender)
VALUES ('Male');inaweza kutoa error.
Kwa sababu teacher_name haijapewa value.
Sahihi:
INSERT INTO teachers (
teacher_name,
gender
)
VALUES (
'Joseph Michael',
'Male'
);19. INSERT na DEFAULT Value
Tunaweza kutengeneza table:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100),
status VARCHAR(20) DEFAULT 'Active'
);Kisha:
INSERT INTO users (username)
VALUES ('faustine');MySQL inaweza kuweka:
status = Activeautomatically.
20. Mfano wa Students Table ya Mfumo Halisi
Tunaweza kuwa na:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10),
date_of_birth DATE,
phone_number VARCHAR(20),
email VARCHAR(150),
address VARCHAR(255)
);Kisha:
INSERT INTO students (
student_name,
gender,
date_of_birth,
phone_number,
email,
address
)
VALUES (
'Asha Mussa',
'Female',
'2008-05-14',
'0712345678',
'asha@example.com',
'Masasi, Mtwara'
);21. Kuingiza DATE
Kwa MySQL date mara nyingi tunatumia format:
YYYY-MM-DDMfano:
2026-09-02Kwa hiyo:
INSERT INTO students (
student_name,
date_of_birth
)
VALUES (
'John Peter',
'2007-11-20'
);22. Mfano wa Teachers Table
CREATE TABLE teachers (
teacher_id INT PRIMARY KEY AUTO_INCREMENT,
teacher_name VARCHAR(100) NOT NULL,
gender VARCHAR(10),
subject VARCHAR(100),
phone_number VARCHAR(20),
email VARCHAR(150)
);Ingiza teacher:
INSERT INTO teachers (
teacher_name,
gender,
subject,
phone_number,
email
)
VALUES (
'Joseph Michael',
'Male',
'Mathematics',
'0755555555',
'joseph@example.com'
);23. Kuingiza Walimu Wengi
INSERT INTO teachers (
teacher_name,
gender,
subject
)
VALUES
('Joseph Michael', 'Male', 'Mathematics'),
('Anna Charles', 'Female', 'English'),
('Peter John', 'Male', 'Physics'),
('Neema Mussa', 'Female', 'Chemistry');24. Mfano wa Subjects Table
CREATE TABLE subjects (
subject_id INT PRIMARY KEY AUTO_INCREMENT,
subject_name VARCHAR(100) NOT NULL
);Kisha:
INSERT INTO subjects (subject_name)
VALUES ('Mathematics');INSERT INTO subjects (subject_name)
VALUES ('English Language');INSERT INTO subjects (subject_name)
VALUES ('Physics');25. Kuingiza Subjects Nyingi kwa Command Moja
INSERT INTO subjects (subject_name)
VALUES
('Mathematics'),
('English Language'),
('Physics'),
('Chemistry'),
('Biology'),
('Geography'),
('History'),
('Civics'),
('Kiswahili');Hii ni efficient zaidi kuliko kuandika INSERT mara tisa.
26. Mfano wa Marks Table
CREATE TABLE marks (
mark_id INT PRIMARY KEY AUTO_INCREMENT,
student_id INT,
subject_id INT,
score DECIMAL(5,2)
);Kisha:
INSERT INTO marks (
student_id,
subject_id,
score
)
VALUES (
1,
2,
85.50
);Hapa tunasema:
student_id = 1
subject_id = 2
score = 85.5027. Makosa ya Kawaida – Kusahau Quotes
Mfano mbaya:
INSERT INTO students (student_name)
VALUES (Asha Mussa);MySQL inaweza kutoa error.
Sahihi:
INSERT INTO students (student_name)
VALUES ('Asha Mussa');28. Makosa ya Kawaida – Idadi ya Columns na Values Kutofautiana
Mfano:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'Asha Mussa',
'Female'
);Tuna columns tatu:
student_name
gender
phone_numberlakini values ni mbili.
Hii inaweza kutoa error.
Sahihi:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'Asha Mussa',
'Female',
'0712345678'
);29. Makosa ya Kawaida – Kusahau Comma
Mfano mbaya:
INSERT INTO students (
student_name
gender
)
VALUES (
'Asha Mussa'
'Female'
);Sahihi:
INSERT INTO students (
student_name,
gender
)
VALUES (
'Asha Mussa',
'Female'
);Comma ni muhimu kutenganisha columns na values.
30. Makosa ya Kawaida – Duplicate Primary Key
Fikiria table haina AUTO_INCREMENT na tayari tuna:
id = 1Tukifanya:
INSERT INTO students (
student_id,
student_name
)
VALUES (
1,
'John Peter'
);MySQL inaweza kutoa:
Duplicate entryKwa sababu Primary Key lazima iwe unique.
31. Makosa ya Kawaida – Data Ndefu Kuliko Column
Mfano:
student_name VARCHAR(10)Halafu tunaingiza jina refu sana:
INSERT INTO students (student_name)
VALUES ('Christopher Alexander Michael');Kulingana na MySQL mode, unaweza kupata error au data kukatwa.
Ndiyo maana unapaswa kuchagua column size inayofaa.
Mfano:
student_name VARCHAR(100)32. Kutumia SHOW WARNINGS
Ikiwa query imeleta warning unaweza kutumia:
SHOW WARNINGS;Hii inaweza kusaidia kujua tatizo lililotokea.
33. Kuangalia Record ya Mwisho
Baada ya INSERT unaweza kutumia:
SELECT * FROM students;Au baadaye tutajifunza kutumia:
ORDER BYna:
LIMITili kupata records maalumu.
Mfano:
SELECT *
FROM students
ORDER BY student_id DESC
LIMIT 1;Hii inaweza kuonyesha record ya mwisho kwa ID.
34. INSERT Katika Mfumo wa PHP
Baadaye tutakapojifunza PHP, form inaweza kuwa:
Student Name:
Gender:
Phone Number:
Email:User akibonyeza:
SavePHP inaweza kutuma data kwenye MySQL kwa kutumia INSERT.
Concept yake inaweza kuwa:
INSERT INTO students (
student_name,
gender,
phone_number,
email
)
VALUES (
'Asha Mussa',
'Female',
'0712345678',
'asha@example.com'
);Kwa mfumo halisi tutatumia prepared statements badala ya kuweka data ya user moja kwa moja ndani ya query, kwa sababu hiyo ni salama zaidi.
35. Workflow Kamili
Tunaweza kufanya:
CREATE DATABASE school_management;Chagua database:
USE school_management;Tengeneza table:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10),
phone_number VARCHAR(20)
);Ingiza data:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES
('Asha Mussa', 'Female', '0711111111'),
('John Peter', 'Male', '0722222222'),
('Neema Joseph', 'Female', '0733333333');Angalia data:
SELECT * FROM students;Hapa tayari tumetumia pamoja:
CREATE DATABASE
USE
CREATE TABLE
PRIMARY KEY
AUTO_INCREMENT
INSERT INTO
SELECT36. Mazoezi ya Somo
Tengeneza table:
teachersiwe na columns:
teacher_id
teacher_name
gender
subject
phone_numberteacher_id iwe:
INT PRIMARY KEY AUTO_INCREMENTKisha ingiza walimu watano.
Mfano:
Joseph Michael
Anna Charles
Peter John
Neema Mussa
John ThomasBaada ya hapo tumia:
SELECT * FROM teachers;37. Challenge ya Somo
Tengeneza table:
schoolsiwe na:
school_id
school_name
region
district
phone_numberKisha:
- Weka
school_idkama Primary Key AUTO_INCREMENT. - Ingiza shule tano kwa command moja ya INSERT.
- Shule mbili zisiwe na phone number.
- Tumia
NULLkwa phone number hizo. - Tumia
SELECT * FROM schools;kuona matokeo.
Mfano wa kuanzia:
INSERT INTO schools (
school_name,
region,
district,
phone_number
)
VALUES
('Mbuyuni Secondary School', 'Mtwara', 'Masasi', '0711111111'),
('Upendo Secondary School', 'Mtwara', 'Masasi', NULL);Ongeza records zaidi mwenyewe.
38. Maswali ya Kujipima
Baada ya somo hili jaribu kujibu:
INSERT INTOinatumika kufanya nini?VALUESina maana gani?- Kwa nini text inawekwa kwenye single quotes?
- AUTO_INCREMENT inasaidia nini wakati wa INSERT?
- Je lazima ujaze kila column wakati wa INSERT?
NULLina maana gani?- Kuna tofauti gani kati ya
NULLna'NULL'? - Unawezaje kuingiza records nyingi kwa query moja?
- Kwa nini mpangilio wa columns na values ni muhimu?
- Ni command gani unaweza kutumia kuona data uliyoingiza?
39. Muhtasari wa Somo
Katika somo hili tumejifunza kutumia:
INSERT INTOkuongeza data kwenye MySQL table.
Muundo mkuu ni:
INSERT INTO table_name (
column1,
column2
)
VALUES (
value1,
value2
);Mfano:
INSERT INTO students (
student_name,
gender
)
VALUES (
'Asha Mussa',
'Female'
);Pia tumejifunza kuingiza records nyingi:
INSERT INTO students (
student_name,
gender
)
VALUES
('Asha Mussa', 'Female'),
('John Peter', 'Male'),
('Neema Joseph', 'Female');Tumeona pia matumizi ya:
AUTO_INCREMENT
NULL
NOT NULL
DEFAULT
VARCHAR
INT
DECIMAL
DATENa tumejifunza baadhi ya makosa muhimu ya kuepuka wakati wa kutumia INSERT.
Somo Linalofuata
Katika Somo la 9 tutajifunza:
SELECT – Jinsi ya Kusoma na Kuonyesha Data Kutoka MySQL Database
Tutajifunza:
SELECTSELECT *- Kuchagua column moja
- Kuchagua columns nyingi
- Kusoma data kutoka table
- Kutumia
DISTINCT - Kutumia aliases
- Kuonyesha taarifa maalumu
- Mifano ya students, teachers na marks
- Mazoezi ya SELECT
Hii ndiyo hatua inayofuata baada ya kujifunza kuingiza data kwa kutumia INSERT INTO.
🚀 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.