MySQL Database Full Course – Somo la 10: WHERE Clause – Jinsi ya Kuchagua Data Maalumu Katika MySQL
Karibu kwenye Somo la 10 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kutumia:
SELECTkusoma data kutoka kwenye table.
Tuliona mifano kama:
SELECT * FROM students;na:
SELECT student_name, gender
FROM students;Lakini kuna tatizo moja.
SELECT pekee inaweza kutuonyesha records zote.
Mara nyingi hatuhitaji kuona kila record.
Tunaweza kutaka kuona:
- Mwanafunzi mmoja
- Wanafunzi wa kike pekee
- Wanafunzi wa kiume pekee
- Marks zilizo juu ya 50
- Products zenye bei fulani
- User mwenye ID maalumu
- Shule kutoka mkoa fulani
- Walimu wa subject maalumu
Hapo ndipo tunapotumia:
WHEREMalengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
WHEREni nini - Kuchagua record kwa ID
- Kuchagua records kwa jina
- Kuchagua records kwa gender
- Kutumia operator ya
= - Kutumia
> - Kutumia
< - Kutumia
>= - Kutumia
<= - Kutumia
!= - Kutumia
<> - Kuchuja marks
- Kuchuja prices
- Kuchuja data maalumu kwenye table
- Kuelewa umuhimu wa WHERE katika SELECT
- Kuepuka makosa ya kawaida ya WHERE
1. WHERE ni Nini?
WHERE ni sehemu ya SQL query inayotumika kuchagua records zinazokidhi condition fulani.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female';Hii ina maana:
Onyesha wanafunzi wote ambao gender yao ni Female.
2. Structure ya WHERE
Muundo wa kawaida ni:
SELECT column_name
FROM table_name
WHERE condition;Mfano:
SELECT *
FROM students
WHERE student_id = 1;Hii itaonyesha mwanafunzi mwenye:
student_id = 13. Tutumie Table ya Students
Fikiria tuna table hii:
CREATE TABLE students (
student_id INT PRIMARY KEY AUTO_INCREMENT,
student_name VARCHAR(100),
gender VARCHAR(10),
age INT,
phone_number VARCHAR(20)
);Tumeingiza data:
INSERT INTO students (
student_name,
gender,
age,
phone_number
)
VALUES
('Asha Mussa', 'Female', 16, '0711111111'),
('John Peter', 'Male', 17, '0722222222'),
('Neema Joseph', 'Female', 15, '0733333333'),
('Peter Michael', 'Male', 18, '0744444444'),
('Anna Charles', 'Female', 17, '0755555555');4. Kuonyesha Records Zote
Bila WHERE:
SELECT * FROM students;Tunaweza kupata:
+------------+---------------+--------+-----+--------------+
| student_id | student_name | gender | age | phone_number |
+------------+---------------+--------+-----+--------------+
| 1 | Asha Mussa | Female | 16 | 0711111111 |
| 2 | John Peter | Male | 17 | 0722222222 |
| 3 | Neema Joseph | Female | 15 | 0733333333 |
| 4 | Peter Michael | Male | 18 | 0744444444 |
| 5 | Anna Charles | Female | 17 | 0755555555 |
+------------+---------------+--------+-----+--------------+5. Kuchagua Record kwa ID
Ikiwa tunataka mwanafunzi mwenye ID 2:
SELECT *
FROM students
WHERE student_id = 2;Result inaweza kuwa:
+------------+--------------+--------+-----+--------------+
| student_id | student_name | gender | age | phone_number |
+------------+--------------+--------+-----+--------------+
| 2 | John Peter | Male | 17 | 0722222222 |
+------------+--------------+--------+-----+--------------+Hii ni matumizi muhimu sana ya WHERE.
6. Operator ya =
Operator:
=ina maana:
Sawa na
Mfano:
SELECT *
FROM students
WHERE age = 17;Hii itaonyesha wanafunzi wenye age 17.
7. Kuchagua kwa Jina
Tunaweza kuandika:
SELECT *
FROM students
WHERE student_name = 'Asha Mussa';Kwa text tunatumia quotes:
'Asha Mussa'8. Kuchagua kwa Gender
SELECT *
FROM students
WHERE gender = 'Female';Hii inaweza kurudisha:
Asha Mussa
Neema Joseph
Anna Charles9. Kuchagua Male Students
SELECT *
FROM students
WHERE gender = 'Male';10. Kuchagua Columns Maalumu na WHERE
Si lazima utumie:
SELECT *Unaweza kuandika:
SELECT student_name, age
FROM students
WHERE gender = 'Female';Hii inaweza kuonyesha:
+--------------+-----+
| student_name | age |
+--------------+-----+
| Asha Mussa | 16 |
| Neema Joseph | 15 |
| Anna Charles | 17 |
+--------------+-----+11. Operator ya >
Operator:
>ina maana:
Kubwa kuliko
Mfano:
SELECT *
FROM students
WHERE age > 16;Hii itaonyesha wanafunzi wenye age kubwa kuliko 16.
Kwa data yetu:
John Peter 17
Peter Michael 18
Anna Charles 1712. Operator ya <
Operator:
<ina maana:
Ndogo kuliko
Mfano:
SELECT *
FROM students
WHERE age < 17;Result inaweza kuwa:
Asha Mussa 16
Neema Joseph 1513. Operator ya >=
Operator:
>=ina maana:
Kubwa kuliko au sawa na
Mfano:
SELECT *
FROM students
WHERE age >= 17;Hii itaonyesha:
John Peter 17
Peter Michael 18
Anna Charles 1714. Operator ya <=
Operator:
<=ina maana:
Ndogo kuliko au sawa na
Mfano:
SELECT *
FROM students
WHERE age <= 16;Result inaweza kuwa:
Asha Mussa 16
Neema Joseph 1515. Operator ya !=
Operator:
!=ina maana:
Si sawa na
Mfano:
SELECT *
FROM students
WHERE gender != 'Female';Hii inaweza kuonyesha wanafunzi ambao gender yao si Female.
Kwa mfano:
John Peter
Peter Michael16. Operator ya <>
Katika SQL unaweza pia kutumia:
<>kwa maana ya:
Si sawa na
Mfano:
SELECT *
FROM students
WHERE gender <> 'Male';Hii inaweza kuonyesha records ambazo gender si Male.
17. != na <> Zinafanana?
Kwa MySQL, operator hizi zinaweza kutumika kuonyesha “not equal”:
!=na:
<>Mfano:
SELECT *
FROM students
WHERE age != 17;Au:
SELECT *
FROM students
WHERE age <> 17;18. WHERE na Numbers
Numbers hazihitaji quotes.
Mfano:
SELECT *
FROM students
WHERE student_id = 3;Au:
SELECT *
FROM students
WHERE age > 15;19. WHERE na Text
Text kwa kawaida tunaiweka kwenye single quotes.
Mfano:
SELECT *
FROM students
WHERE student_name = 'Neema Joseph';20. WHERE na Table ya Marks
Tutengeneze table:
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', 'Mathematics', 91),
('Peter Michael', 'Mathematics', 55),
('Anna Charles', 'Mathematics', 38);21. Kuchagua Marks Zaidi ya 50
SELECT *
FROM marks
WHERE score > 50;Result inaweza kuwa:
Asha Mussa 85
Neema Joseph 91
Peter Michael 5522. Kuchagua Marks Chini ya 50
SELECT *
FROM marks
WHERE score < 50;Result:
John Peter 42
Anna Charles 3823. Marks Sawa na 85
SELECT *
FROM marks
WHERE score = 85;24. Marks Kubwa au Sawa na 50
SELECT *
FROM marks
WHERE score >= 50;Hii inaweza kutumika kwa mfano kuonyesha waliopata angalau 50.
25. Marks Chini au Sawa na 49
SELECT *
FROM marks
WHERE score <= 49;26. WHERE na Products Table
Tutengeneze:
CREATE TABLE products (
product_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
category VARCHAR(100),
price DECIMAL(10,2),
quantity INT
);Ingiza 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);27. Products Zenye Price Kubwa Kuliko 100000
SELECT *
FROM products
WHERE price > 100000;28. Products Zenye Quantity Chini ya 10
SELECT *
FROM products
WHERE quantity < 10;Hii inaweza kusaidia kwenye mfumo wa stock kujua products zinazokaribia kuisha.
29. Product ya Category Fulani
SELECT *
FROM products
WHERE category = 'Furniture';30. WHERE na Teachers Table
Fikiria tuna:
Joseph Michael Mathematics
Anna Charles English
Peter John Physics
Neema Mussa ChemistryTunaweza kupata teacher wa Physics kwa:
SELECT *
FROM teachers
WHERE subject = 'Physics';31. WHERE na student_id
Katika mfumo halisi, ID hutumika sana.
Mfano:
SELECT *
FROM students
WHERE student_id = 15;Hii ndiyo pattern ambayo baadaye itaonekana kwenye PHP.
Mfano URL inaweza kuwa:
student.php?id=15Na SQL concept inaweza kuwa:
SELECT *
FROM students
WHERE student_id = 15;Katika PHP halisi tutatumia prepared statements na parameter binding.
32. WHERE Katika UPDATE
Ingawa bado hatujafika kwenye UPDATE, WHERE itakuwa muhimu sana.
Mfano:
UPDATE students
SET phone_number = '0766666666'
WHERE student_id = 2;Hapa WHERE inaambia MySQL:
Badilisha record yenye student_id = 2 tu.
Bila WHERE unaweza kubadilisha records nyingi usizokusudia.
Tutajifunza UPDATE kwa undani katika somo lake.
33. WHERE Katika DELETE
Pia baadaye tutatumia:
DELETE FROM students
WHERE student_id = 2;WHERE inasaidia kulenga record maalumu.
Bila WHERE:
DELETE FROM students;inaweza kufuta records zote kutoka table.
Kwa hiyo WHERE ni sehemu muhimu sana ya SQL.
34. Makosa ya Kawaida – Kutumia = Vibaya
Beginner anaweza kuandika:
SELECT *
FROM students
WHERE gender == 'Female';Katika MySQL condition ya kawaida ya equality tunatumia:
=Sahihi:
SELECT *
FROM students
WHERE gender = 'Female';35. Makosa ya Kawaida – Kusahau Quotes
Mfano mbaya:
SELECT *
FROM students
WHERE gender = Female;Sahihi:
SELECT *
FROM students
WHERE gender = 'Female';36. Makosa ya Kawaida – Quotes kwenye Numbers
Mfano:
SELECT *
FROM students
WHERE age = '17';MySQL mara nyingi inaweza kufanya type conversion.
Lakini kwa numeric columns ni vizuri kuandika:
SELECT *
FROM students
WHERE age = 17;37. Makosa ya Kawaida – Column Isiyopo
Mfano:
SELECT *
FROM students
WHERE class_name = 'Form One';Lakini table haina column:
class_nameMySQL itatoa error.
Tumia:
DESC students;kuangalia columns.
38. Makosa ya Kawaida – Table Isiyopo
Mfano:
SELECT *
FROM student
WHERE student_id = 1;lakini table inaitwa:
studentsSahihi:
SELECT *
FROM students
WHERE student_id = 1;39. WHERE na SELECT Columns Maalumu
Mfano:
SELECT
student_name,
phone_number
FROM students
WHERE gender = 'Female';Hii ni nzuri zaidi kama tunahitaji taarifa chache tu.
40. Alias Pamoja na WHERE
Tunaweza kuandika:
SELECT
student_name AS 'Student Name',
age AS 'Student Age'
FROM students
WHERE age >= 17;41. DISTINCT Pamoja na WHERE
Tunaweza pia kuchanganya:
SELECT DISTINCT gender
FROM students
WHERE age >= 16;Hii inaonyesha genders tofauti ndani ya records zinazokidhi condition.
42. Query Order ya Msingi
Kwa sasa unaweza kukumbuka mpangilio huu:
SELECT columns
FROM table_name
WHERE condition;Mfano:
SELECT student_name, age
FROM students
WHERE age >= 17;43. Mfano wa Mfumo wa Shule
Fikiria mfumo una wanafunzi 10,000.
Admin hataki kuonyesha wote kila wakati.
Anaweza kutafuta mwanafunzi mwenye ID:
SELECT *
FROM students
WHERE student_id = 501;Au female students:
SELECT *
FROM students
WHERE gender = 'Female';Au students wenye age kubwa kuliko 17:
SELECT *
FROM students
WHERE age > 17;44. Mfano wa Mfumo wa Marks
Academic teacher anaweza kutaka kuona:
Wanafunzi wenye marks 80 au zaidi:
SELECT student_name, score
FROM marks
WHERE score >= 80;Au marks chini ya 50:
SELECT student_name, score
FROM marks
WHERE score < 50;45. Mfano wa Mfumo wa Shop
Admin anaweza kutaka kuona products zenye stock ndogo:
SELECT product_name, quantity
FROM products
WHERE quantity <= 10;Au products za Electronics:
SELECT *
FROM products
WHERE category = 'Electronics';46. Mazoezi ya Somo
Tumia table ya students yenye columns:
student_id
student_name
gender
age
phone_numberAndika queries za:
- Kuonyesha student mwenye ID 3.
- Kuonyesha female students.
- Kuonyesha male students.
- Kuonyesha students wenye age 17.
- Kuonyesha students wenye age kubwa kuliko 16.
- Kuonyesha students wenye age chini ya 18.
- Kuonyesha students ambao age si 17.
- Kuonyesha student_name na age za students wenye age 17 au zaidi.
47. Challenge ya Somo
Tengeneza table:
employeesiwe na:
employee_id
employee_name
department
salary
ageIngiza employees angalau sita.
Kisha andika queries za:
- Kuonyesha employees wote.
- Kuonyesha employee mwenye ID 2.
- Kuonyesha employees wa department ya IT.
- Kuonyesha employees wenye salary kubwa kuliko 500000.
- Kuonyesha employees wenye salary chini au sawa na 700000.
- Kuonyesha employees ambao department yao si HR.
- Kuonyesha employee_name na salary za employees wenye salary 600000 au zaidi.
Mfano:
SELECT employee_name, salary
FROM employees
WHERE salary >= 600000;48. Maswali ya Kujipima
Jaribu kujibu:
WHEREinatumika kufanya nini?- Operator
=ina maana gani? >ina maana gani?<ina maana gani?>=ina maana gani?<=ina maana gani?!=ina maana gani?<>ina maana gani?- Kwa nini text inawekwa kwenye quotes?
- Kwa nini WHERE ni muhimu katika UPDATE na DELETE?
49. Muhtasari wa Somo
Katika somo hili tumejifunza:
WHEREambayo inatumika kuchuja records kulingana na condition.
Mfano:
SELECT *
FROM students
WHERE gender = 'Female';Tumejifunza operators muhimu:
= sawa na
> kubwa kuliko
< ndogo kuliko
>= kubwa kuliko au sawa na
<= ndogo kuliko au sawa na
!= si sawa na
<> si sawa naMfano:
SELECT *
FROM marks
WHERE score >= 50;Na:
SELECT student_name, age
FROM students
WHERE age > 16;Sasa tunaweza kusoma data maalumu badala ya kuonyesha records zote.
Somo Linalofuata
Katika Somo la 11 tutajifunza:
AND, OR na NOT – Jinsi ya Kutumia Conditions Nyingi Katika MySQL
Tutajifunza:
ANDORNOT- Kuchanganya conditions nyingi
- Female students wenye age fulani
- Marks za subject fulani zilizo juu ya kiwango fulani
- Kutumia parentheses
- Tofauti ya AND na OR
- Makosa ya kawaida
- Mifano ya systems halisi
- Mazoezi ya conditions
Hapo tutajifunza jinsi ya kuifanya WHERE iwe powerful zaidi kwa kutumia conditions zaidi ya moja.
🚀 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.