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

MySQL Database Full Course – Somo la 7: Primary Key na AUTO_INCREMENT

Karibu kwenye Somo la 7 la MySQL Database Full Course kwa Kiswahili.

Katika masomo yaliyopita tumeanza kujenga database yetu hatua kwa hatua.

Tumejifunza mambo mbalimbali kama:

  • Kutengeneza database
  • Kuchagua database kwa USE
  • Kutengeneza table
  • Kuelewa columns
  • Data Types
  • Kuongeza taarifa muhimu ndani ya table

Sasa tunaenda kujifunza sehemu muhimu sana katika utengenezaji wa tables:

PRIMARY KEY

na

AUTO_INCREMENT

Hivi hutumika sana katika karibu kila database system ya kisasa.


Malengo ya Somo

Baada ya kumaliza somo hili utaweza:

  • Kuelewa Primary Key ni nini
  • Kutengeneza Primary Key
  • Kuelewa umuhimu wa unique ID
  • Kutumia AUTO_INCREMENT
  • Kutengeneza ID automatically
  • Kuelewa tofauti ya Primary Key na column ya kawaida
  • Kuelewa Primary Key na NULL
  • Kuelewa Primary Key na duplicate values
  • Kutengeneza tables zenye professional structure
  • Kutumia Primary Key katika mfumo wa shule
  • Kuelewa jinsi Primary Key itakavyotumika baadaye kwenye Foreign Keys

1. Primary Key ni Nini?

PRIMARY KEY ni column inayotumika kumtambua kila record ndani ya table kwa njia ya kipekee.

Mfano tuna table ya wanafunzi:

students

+----+--------------+
| id | student_name |
+----+--------------+
| 1  | Asha Mussa   |
| 2  | John Peter   |
| 3  | Neema Joseph |
+----+--------------+

Hapa:

id

inaweza kuwa Primary Key.

Kwa sababu kila mwanafunzi ana ID tofauti.


2. Kwa Nini Tunahitaji Primary Key?

Fikiria tuna wanafunzi wawili wenye jina moja:

John Peter
John Peter

Tukitumia jina pekee inaweza kuwa vigumu kujua tunamzungumzia mwanafunzi gani.

Lakini tukitumia ID:

10 | John Peter
25 | John Peter

sasa kila mwanafunzi ana utambulisho wake.

Tunaweza kumchagua mwanafunzi wa kwanza kwa:

WHERE id = 10;

Au wa pili:

WHERE id = 25;

3. Primary Key Lazima Iwe Unique

Thamani ya Primary Key hairuhusiwi kujirudia.

Mfano usio sahihi:

1
2
2
3

Hapa:

2

imejirudia.

Ikiwa column hiyo ni Primary Key, MySQL haitaruhusu hali hii.


4. Primary Key Haiwezi Kuwa NULL

Primary Key lazima iwe na value.

Kwa hiyo haitakiwi kuwa:

NULL

Sababu ni kwamba Primary Key ndiyo utambulisho mkuu wa record.

Record isiyokuwa na utambulisho haitakuwa na maana kama Primary Key.


5. Kutengeneza Primary Key

Tuchague database yetu:

USE school_management;

Kisha tutengeneze table:

CREATE TABLE students (
    id INT PRIMARY KEY,
    student_name VARCHAR(100)
);

Hapa:

id INT PRIMARY KEY

ina maana:

  • id ni jina la column
  • INT ni Data Type
  • PRIMARY KEY inaifanya kuwa unique identifier

6. Kuangalia Structure ya Table

Tunaweza kutumia:

DESCRIBE students;

Au:

DESC students;

Unaweza kuona kitu kinachofanana na:

+--------------+--------------+------+-----+
| Field        | Type         | Null | Key |
+--------------+--------------+------+-----+
| id           | int          | NO   | PRI |
| student_name | varchar(100) | YES  |     |
+--------------+--------------+------+-----+

Ukiona:

PRI

ina maana column hiyo ni Primary Key.


7. Kuingiza Data Kwenye Table

Kwa table tuliyotengeneza:

CREATE TABLE students (
    id INT PRIMARY KEY,
    student_name VARCHAR(100)
);

Tunaweza kuingiza mwanafunzi:

INSERT INTO students (id, student_name)
VALUES (1, 'Asha Mussa');

Kisha mwingine:

INSERT INTO students (id, student_name)
VALUES (2, 'John Peter');

Angalia data:

SELECT * FROM students;

Result inaweza kuwa:

+----+--------------+
| id | student_name |
+----+--------------+
| 1  | Asha Mussa   |
| 2  | John Peter   |
+----+--------------+

8. Tatizo la Kuweka ID Mwenyewe

Kwa mfano:

INSERT INTO students
VALUES (3, 'Neema Joseph');

Kisha:

INSERT INTO students
VALUES (4, 'Anna Charles');

Kila tunapoingiza record tunalazimika kukumbuka ID inayofuata.

Katika mfumo mkubwa hili linaweza kuwa tatizo.

Unaweza kwa bahati mbaya kuandika:

INSERT INTO students
VALUES (2, 'Peter Joseph');

wakati ID 2 tayari ipo.

MySQL itatoa error.

Ndiyo maana tunahitaji:

AUTO_INCREMENT

9. AUTO_INCREMENT ni Nini?

AUTO_INCREMENT ni feature inayoruhusu MySQL kuongeza namba automatically kila record mpya inapowekwa.

Mfano:

1
2
3
4
5

Badala ya sisi kuandika ID moja baada ya nyingine, MySQL inaweza kufanya kazi hiyo.


10. Kutengeneza Primary Key yenye AUTO_INCREMENT

Tunaweza kutengeneza table hivi:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100)
);

Sehemu muhimu ni:

id INT PRIMARY KEY AUTO_INCREMENT

Hapa MySQL itaongeza ID automatically.


11. Kuingiza Data Bila ID

Kwa sababu id ni AUTO_INCREMENT, hatuhitaji kuandika ID wakati wa INSERT.

Tunaweza kuandika:

INSERT INTO students (student_name)
VALUES ('Asha Mussa');

Record ya kwanza inaweza kupata:

id = 1

Ongeza mwingine:

INSERT INTO students (student_name)
VALUES ('John Peter');

Anaweza kupata:

id = 2

Ongeza mwingine:

INSERT INTO students (student_name)
VALUES ('Neema Joseph');

Anaweza kupata:

id = 3

12. Kuangalia Data

Tumia:

SELECT * FROM students;

Result:

+----+--------------+
| id | student_name |
+----+--------------+
| 1  | Asha Mussa   |
| 2  | John Peter   |
| 3  | Neema Joseph |
+----+--------------+

Tunaona kwamba hatukuandika ID wenyewe.

MySQL ndiyo imetengeneza:

1
2
3

13. PRIMARY KEY + AUTO_INCREMENT

Combination inayotumika sana ni:

id INT PRIMARY KEY AUTO_INCREMENT

Mfano:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100)
);

Muundo huu utaonekana mara nyingi sana katika course hii.


14. Mfano wa Mfumo Wetu wa Shule

Tuna database:

school_management

Ndani yake tunaweza kuwa na:

school_management
│
├── schools
├── classes
├── students
├── subjects
├── exams
├── marks
└── users

Kila table inaweza kuwa na Primary Key yake.

Mfano:

schools
school_id

classes
class_id

students
student_id

subjects
subject_id

exams
exam_id

marks
mark_id

users
user_id

15. Kutengeneza Students Table

Mfano wa table nzuri zaidi:

CREATE TABLE students (
    student_id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100),
    gender VARCHAR(10),
    phone_number VARCHAR(20)
);

Hapa:

student_id

ndiyo Primary Key.


16. Kuingiza Wanafunzi

Tunaweza kuandika:

INSERT INTO students (
    student_name,
    gender,
    phone_number
)
VALUES (
    'Asha Mussa',
    'Female',
    '0712345678'
);

Hatukuandika:

student_id

kwa sababu MySQL itaongeza automatically.


17. Kuingiza Records Nyingi

Tunaweza pia kuongeza wanafunzi wengi:

INSERT INTO students (
    student_name,
    gender,
    phone_number
)
VALUES
('John Peter', 'Male', '0722222222'),
('Neema Joseph', 'Female', '0733333333'),
('Anna Charles', 'Female', '0744444444');

Kisha:

SELECT * FROM students;

Tunaweza kupata:

+------------+--------------+--------+--------------+
| student_id | student_name | gender | phone_number |
+------------+--------------+--------+--------------+
| 1          | Asha Mussa   | Female | 0712345678   |
| 2          | John Peter   | Male   | 0722222222   |
| 3          | Neema Joseph | Female | 0733333333   |
| 4          | Anna Charles | Female | 0744444444   |
+------------+--------------+--------+--------------+

18. Nini Kitatokea Tukirudia Primary Key?

Fikiria tuna table:

CREATE TABLE students (
    id INT PRIMARY KEY,
    student_name VARCHAR(100)
);

Tumeingiza:

INSERT INTO students
VALUES (1, 'Asha Mussa');

Halafu tukajaribu:

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

MySQL itakataa.

Sababu:

id = 1

tayari ipo.

Primary Key hairuhusu duplicate value.


19. Je AUTO_INCREMENT ID Inarudi Baada ya DELETE?

Fikiria tuna:

1 | Asha
2 | John
3 | Neema

Tukifuta Neema:

DELETE FROM students
WHERE id = 3;

Halafu tukaongeza:

INSERT INTO students (student_name)
VALUES ('Anna');

Kwa kawaida record mpya inaweza kupata:

4

badala ya:

3

Kwa hiyo usitumie AUTO_INCREMENT kwa lengo la kuhakikisha namba hazina mapengo.

Kazi yake kubwa ni kutoa identifier mpya kwa record.


20. Kubadilisha AUTO_INCREMENT Starting Number

Unaweza kufanya ID inayofuata ianze namba fulani.

Mfano:

ALTER TABLE students AUTO_INCREMENT = 100;

Record inayofuata inaweza kupata:

100

Hii inaweza kuwa useful katika mazingira maalumu.


21. Njia Nyingine ya Kuandika PRIMARY KEY

Badala ya:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100)
);

unaweza pia kuandika:

CREATE TABLE students (
    id INT AUTO_INCREMENT,
    student_name VARCHAR(100),
    PRIMARY KEY (id)
);

Njia zote zinaweza kutengeneza Primary Key ya id.


22. PRIMARY KEY na UNIQUE

PRIMARY KEY na UNIQUE zinafanana kwa sababu zote zinaweza kuzuia duplicates.

Lakini Primary Key hutumika kama identifier kuu ya record.

Mfano:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100),
    email VARCHAR(150) UNIQUE
);

Hapa:

id

ni Primary Key.

Lakini:

email

ni UNIQUE.


23. Mfano wa Teachers Table

CREATE TABLE teachers (
    teacher_id INT PRIMARY KEY AUTO_INCREMENT,
    teacher_name VARCHAR(100),
    gender VARCHAR(10),
    phone_number VARCHAR(20),
    email VARCHAR(150)
);

Hapa:

teacher_id

ni Primary Key.


24. Mfano wa Schools Table

CREATE TABLE schools (
    school_id INT PRIMARY KEY AUTO_INCREMENT,
    school_name VARCHAR(150),
    region VARCHAR(100),
    district VARCHAR(100)
);

Hapa:

school_id

ndiyo unique identifier ya shule.


25. Primary Key Katika Mfumo Halisi

Fikiria baadaye tuna table:

students

na mwanafunzi:

student_id = 15
student_name = Asha Mussa

Table ya marks inaweza kutumia:

student_id = 15

kujua marks hizo ni za mwanafunzi gani.

Hapa ndipo Primary Key inaanza kuwa muhimu sana katika uhusiano wa tables.

Baadaye tutajifunza:

FOREIGN KEY

26. Mistake ya Beginner

Beginner anaweza kutengeneza:

CREATE TABLE students (
    student_name VARCHAR(100),
    gender VARCHAR(10)
);

Table hii inaweza kufanya kazi.

Lakini haina unique identifier.

Njia nzuri zaidi ni:

CREATE TABLE students (
    student_id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100),
    gender VARCHAR(10)
);

Hii itarahisisha baadaye kutumia:

SELECT
UPDATE
DELETE
JOIN
FOREIGN KEY
PHP CRUD

27. Workflow Yetu

Mpaka sasa tunaweza kuwa na:

CREATE DATABASE IF NOT EXISTS school_management;

USE school_management;

CREATE TABLE students (
    student_id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100),
    gender VARCHAR(10),
    phone_number VARCHAR(20)
);

INSERT INTO students (
    student_name,
    gender,
    phone_number
)
VALUES (
    'Asha Mussa',
    'Female',
    '0712345678'
);

SELECT * FROM students;

Huu tayari ni mfano mzuri wa database workflow.


28. Mazoezi

Tengeneza table:

teachers

Iwe na columns:

teacher_id
teacher_name
gender
phone_number
email

teacher_id iwe:

INT PRIMARY KEY AUTO_INCREMENT

Kisha ongeza walimu watatu.

Mwisho tumia:

SELECT * FROM teachers;

kuangalia records.


29. Challenge

Tengeneza table:

schools

yenye:

school_id
school_name
region
district

Masharti:

school_id

iwe:

PRIMARY KEY AUTO_INCREMENT

Ongeza shule tano bila kuandika school_id.

Baada ya hapo tumia:

SELECT * FROM schools;

Jiulize:

  1. Primary Key ni column gani?
  2. AUTO_INCREMENT imefanya kazi gani?
  3. Kwa nini hatukuingiza ID wenyewe?
  4. Je Primary Key inaweza kujirudia?
  5. Je Primary Key inaweza kuwa NULL?

30. Muhtasari wa Somo

Katika somo hili tumejifunza:

PRIMARY KEY

ni identifier ya kipekee ya kila record.

Tumeona mfano:

id INT PRIMARY KEY

Pia tumejifunza:

AUTO_INCREMENT

ambayo inaruhusu MySQL kutengeneza ID automatically.

Combination inayotumika sana ni:

id INT PRIMARY KEY AUTO_INCREMENT

Mfano:

CREATE TABLE students (
    id INT PRIMARY KEY AUTO_INCREMENT,
    student_name VARCHAR(100)
);

Hii ndiyo structure utakayoiona mara nyingi katika database systems.

Katika somo linalofuata tutaendelea na SQL kwa vitendo zaidi.

Somo la 8: INSERT INTO – Jinsi ya Kuingiza Data Kwenye Table kwa MySQL

Tutajifunza:

  • INSERT INTO
  • Kuingiza record moja
  • Kuingiza records nyingi
  • Kuingiza values kwenye columns maalumu
  • Kutumia NULL
  • Makosa ya kawaida wakati wa INSERT
  • Mifano ya mfumo halisi wa shule

🚀 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