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:
idinaweza 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 PeterTukitumia jina pekee inaweza kuwa vigumu kujua tunamzungumzia mwanafunzi gani.
Lakini tukitumia ID:
10 | John Peter
25 | John Petersasa 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
3Hapa:
2imejirudia.
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:
NULLSababu 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 KEYina maana:
idni jina la columnINTni Data TypePRIMARY KEYinaifanya 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:
PRIina 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_INCREMENT9. AUTO_INCREMENT ni Nini?
AUTO_INCREMENT ni feature inayoruhusu MySQL kuongeza namba automatically kila record mpya inapowekwa.
Mfano:
1
2
3
4
5Badala 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_INCREMENTHapa 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 = 1Ongeza mwingine:
INSERT INTO students (student_name)
VALUES ('John Peter');Anaweza kupata:
id = 2Ongeza mwingine:
INSERT INTO students (student_name)
VALUES ('Neema Joseph');Anaweza kupata:
id = 312. 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
313. PRIMARY KEY + AUTO_INCREMENT
Combination inayotumika sana ni:
id INT PRIMARY KEY AUTO_INCREMENTMfano:
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_managementNdani yake tunaweza kuwa na:
school_management
│
├── schools
├── classes
├── students
├── subjects
├── exams
├── marks
└── usersKila 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_id15. 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_idndiyo Primary Key.
16. Kuingiza Wanafunzi
Tunaweza kuandika:
INSERT INTO students (
student_name,
gender,
phone_number
)
VALUES (
'Asha Mussa',
'Female',
'0712345678'
);Hatukuandika:
student_idkwa 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 = 1tayari ipo.
Primary Key hairuhusu duplicate value.
19. Je AUTO_INCREMENT ID Inarudi Baada ya DELETE?
Fikiria tuna:
1 | Asha
2 | John
3 | NeemaTukifuta Neema:
DELETE FROM students
WHERE id = 3;Halafu tukaongeza:
INSERT INTO students (student_name)
VALUES ('Anna');Kwa kawaida record mpya inaweza kupata:
4badala ya:
3Kwa 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:
100Hii 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:
idni Primary Key.
Lakini:
emailni 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_idni 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_idndiyo unique identifier ya shule.
25. Primary Key Katika Mfumo Halisi
Fikiria baadaye tuna table:
studentsna mwanafunzi:
student_id = 15
student_name = Asha MussaTable ya marks inaweza kutumia:
student_id = 15kujua marks hizo ni za mwanafunzi gani.
Hapa ndipo Primary Key inaanza kuwa muhimu sana katika uhusiano wa tables.
Baadaye tutajifunza:
FOREIGN KEY26. 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 CRUD27. 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:
teachersIwe na columns:
teacher_id
teacher_name
gender
phone_number
emailteacher_id iwe:
INT PRIMARY KEY AUTO_INCREMENTKisha ongeza walimu watatu.
Mwisho tumia:
SELECT * FROM teachers;kuangalia records.
29. Challenge
Tengeneza table:
schoolsyenye:
school_id
school_name
region
districtMasharti:
school_idiwe:
PRIMARY KEY AUTO_INCREMENTOngeza shule tano bila kuandika school_id.
Baada ya hapo tumia:
SELECT * FROM schools;Jiulize:
- Primary Key ni column gani?
- AUTO_INCREMENT imefanya kazi gani?
- Kwa nini hatukuingiza ID wenyewe?
- Je Primary Key inaweza kujirudia?
- Je Primary Key inaweza kuwa NULL?
30. Muhtasari wa Somo
Katika somo hili tumejifunza:
PRIMARY KEYni identifier ya kipekee ya kila record.
Tumeona mfano:
id INT PRIMARY KEYPia tumejifunza:
AUTO_INCREMENTambayo inaruhusu MySQL kutengeneza ID automatically.
Combination inayotumika sana ni:
id INT PRIMARY KEY AUTO_INCREMENTMfano:
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.