MySQL Database Full Course – Somo la 11: AND, OR na NOT – Jinsi ya Kutumia Conditions Nyingi Katika MySQL
Karibu kwenye Somo la 11 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kutumia:
WHEREkwa kuchagua records maalumu.
Tuliona mifano kama:
SELECT *
FROM students
WHERE gender = 'Female';na:
SELECT *
FROM marks
WHERE score >= 50;Lakini mara nyingi condition moja haitoshi.
Kwa mfano tunaweza kutaka:
- Female students wenye age 16 au zaidi
- Male students wenye age chini ya 18
- Marks za Mathematics zilizo juu ya 50
- Products za Electronics zenye price chini ya 100000
- Employees wa IT wenye salary zaidi ya 500000
Hapo tunahitaji kutumia:
ANDORna:
NOTMalengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
ANDni nini - Kuelewa
ORni nini - Kuelewa
NOTni nini - Kutumia conditions zaidi ya moja
- Kuchanganya
WHEREnaAND - Kuchanganya
WHEREnaOR - Kutumia
NOT - Kuelewa tofauti ya AND na OR
- Kutumia parentheses kwenye conditions
- Kuchuja data kwa usahihi zaidi
- Kutengeneza queries za mifumo halisi
1. AND ni Nini?
AND inatumika pale ambapo conditions zote lazima ziwe true.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16;Hii ina maana:
Onyesha students ambao ni Female NA age yao ni 16 au zaidi.
Conditions zote mbili lazima zitimie.
2. Tutumie Table ya Students
Fikiria tuna table:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
gender VARCHAR(10),
age INT,
class_name VARCHAR(50)
);Ingiza data:
INSERT INTO students (
student_name,
gender,
age,
class_name
)
VALUES
('Asha Mussa', 'Female', 16, 'Form One'),
('John Peter', 'Male', 17, 'Form Two'),
('Neema Joseph', 'Female', 15, 'Form One'),
('Peter Michael', 'Male', 18, 'Form Three'),
('Anna Charles', 'Female', 17, 'Form Two'),
('Joseph Mussa', 'Male', 16, 'Form One');3. Kutumia AND
Tukitaka female students wenye age 16 au zaidi:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16;Matokeo yanaweza kuwa:
Asha Mussa Female 16
Anna Charles Female 17Neema hatatokea kwa sababu age yake ni 15.
4. AND na Conditions Tatu
Unaweza kutumia conditions zaidi ya mbili.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16
AND class_name = 'Form Two';Hapa student lazima:
- Awe Female
- Awe na age 16 au zaidi
- Awe Form Two
5. AND na Numbers
Mfano:
SELECT *
FROM students
WHERE age >= 16
AND age <= 17;Hii itaonyesha students wenye age kati ya 16 na 17.
6. AND na Table ya Marks
Tutengeneze:
CREATE TABLE marks (
mark_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
subject VARCHAR(100),
score DECIMAL(5,2)
);Ingiza data:
INSERT INTO marks (
student_name,
subject,
score
)
VALUES
('Asha Mussa', 'Mathematics', 85),
('John Peter', 'Mathematics', 42),
('Neema Joseph', 'English', 91),
('Peter Michael', 'Mathematics', 55),
('Anna Charles', 'English', 38),
('Joseph Mussa', 'Mathematics', 72);7. Mathematics Marks Zaidi ya 50
SELECT *
FROM marks
WHERE subject = 'Mathematics'
AND score > 50;Hii inaweza kuonyesha:
Asha Mussa Mathematics 85
Peter Michael Mathematics 55
Joseph Mussa Mathematics 728. OR ni Nini?
OR inatumika pale ambapo condition moja au nyingine inaweza kuwa true.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
OR age = 18;Hii ina maana:
Onyesha student ambaye ni Female AU ana age 18.
Record inahitaji kutimiza condition moja tu.
9. Mfano wa OR
Tuna:
Asha Female 16
John Male 17
Neema Female 15
Peter Male 18
Anna Female 17Query:
SELECT *
FROM students
WHERE gender = 'Female'
OR age = 18;Matokeo yanaweza kuwa:
Asha
Neema
Peter
AnnaPeter anaonekana kwa sababu age yake ni 18 hata kama ni Male.
10. Tofauti ya AND na OR
AND:
Conditions zote lazima ziwe true.
Mfano:
WHERE gender = 'Female'
AND age = 17Student lazima awe Female na age 17.
OR:
Condition moja inatosha kuwa true.
Mfano:
WHERE gender = 'Female'
OR age = 17Student anaweza:
- Kuwa Female
- Au kuwa na age 17
- Au kutimiza zote mbili
11. OR na Classes
Mfano:
SELECT *
FROM students
WHERE class_name = 'Form One'
OR class_name = 'Form Two';Hii itaonyesha students waliopo Form One au Form Two.
12. OR na Marks
Tunaweza kuandika:
SELECT *
FROM marks
WHERE score >= 80
OR score < 40;Hii itaonyesha:
- Wenye marks 80 au zaidi
- Au wenye marks chini ya 40
13. NOT ni Nini?
NOT inatumika kubadilisha condition kuwa kinyume chake.
Mfano:
SELECT *
FROM students
WHERE NOT gender = 'Male';Hii ina maana:
Onyesha students ambao si Male.
Kwa data yenye Male na Female, inaweza kuonyesha Female students.
14. NOT na Class
Mfano:
SELECT *
FROM students
WHERE NOT class_name = 'Form One';Hii itaonyesha students ambao hawapo Form One.
15. NOT na Condition ya Number
Mfano:
SELECT *
FROM students
WHERE NOT age = 17;Hii itaonyesha students wote ambao age yao si 17.
Unaweza pia kuandika:
SELECT *
FROM students
WHERE age != 17;16. NOT na Marks
Mfano:
SELECT *
FROM marks
WHERE NOT subject = 'Mathematics';Hii itaonyesha marks za subjects nyingine.
17. Kuchanganya AND na OR
Hapa ndipo tunahitaji kuwa makini.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
AND age = 17
OR class_name = 'Form One';Query kama hii inaweza kutoa result tofauti na uliyotarajia kwa sababu ya precedence ya operators.
Ndiyo maana tunatumia:
parenthesesyaani:
()18. Umuhimu wa Parentheses
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
AND (
age = 17
OR class_name = 'Form One'
);Hii ina maana:
Student lazima awe:
Femalena pia awe:
age = 17AU:
class_name = Form One19. Mfano Mwingine wa Parentheses
SELECT *
FROM students
WHERE (
gender = 'Female'
OR age = 18
)
AND class_name = 'Form Two';Kwanza MySQL itaangalia:
Female OR age 18halafu:
AND Form Two20. Kwa Nini Parentheses ni Muhimu?
Bila parentheses query inaweza kuwa ngumu kuelewa.
Mfano:
WHERE gender = 'Female'
OR gender = 'Male'
AND age = 17Inaweza kutafsiriwa tofauti na ulivyokusudia.
Ni bora kuandika:
WHERE (
gender = 'Female'
OR gender = 'Male'
)
AND age = 17;Hii inafanya logic iwe wazi.
21. AND na Products
Tutengeneze:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
category VARCHAR(100),
price DECIMAL(10,2),
quantity INT
);Data:
INSERT INTO products (
product_name,
category,
price,
quantity
)
VALUES
('Laptop', 'Electronics', 1500000, 5),
('Mouse', 'Electronics', 25000, 50),
('Keyboard', 'Electronics', 45000, 30),
('Office Chair', 'Furniture', 180000, 10),
('Desk', 'Furniture', 250000, 6);22. Electronics Zenye Price Chini ya 100000
SELECT *
FROM products
WHERE category = 'Electronics'
AND price < 100000;Hii inaweza kuonyesha:
Mouse
Keyboard23. Products Zenye Stock Ndogo
SELECT *
FROM products
WHERE quantity <= 10
AND price > 100000;Hii inaweza kutumika kwenye inventory system.
24. OR na Products
SELECT *
FROM products
WHERE category = 'Electronics'
OR category = 'Furniture';Hii itaonyesha products za categories zote mbili.
25. NOT na Products
SELECT *
FROM products
WHERE NOT category = 'Electronics';Hii inaweza kuonyesha Furniture.
26. AND Katika Mfumo wa Shule
Academic teacher anaweza kutaka kuona:
Female students wa Form Two:
SELECT *
FROM students
WHERE gender = 'Female'
AND class_name = 'Form Two';27. AND Katika Mfumo wa Marks
Tafuta students wa Mathematics wenye marks 50 au zaidi:
SELECT student_name, score
FROM marks
WHERE subject = 'Mathematics'
AND score >= 50;28. OR Katika Mfumo wa Marks
Tafuta students wenye marks chini ya 40 au 80 na zaidi:
SELECT student_name, score
FROM marks
WHERE score < 40
OR score >= 80;29. Kuchanganya Subject na Marks
Mfano:
SELECT *
FROM marks
WHERE (
subject = 'Mathematics'
OR subject = 'English'
)
AND score >= 50;Hii ina maana:
Chukua marks za Mathematics au English, lakini score iwe 50 au zaidi.
30. NOT Pamoja na AND
Mfano:
SELECT *
FROM students
WHERE NOT gender = 'Male'
AND age >= 16;Hii inaweza kuonyesha Female students wenye age 16 au zaidi.
31. AND na Primary Key
Mfano:
SELECT *
FROM students
WHERE student_id >= 2
AND student_id <= 5;Hii itaonyesha IDs 2 hadi 5.
32. OR na Primary Key
SELECT *
FROM students
WHERE student_id = 1
OR student_id = 5;Hii itaonyesha records mbili maalumu.
Baadaye tutajifunza njia rahisi zaidi kwa kutumia:
IN33. Makosa ya Kawaida – Kutumia AND Wakati Unahitaji OR
Mfano:
SELECT *
FROM students
WHERE gender = 'Male'
AND gender = 'Female';Kwa kawaida record moja haiwezi kuwa Male na Female kwa wakati mmoja kama column ina value moja tu.
Kwa hiyo result inaweza kuwa tupu.
Ikiwa unataka zote mbili:
SELECT *
FROM students
WHERE gender = 'Male'
OR gender = 'Female';34. Makosa ya Kawaida – Kutumia OR Vibaya
Fikiria unataka:
Female students wenye age 17.
Hii ni sahihi:
SELECT *
FROM students
WHERE gender = 'Female'
AND age = 17;Hii si sawa:
SELECT *
FROM students
WHERE gender = 'Female'
OR age = 17;Query ya pili itaonyesha Female wote pamoja na mtu yeyote mwenye age 17.
35. Makosa ya Kawaida – Kusahau Parentheses
Mfano:
SELECT *
FROM students
WHERE gender = 'Female'
OR gender = 'Male'
AND age = 16;Ni bora kuwa wazi:
SELECT *
FROM students
WHERE (
gender = 'Female'
OR gender = 'Male'
)
AND age = 16;36. Makosa ya Kawaida – Kusahau WHERE
Mfano mbaya:
SELECT *
FROM students
AND gender = 'Female';Sahihi:
SELECT *
FROM students
WHERE gender = 'Female';37. Makosa ya Kawaida – AND Kabla ya WHERE
Mfano mbaya:
SELECT *
FROM students
AND age >= 16
WHERE gender = 'Female';Sahihi:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16;38. Query Order
Kwa sasa unaweza kukumbuka:
SELECT columns
FROM table_name
WHERE condition1
AND condition2;Au:
SELECT columns
FROM table_name
WHERE condition1
OR condition2;39. Mfano wa Employees
Tuna table:
CREATE TABLE employees (
employee_id INT PRIMARY KEY AUTO_INCREMENT,
employee_name VARCHAR(100),
department VARCHAR(100),
salary DECIMAL(10,2),
age INT
);Ingiza:
INSERT INTO employees (
employee_name,
department,
salary,
age
)
VALUES
('John Michael', 'IT', 800000, 28),
('Anna Joseph', 'HR', 650000, 30),
('Peter Thomas', 'IT', 550000, 24),
('Neema John', 'Accounts', 900000, 32),
('Asha Peter', 'HR', 500000, 26);40. Employees wa IT Wenye Salary Kubwa Kuliko 600000
SELECT *
FROM employees
WHERE department = 'IT'
AND salary > 600000;41. Employees wa IT au Accounts
SELECT *
FROM employees
WHERE department = 'IT'
OR department = 'Accounts';42. Employees Ambao Sio HR
SELECT *
FROM employees
WHERE NOT department = 'HR';43. Employees wa IT au Accounts Wenye Salary 600000+
SELECT *
FROM employees
WHERE (
department = 'IT'
OR department = 'Accounts'
)
AND salary >= 600000;Huu ni mfano mzuri wa kutumia parentheses.
44. AND Katika PHP Systems
Baadaye katika PHP unaweza kuwa na search form.
User anachagua:
Gender: Female
Class: Form TwoSQL inaweza kutumia concept:
SELECT *
FROM students
WHERE gender = 'Female'
AND class_name = 'Form Two';Katika mfumo halisi tutatumia prepared statements kwa data inayotoka kwa user.
45. OR Katika Search Systems
Search inaweza kutafuta record kwa name au phone.
Concept inaweza kuwa:
SELECT *
FROM students
WHERE student_name = 'Asha Mussa'
OR phone_number = '0711111111';46. Kuandika Query Inayosomeka
Badala ya:
SELECT * FROM students WHERE gender='Female' AND age>=16 AND class_name='Form Two';unaweza kuandika:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16
AND class_name = 'Form Two';Hii ni rahisi kusoma, ku-debug na ku-maintain.
47. Mazoezi ya Somo
Tumia table ya students:
student_id
student_name
gender
age
class_nameAndika query za:
- Female students wenye age 16 au zaidi.
- Male students wenye age chini ya 18.
- Students wa Form One au Form Two.
- Students ambao si Form Three.
- Female students wa Form Two.
- Students wenye age 15 au 18.
- Students wa Form One wenye age 16.
- Students ambao si Male na age yao ni 16 au zaidi.
48. Challenge ya Somo
Tumia table ya:
productsyenye:
product_id
product_name
category
price
quantityAndika queries za:
- Electronics zenye price chini ya 100000.
- Furniture zenye quantity chini au sawa na 10.
- Products za Electronics au Furniture.
- Products ambazo si Electronics.
- Electronics au Furniture zenye price zaidi ya 50000.
- Products zenye quantity chini ya 10 au price zaidi ya 1000000.
Mfano:
SELECT *
FROM products
WHERE (
category = 'Electronics'
OR category = 'Furniture'
)
AND price > 50000;49. Maswali ya Kujipima
Jaribu kujibu:
ANDinatumika lini?ORinatumika lini?NOTinafanya nini?- Kuna tofauti gani kati ya AND na OR?
- Kwa nini parentheses ni muhimu?
- Query hii ina maana gani?
WHERE gender = 'Female'
AND age >= 16- Query hii ina maana gani?
WHERE gender = 'Female'
OR age >= 16- Unawezaje kupata Mathematics marks 50 au zaidi?
- Unawezaje kupata products ambazo si Electronics?
- Unawezaje kutumia conditions tatu kwa pamoja?
50. Muhtasari wa Somo
Katika somo hili tumejifunza operators muhimu:
AND
OR
NOTAND inahitaji conditions zote ziwe true:
SELECT *
FROM students
WHERE gender = 'Female'
AND age >= 16;OR inahitaji angalau condition moja iwe true:
SELECT *
FROM students
WHERE gender = 'Female'
OR age = 18;NOT hubadilisha condition:
SELECT *
FROM students
WHERE NOT gender = 'Male';Tumejifunza pia umuhimu wa kutumia parentheses:
SELECT *
FROM marks
WHERE (
subject = 'Mathematics'
OR subject = 'English'
)
AND score >= 50;Hii inafanya queries zetu kuwa powerful zaidi na kutuwezesha kuchuja data kwa masharti mengi kwa wakati mmoja.
Somo Linalofuata
Katika Somo la 12 tutajifunza:
ORDER BY – Jinsi ya Kupanga Data kwa ASC na DESC Katika MySQL
Tutajifunza:
ORDER BYASCDESC- Kupanga majina A–Z
- Kupanga majina Z–A
- Kupanga marks kubwa hadi ndogo
- Kupanga marks ndogo hadi kubwa
- Kupanga kwa columns zaidi ya moja
- Kuchanganya WHERE na ORDER BY
- Mifano ya students, marks na products
- Makosa ya kawaida
- Mazoezi ya ORDER BY
Hapo tutajifunza jinsi ya kuonyesha data kwa mpangilio unaotakiwa badala ya kutegemea order ambayo records zimehifadhiwa.
🚀 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.