Uko ndani ya app. Fungua kwenye browser kwa muonekano na downloads bora.
September 2, 2026 11 min read Database

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 KEY
  • AUTO_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 INTO

Hii 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 INTO ni 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:

students

ni jina la table.

Halafu:

student_name
gender
phone_number

ni columns.

Na:

Asha Mussa
Female
0712345678

ni 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
email

student_id ni:

PRIMARY KEY AUTO_INCREMENT

Kwa 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 = 1

automatically.


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_INCREMENT

MySQL 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
email

Kama columns hizo zinaruhusu NULL, MySQL inaweza kuweka:

NULL

9. NULL ni Nini?

NULL ina maana:

Hakuna value iliyowekwa.

Mfano:

student_name = Anna Charles
gender = Female
phone_number = NULL
email = NULL

Hii 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:

NULL

Si sahihi:

'NULL'

Kwa sababu 'NULL' itachukuliwa kama text.


11. Text Lazima Iwekwe Kwenye Quotes

Mfano wa text:

Asha Mussa
Female
Dar es Salaam

Kwa 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:

85

ni 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.00

ni 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 INSERT

15. 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 -> 0712345678

Usibadilishe 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 NULL

ina 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 = Active

automatically.


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-DD

Mfano:

2026-09-02

Kwa 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.50

27. 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_number

lakini 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 = 1

Tukifanya:

INSERT INTO students (
    student_id,
    student_name
)
VALUES (
    1,
    'John Peter'
);

MySQL inaweza kutoa:

Duplicate entry

Kwa 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 BY

na:

LIMIT

ili 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:

Save

PHP 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
SELECT

36. Mazoezi ya Somo

Tengeneza table:

teachers

iwe na columns:

teacher_id
teacher_name
gender
subject
phone_number

teacher_id iwe:

INT PRIMARY KEY AUTO_INCREMENT

Kisha ingiza walimu watano.

Mfano:

Joseph Michael
Anna Charles
Peter John
Neema Mussa
John Thomas

Baada ya hapo tumia:

SELECT * FROM teachers;

37. Challenge ya Somo

Tengeneza table:

schools

iwe na:

school_id
school_name
region
district
phone_number

Kisha:

  1. Weka school_id kama Primary Key AUTO_INCREMENT.
  2. Ingiza shule tano kwa command moja ya INSERT.
  3. Shule mbili zisiwe na phone number.
  4. Tumia NULL kwa phone number hizo.
  5. 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:

  1. INSERT INTO inatumika kufanya nini?
  2. VALUES ina maana gani?
  3. Kwa nini text inawekwa kwenye single quotes?
  4. AUTO_INCREMENT inasaidia nini wakati wa INSERT?
  5. Je lazima ujaze kila column wakati wa INSERT?
  6. NULL ina maana gani?
  7. Kuna tofauti gani kati ya NULL na 'NULL'?
  8. Unawezaje kuingiza records nyingi kwa query moja?
  9. Kwa nini mpangilio wa columns na values ni muhimu?
  10. Ni command gani unaweza kutumia kuona data uliyoingiza?

39. Muhtasari wa Somo

Katika somo hili tumejifunza kutumia:

INSERT INTO

kuongeza 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
DATE

Na 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:

  • SELECT
  • SELECT *
  • 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.

Share this post

Comments

0
No comments yet. Be the first to comment.

Continue Reading

Subscribe

Get new updates

Jiunge upokee posts mpya, tutorials, na updates za mifumo moja kwa moja kwenye email yako.

Quick Actions