MySQL Database Full Course – Somo la 18: NULL, IS NULL, IS NOT NULL na DEFAULT Values Katika MySQL
Karibu kwenye Somo la 18 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kutumia:
INNOT INBETWEENna:
NOT BETWEENkwa kuchagua records nyingi au values zilizopo ndani ya range fulani.
Sasa tutajifunza concept muhimu sana katika MySQL inayohusu data ambayo haipo, haijajulikana au haijaingizwa.
Tutajifunza:
NULLIS NULLIS NOT NULLna:
DEFAULTConcept hizi ni muhimu sana kwenye mifumo halisi kwa sababu si kila taarifa lazima iwepo wakati wa kusajili record.
Kwa mfano:
- Student anaweza kutokuwa na email
- Phone number inaweza kuwa haijaingizwa
- Guardian contact inaweza kuwa haijulikani
- Product inaweza kutokuwa na description
- User mpya anaweza kuwa na status ya default
- Payment inaweza kuwa haijalipwa bado
- Profile picture inaweza kutokuwa imewekwa
Malengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
NULLni nini - Kutofautisha NULL na empty string
- Kutofautisha NULL na zero
- Kutumia
IS NULL - Kutumia
IS NOT NULL - Kuelewa kwa nini
= NULLsi matumizi sahihi - Kutengeneza columns zinazokubali NULL
- Kutengeneza columns zenye
NOT NULL - Kutumia
DEFAULT - Kutumia default values kwenye INSERT
- Kubadilisha value kuwa NULL kwa UPDATE
- Kutafuta records zenye taarifa zinazokosekana
- Kutengeneza default status
- Kutumia default timestamps
- Kuepuka makosa ya kawaida
1. NULL ni Nini?
Katika MySQL, NULL ina maana:
Hakuna value iliyopo au value haijulikani.
Mfano:
student_name = Asha Mussa
phone_number = NULLHii inaweza kumaanisha phone number ya Asha haijaingizwa.
NULL si neno la kawaida la text.
Ni special value kwenye SQL.
2. Mfano wa NULL
Fikiria tuna student:
student_id: 1
student_name: Asha Mussa
phone_number: NULL
email: NULLHii inaweza kumaanisha:
- Jina lipo
- Phone number haipo
- Email haipo
3. NULL Sio Zero
Hili ni jambo muhimu sana.
NULLsi sawa na:
0Mfano:
score = 0inaweza kumaanisha student alipata zero.
Lakini:
score = NULLinaweza kumaanisha mark bado haijaingizwa.
Hizi ni concepts tofauti kabisa.
4. NULL Sio Empty String
Hii:
''ni empty string.
Lakini:
NULLina maana hakuna value.
Mfano:
phone_number = ''ina text yenye urefu wa sifuri.
Lakini:
phone_number = NULLina missing value.
5. NULL Sio Neno 'NULL'
Hii:
NULLni special SQL value.
Lakini:
'NULL'ni text yenye herufi:
N U L LKwa hiyo:
UPDATE students
SET phone_number = NULL
WHERE student_id = 1;ni tofauti na:
UPDATE students
SET phone_number = 'NULL'
WHERE student_id = 1;6. Kutengeneza Column Inayokubali NULL
Mfano:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
phone_number VARCHAR(20) NULL
);Hapa:
student_namehairuhusu NULL.
Lakini:
phone_numberinaruhusu NULL.
7. NULL Mara Nyingi ni Default Ikiwa NOT NULL Haijawekwa
Mfano:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100),
email VARCHAR(150)
);Kwa kawaida columns kama:
username
emailzinaweza kuruhusu NULL ikiwa hazijafanywa NOT NULL, kutegemea definition ya table.
8. NOT NULL ni Nini?
NOT NULL ina maana:
Column lazima iwe na value.
Mfano:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL
);Hapa huwezi kuacha student_name bila value inayokubalika.
9. Kwa Nini Student Name Iwe NOT NULL?
Kwa sababu record ya student bila jina inaweza kutokuwa na maana kwenye mfumo.
Mfano:
student_name VARCHAR(100) NOT NULLHii husaidia kuhakikisha kila student ana jina.
10. Columns Zinazoweza Kuruhusu NULL
Mfano:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10),
phone_number VARCHAR(20),
email VARCHAR(150)
);Unaweza kuamua:
- student_name lazima iwepo
- gender inaweza kuwa haijaingizwa
- phone_number inaweza kuwa haijaingizwa
- email inaweza kuwa haijaingizwa
11. Kutumia NULL Kwenye INSERT
Mfano:
INSERT INTO students (
student_name,
phone_number,
email
)
VALUES (
'Asha Mussa',
NULL,
NULL
);Hapa Asha atasajiliwa bila phone number na email.
12. Kuacha Optional Column Kwenye INSERT
Ikiwa column inaruhusu NULL au ina DEFAULT, unaweza pia kuiacha.
Mfano:
INSERT INTO students (
student_name
)
VALUES (
'John Peter'
);Kama phone_number na email zinaruhusu NULL, zinaweza kupata NULL automatically.
13. Tutumie Table Kamili ya Students
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10),
age INT,
phone_number VARCHAR(20),
email VARCHAR(150),
class_name VARCHAR(50)
);Ingiza data:
INSERT INTO students (
student_name,
gender,
age,
phone_number,
email,
class_name
)
VALUES
(
'Asha Mussa',
'Female',
16,
'0711111111',
'asha@example.com',
'Form One'
),
(
'John Peter',
'Male',
17,
NULL,
'john@example.com',
'Form Two'
),
(
'Neema Joseph',
'Female',
15,
'0733333333',
NULL,
'Form One'
),
(
'Peter Michael',
'Male',
18,
NULL,
NULL,
'Form Three'
);14. Jinsi ya Kutafuta NULL
Hatutumii:
WHERE phone_number = NULL;Badala yake tunatumia:
WHERE phone_number IS NULL;Mfano:
SELECT *
FROM students
WHERE phone_number IS NULL;15. IS NULL ni Nini?
IS NULL hutumika kutafuta records ambazo column haina value.
Mfano:
SELECT *
FROM students
WHERE email IS NULL;Hii inaweza kuonyesha students ambao hawana email.
16. Kutafuta Students Wasio na Phone Number
SELECT *
FROM students
WHERE phone_number IS NULL;Matokeo yanaweza kuwa:
John Peter
Peter Michael17. Kutafuta Students Wasio na Email
SELECT *
FROM students
WHERE email IS NULL;Matokeo yanaweza kuwa:
Neema Joseph
Peter Michael18. IS NOT NULL ni Nini?
IS NOT NULL hutumika kutafuta records ambazo zina value.
Mfano:
SELECT *
FROM students
WHERE phone_number IS NOT NULL;Hii inaweza kuonyesha students wenye phone number.
19. Students Wenye Email
SELECT *
FROM students
WHERE email IS NOT NULL;20. Tofauti ya IS NULL na IS NOT NULL
IS NULLina maana:
Hakuna value.
IS NOT NULLina maana:
Kuna value.
21. Kwa Nini = NULL Si Sahihi?
Mfano huu:
SELECT *
FROM students
WHERE phone_number = NULL;si njia sahihi ya kawaida ya kulinganisha NULL.
Kwa sababu SQL hutumia logic maalumu kwenye NULL.
Tumia:
SELECT *
FROM students
WHERE phone_number IS NULL;22. Kwa Nini != NULL Si Sahihi?
Usitumie:
WHERE email != NULL;Tumia:
WHERE email IS NOT NULL;23. UPDATE Value Kuwa NULL
Fikiria student ameomba phone number yake iondolewe.
Unaweza kufanya:
UPDATE students
SET phone_number = NULL
WHERE student_id = 1;24. Kuangalia Baada ya UPDATE
SELECT *
FROM students
WHERE student_id = 1;Phone number sasa inaweza kuwa:
NULL25. UPDATE NULL Kuwa Value
Mfano student alikuwa hana phone number.
Unaweza kufanya:
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 2;Sasa NULL imebadilishwa kuwa value.
26. IS NULL na AND
Mfano:
SELECT *
FROM students
WHERE phone_number IS NULL
AND gender = 'Male';Hii itaonyesha Male students wasio na phone number.
27. IS NULL na OR
SELECT *
FROM students
WHERE phone_number IS NULL
OR email IS NULL;Hii itaonyesha students wanaokosa angalau moja kati ya:
- Phone number
28. Students Wasio na Phone na Email
Ikiwa tunataka wanaokosa zote mbili:
SELECT *
FROM students
WHERE phone_number IS NULL
AND email IS NULL;29. Students Wenye Phone na Email
SELECT *
FROM students
WHERE phone_number IS NOT NULL
AND email IS NOT NULL;Hii inaweza kusaidia kupata profiles zilizokamilika zaidi.
30. NULL Katika Marks System
Fikiria table:
CREATE TABLE marks (
mark_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
subject VARCHAR(100) NOT NULL,
score DECIMAL(5,2)
);Score inaweza kuwa NULL ikiwa mark bado haijaingizwa.
31. Student Ambaye Mark Haijaingizwa
INSERT INTO marks (
student_name,
subject,
score
)
VALUES (
'Asha Mussa',
'Mathematics',
NULL
);Hii inaweza kumaanisha:
Mark bado haijawekwa.
32. Kutafuta Marks Ambazo Hazijaingizwa
SELECT *
FROM marks
WHERE score IS NULL;Hii ni useful sana kwa teacher kuona students ambao marks zao bado hazijaingizwa.
33. Kutafuta Marks Zilizokwishaingizwa
SELECT *
FROM marks
WHERE score IS NOT NULL;34. Kwa Nini Score 0 Si NULL?
Fikiria:
Asha = 0
John = NULLAsha alipata:
0Lakini John:
NULLinaweza kumaanisha bado hajapewa mark.
Kwa hiyo usibadilishe missing marks kuwa 0 bila sababu.
35. NULL Katika Accounting System
Fikiria table:
CREATE TABLE contributions (
contribution_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
amount DECIMAL(10,2),
paid_date DATE
);Ikiwa payment haijalipwa bado, paid_date inaweza kuwa NULL.
36. Kutafuta Contributions Ambazo Hazina Paid Date
SELECT *
FROM contributions
WHERE paid_date IS NULL;Hii inaweza kusaidia kuona transactions ambazo bado hazijakamilika.
37. Kutafuta Zilizolipwa
SELECT *
FROM contributions
WHERE paid_date IS NOT NULL;38. DEFAULT ni Nini?
DEFAULT ni value ambayo MySQL inaweza kuweka automatically ikiwa value haijatolewa kwenye INSERT.
Mfano:
status VARCHAR(20) DEFAULT 'Active'Ikiwa user mpya atasajiliwa bila status, MySQL inaweza kuweka:
Activeautomatically.
39. Mfano wa DEFAULT
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
status VARCHAR(20) DEFAULT 'Active'
);40. INSERT Bila Kutaja Status
INSERT INTO users (
username
)
VALUES (
'faustine'
);MySQL inaweza kuhifadhi:
username = faustine
status = Active41. Kutaja Status Mwenyewe
Unaweza pia kuandika:
INSERT INTO users (
username,
status
)
VALUES (
'john',
'Inactive'
);Hapa default haitatumika kwa sababu tumetoa value yetu.
42. DEFAULT na Numbers
Mfano:
quantity INT DEFAULT 0Table:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100) NOT NULL,
quantity INT DEFAULT 0
);43. INSERT Product Bila Quantity
INSERT INTO products (
product_name
)
VALUES (
'Laptop'
);Quantity inaweza kuwa:
0automatically.
44. DEFAULT na Boolean-Like Status
Unaweza kuwa na:
is_active TINYINT(1) DEFAULT 1Mfano:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
is_active TINYINT(1) DEFAULT 1
);Hapa:
1inaweza kutumika kuwakilisha active.
45. DEFAULT na CURRENT_TIMESTAMP
Hii ni muhimu sana.
Mfano:
CREATE TABLE posts (
post_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Ukiongeza post:
INSERT INTO posts (
title
)
VALUES (
'MySQL Database Tutorial'
);created_at inaweza kuwekwa automatically.
46. updated_at Automatically
Unaweza kuwa na:
updated_at TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMPMfano:
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
);47. created_at vs updated_at
created_at:
Record ilitengenezwa lini.
updated_at:
Record ilibadilishwa mara ya mwisho lini.
Hizi ni columns muhimu kwenye applications.
48. Kutumia DEFAULT Kwenye INSERT
Unaweza pia kutumia keyword:
DEFAULTMfano:
INSERT INTO users (
username,
status
)
VALUES (
'anna',
DEFAULT
);Ikiwa default ni Active, MySQL itatumia value hiyo.
49. UPDATE Kurudisha Default Value
Mfano:
UPDATE users
SET status = DEFAULT
WHERE user_id = 3;Ikiwa default ni:
Activestatus inaweza kurudi kuwa Active.
50. DEFAULT na NULL Si Vitu Vilevile
Mfano:
status VARCHAR(20) DEFAULT 'Active'DEFAULT value ni:
ActiveLakini NULL ni:
No valueKwa hiyo ni concepts tofauti.
51. DEFAULT NULL
Unaweza pia kuwa na:
phone_number VARCHAR(20) DEFAULT NULLHii ina maana ikiwa phone haijatolewa, iwe NULL.
52. NOT NULL na DEFAULT Pamoja
Mfano:
status VARCHAR(20) NOT NULL DEFAULT 'Active'Hii ina maana:
- Status hairuhusiwi kuwa NULL
- Ikiwa status haijatolewa, tumia Active
Hii ni design nzuri kwa columns fulani.
53. Mfano wa Users Table
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
email VARCHAR(150),
role VARCHAR(30) NOT NULL DEFAULT 'user',
status VARCHAR(20) NOT NULL DEFAULT 'Active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Hapa tuna default values mbili:
role = user
status = Active54. INSERT User Mpya
INSERT INTO users (
username,
email
)
VALUES (
'Asha',
'asha@example.com'
);MySQL inaweza kuweka:
role = user
status = Active
created_at = current date/timeautomatically.
55. DEFAULT katika School System
Table ya students inaweza kuwa:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'Active'
);Student mpya anaweza kuwa Active automatically.
56. DEFAULT katika Marks System
Unaweza kuwa na:
exam_status VARCHAR(20) DEFAULT 'Pending'Mfano:
CREATE TABLE exams (
exam_id INT PRIMARY KEY AUTO_INCREMENT,
exam_name VARCHAR(100) NOT NULL,
exam_status VARCHAR(20) DEFAULT 'Pending'
);57. DEFAULT katika Orders System
Mfano:
order_status VARCHAR(20) DEFAULT 'Pending'Order mpya inaweza kuanza kama:
Pendingbaadaye kubadilishwa kuwa:
Paid
Processing
Shipped
Completed
Cancelled58. NULL na ORDER BY
Unaweza kupanga records hata kama baadhi ya values ni NULL.
Mfano:
SELECT *
FROM students
ORDER BY phone_number ASC;Position ya NULL kwenye sorting inaweza kutegemea order na MySQL behavior.
Kama unataka logic maalumu, unaweza kutumia advanced expressions baadaye.
59. NULL na COUNT
Baadaye tutajifunza aggregate functions.
Lakini ni muhimu kujua:
COUNT(column_name)kwa kawaida haihesabu NULL values.
Mfano:
SELECT COUNT(phone_number)
FROM students;Inaweza kuhesabu students wenye phone number tu.
Lakini:
SELECT COUNT(*)
FROM students;inahesabu rows zote.
Tutajifunza hili kwa undani kwenye COUNT, SUM, AVG, MIN na MAX.
60. NULL na AVG
Fikiria scores:
80
70
NULL
90Aggregate functions kama AVG(score) kwa kawaida hupuuza NULL badala ya kuitafsiri kuwa zero.
Hii ndiyo sababu:
NULLna:
0ni muhimu kutofautishwa.
61. Makosa ya Kawaida – Kutumia = NULL
Mfano mbaya:
SELECT *
FROM students
WHERE email = NULL;Sahihi:
SELECT *
FROM students
WHERE email IS NULL;62. Makosa ya Kawaida – Kutumia != NULL
Mfano mbaya:
SELECT *
FROM students
WHERE email != NULL;Sahihi:
SELECT *
FROM students
WHERE email IS NOT NULL;63. Makosa ya Kawaida – Kuweka 'NULL'
Mfano:
UPDATE students
SET email = 'NULL'
WHERE student_id = 2;Hii inaweka neno NULL kama text.
Ikiwa unataka real NULL:
UPDATE students
SET email = NULL
WHERE student_id = 2;64. Makosa ya Kawaida – Kutumia 0 Badala ya NULL
Kwa marks:
score = 0na:
score = NULLhazifanani.
Usitumie zero kuwakilisha missing data ikiwa zero yenyewe ni valid value.
65. Makosa ya Kawaida – Empty String Badala ya NULL
Mfano:
phone_number = ''Hii inaweza kufanya filtering kuwa ngumu ikiwa wengine wana NULL na wengine empty string.
Ni vizuri system yako iwe na consistent data design.
66. Kutafuta NULL au Empty String
Ikiwa database tayari ina zote mbili:
SELECT *
FROM students
WHERE phone_number IS NULL
OR phone_number = '';Hii inaweza kupata records zote ambazo phone number haijajazwa.
67. Kutafuta Email Isiyokosekana na Isiyo Empty
SELECT *
FROM students
WHERE email IS NOT NULL
AND email != '';68. NULL na NOT IN
Hapa tunahitaji umakini.
Fikiria:
SELECT *
FROM students
WHERE student_id NOT IN (1, 2, NULL);NULL inaweza kusababisha result isiyotarajiwa kwa sababu SQL hutumia three-valued logic.
Kwa beginner, epuka kuweka NULL ndani ya IN au NOT IN lists bila kuelewa logic yake.
69. NULL na Unique Columns
Katika MySQL, UNIQUE columns zina behavior maalumu kuhusu NULL.
Mfano:
email VARCHAR(150) UNIQUEUnaweza kukuta more than one NULL inaruhusiwa kutegemea database behavior.
Lakini email values zisizo NULL zinapaswa kuwa unique.
70. Mfano wa Table ya Professional Users
CREATE TABLE users (
user_id INT PRIMARY KEY AUTO_INCREMENT,
username VARCHAR(100) NOT NULL,
email VARCHAR(150) UNIQUE,
phone_number VARCHAR(20),
role VARCHAR(30) NOT NULL DEFAULT 'user',
status VARCHAR(20) NOT NULL DEFAULT 'Active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP
DEFAULT CURRENT_TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP
);Table hii ina concepts nyingi tulizojifunza.
71. Mfano wa Student Management System
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10) NOT NULL,
phone_number VARCHAR(20) DEFAULT NULL,
email VARCHAR(150) DEFAULT NULL,
class_name VARCHAR(50) NOT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'Active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);72. Student Mpya Bila Phone na Email
INSERT INTO students (
student_name,
gender,
class_name
)
VALUES (
'Asha Mussa',
'Female',
'Form One'
);MySQL inaweza kuweka:
phone_number = NULL
email = NULL
status = Active
created_at = current timestamp73. Query ya Students Wenye Missing Contacts
SELECT *
FROM students
WHERE phone_number IS NULL
OR email IS NULL;74. Query ya Complete Contacts
SELECT *
FROM students
WHERE phone_number IS NOT NULL
AND email IS NOT NULL;75. Query ya Active Students
Ikiwa default status ni Active:
SELECT *
FROM students
WHERE status = 'Active';76. Soft Delete kwa Status
Badala ya DELETE:
DELETE FROM students
WHERE student_id = 5;unaweza kufanya:
UPDATE students
SET status = 'Inactive'
WHERE student_id = 5;Hii inatumia default/status concept katika system design.
77. Restoring Student
Unaweza kurudisha:
UPDATE students
SET status = DEFAULT
WHERE student_id = 5;Ikiwa default ni:
Activestudent anaweza kuwa active tena.
78. NULL na Forms za Website
Form inaweza kuwa na:
Student Name: required
Phone Number: optional
Email: optionalDatabase design inaweza kuwa:
student_name VARCHAR(100) NOT NULL,
phone_number VARCHAR(20) NULL,
email VARCHAR(150) NULLHii inaendana na requirements za form.
79. Required vs Optional Data
Required data inaweza kutumia:
NOT NULLOptional data inaweza kuruhusu:
NULLMfano:
Required:
student_name
gender
class
Optional:
phone
email
address80. Usitumie NULL Bila Mpangilio
Si kila column inapaswa kuruhusu NULL.
Mfano:
student_id
student_name
class_namezinaweza kuwa muhimu sana.
Lakini:
middle_name
phone_number
profile_picturezinaweza kuwa optional.
Database design nzuri huamua hili mapema.
81. NULL vs DEFAULT – Mfano Rahisi
Fikiria:
status VARCHAR(20) DEFAULT 'Active'Ikiwa value haijatolewa:
ActiveLakini:
phone_number VARCHAR(20) DEFAULT NULLikiwa value haijatolewa:
NULL82. DEFAULT Inapunguza Repetition
Bila default:
INSERT INTO users (
username,
status
)
VALUES (
'Asha',
'Active'
);Kila mara lazima uandike Active.
Kwa DEFAULT:
INSERT INTO users (
username
)
VALUES (
'Asha'
);Database inajua status ya kuanza.
83. DEFAULT Husaidia Consistency
Kama system ina users 1,000 na wote wanapaswa kuanza na:
Activeni rahisi kutumia:
DEFAULT 'Active'badala ya kutegemea kila INSERT iweke value hiyo.
84. Mfano wa Full INSERT
INSERT INTO students (
student_name,
gender,
phone_number,
email,
class_name
)
VALUES (
'Neema Joseph',
'Female',
NULL,
NULL,
'Form One'
);85. Mfano wa Full UPDATE
UPDATE students
SET
phone_number = '0712345678',
email = 'neema@example.com'
WHERE student_id = 3;86. Mfano wa Missing Data Report
SELECT
student_id,
student_name,
phone_number,
email
FROM students
WHERE phone_number IS NULL
OR email IS NULL
ORDER BY student_name ASC;Hii inaweza kuwa useful kwa admin kuona students wenye taarifa ambazo hazijakamilika.
87. Mfano wa Completed Profiles
SELECT
student_id,
student_name,
phone_number,
email
FROM students
WHERE phone_number IS NOT NULL
AND email IS NOT NULL
ORDER BY student_name ASC;88. Mazoezi ya Somo
Tumia table ya students.
Andika queries za:
- Kutafuta students wasio na phone number.
- Kutafuta students wenye phone number.
- Kutafuta students wasio na email.
- Kutafuta students wenye email.
- Kutafuta students wasio na phone wala email.
- Kutafuta students wenye phone na email.
- Weka email ya student ID 2 kuwa NULL.
- Weka phone number mpya kwa student ID 3.
89. Mazoezi ya DEFAULT
Tengeneza table:
usersyenye:
user_id
username
email
role
status
created_atWeka:
role = user
status = Activekuwa default.
Kisha ingiza user bila role na status.
Angalia data:
SELECT *
FROM users;90. Challenge ya Marks
Tengeneza table:
marksyenye:
mark_id
student_name
subject
scoreIngiza students 6.
Kwa students wawili, weka:
score = NULLKisha:
- Tafuta marks ambazo hazijaingizwa.
- Tafuta marks zilizokwishaingizwa.
- Weka mark ya student mmoja aliyekuwa na NULL.
- Badilisha score nyingine kuwa NULL.
- Hakikisha zero na NULL zinatofautiana.
91. Challenge ya School System
Tengeneza:
CREATE TABLE school_students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100) NOT NULL,
gender VARCHAR(10) NOT NULL,
phone_number VARCHAR(20) DEFAULT NULL,
email VARCHAR(150) DEFAULT NULL,
status VARCHAR(20) NOT NULL DEFAULT 'Active',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);Ingiza students angalau 5.
Baadhi wawe na phone/email na wengine wasiwe nazo.
Kisha tengeneza reports za:
Students wote
Students wasio na phone
Students wasio na email
Students wenye contact zote
Active students92. Maswali ya Kujipima
Jaribu kujibu:
- NULL ina maana gani?
- Je NULL ni sawa na 0?
- Je NULL ni sawa na empty string?
- Je NULL ni sawa na
'NULL'? IS NULLhutumika kufanya nini?IS NOT NULLhutumika kufanya nini?- Kwa nini hatutumii
= NULL? NOT NULLina maana gani?DEFAULTina maana gani?- Unawezaje kuweka default status ya Active?
- Unawezaje kuweka default quantity ya 0?
CURRENT_TIMESTAMPinaweza kutumika kufanya nini?- Kuna tofauti gani kati ya NULL na DEFAULT?
- Kwa nini score 0 haitakiwi kuchanganywa na score NULL?
93. Muhtasari wa Somo
Katika somo hili tumejifunza:
NULLambayo ina maana hakuna value au value haijulikani.
Kutafuta NULL:
SELECT *
FROM students
WHERE phone_number IS NULL;Kutafuta values ambazo zipo:
SELECT *
FROM students
WHERE phone_number IS NOT NULL;Tumeona kuwa:
= NULLsi njia sahihi ya kawaida.
Badala yake tunatumia:
IS NULLna:
IS NOT NULLTumejifunza pia:
NOT NULLkwa columns ambazo lazima ziwe na value.
Na:
DEFAULTkwa kuweka value automatically.
Mfano:
status VARCHAR(20) NOT NULL DEFAULT 'Active'Pia tumeona:
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMPambayo inaweza kuhifadhi muda wa record kutengenezwa automatically.
Sasa tunaelewa vizuri jinsi MySQL inavyoshughulikia missing values, optional information na default values.
Somo Linalofuata
Katika Somo la 19 tutajifunza:
ALTER TABLE – Jinsi ya Kubadilisha Structure ya Table Iliyopo Katika MySQL
Tutajifunza:
ALTER TABLE- Kuongeza column mpya
ADD COLUMN- Kubadilisha data type
MODIFY COLUMN- Kubadilisha jina la column
RENAME COLUMN- Kufuta column
DROP COLUMN- Kuongeza DEFAULT
- Kuongeza NOT NULL
- Kubadilisha table name
- Kuangalia structure kabla na baada ya ALTER
- Makosa ya kawaida
- Tahadhari kabla ya kubadilisha structure
- Mazoezi na challenges
Katika somo hilo tutaanza kujifunza jinsi ya kubadilisha structure ya database baada ya table tayari kutengenezwa.
🚀 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.