MySQL Database Full Course – Somo la 12: ORDER BY – Jinsi ya Kupanga Data kwa ASC na DESC Katika MySQL
Karibu kwenye Somo la 12 la MySQL Database Full Course kwa Kiswahili.
Katika somo lililopita tulijifunza kutumia:
AND
OR
NOTkwa kuchanganya conditions nyingi ndani ya WHERE.
Sasa tutajifunza jinsi ya kupanga data tunayoipata kutoka kwenye database.
Command tutakayotumia ni:
ORDER BYORDER BY ni muhimu sana kwa sababu mara nyingi hatutaki data ionekane bila mpangilio.
Tunaweza kutaka:
- Majina yapangwe A mpaka Z
- Majina yapangwe Z mpaka A
- Marks kubwa zianze juu
- Marks ndogo zianze juu
- Products za bei kubwa zianze juu
- Students wapangwe kwa age
- Records za mwisho zionekane kwanza
- Data ipangwe kwa columns zaidi ya moja
Malengo ya Somo
Baada ya kumaliza somo hili utaweza:
- Kuelewa
ORDER BYni nini - Kutumia
ASC - Kutumia
DESC - Kupanga text alphabetically
- Kupanga numbers kutoka ndogo hadi kubwa
- Kupanga numbers kutoka kubwa hadi ndogo
- Kuchanganya
WHEREnaORDER BY - Kupanga kwa columns zaidi ya moja
- Kupanga marks
- Kupanga products kwa price
- Kupanga students kwa age
- Kuelewa default order ya
ORDER BY - Kuepuka makosa ya kawaida
1. ORDER BY ni Nini?
ORDER BY ni SQL clause inayotumika kupanga result ya query kwa column fulani.
Mfano:
SELECT *
FROM students
ORDER BY student_name;Hii itapanga students kwa majina.
Kwa default, MySQL hutumia:
ASCyaani ascending order.
2. ASC ni Nini?
ASC ni kifupi cha:
AscendingIna maana kupanga kutoka chini kwenda juu.
Kwa text inaweza kuwa:
A
B
C
D
...
ZKwa numbers:
1
2
3
4
5Mfano:
SELECT *
FROM students
ORDER BY student_name ASC;3. DESC ni Nini?
DESC ni kifupi cha:
DescendingIna maana kupanga kutoka juu kwenda chini.
Kwa text:
Z
Y
X
...
AKwa numbers:
100
90
80
70Mfano:
SELECT *
FROM students
ORDER BY student_name DESC;4. Tutumie Table ya Students
Fikiria tuna:
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
('Peter Michael', 'Male', 18, 'Form Three'),
('Asha Mussa', 'Female', 16, 'Form One'),
('Neema Joseph', 'Female', 15, 'Form One'),
('John Peter', 'Male', 17, 'Form Two'),
('Anna Charles', 'Female', 17, 'Form Two');5. Kuonyesha Data Bila ORDER BY
SELECT * FROM students;Unaweza kuona records kwa order ambayo database imezirudisha.
Lakini ni muhimu kuelewa kuwa bila ORDER BY, hupaswi kutegemea result kuwa katika order maalumu.
Ikiwa unahitaji order ya uhakika, tumia:
ORDER BY6. Kupanga Majina A mpaka Z
SELECT *
FROM students
ORDER BY student_name ASC;Result inaweza kuwa:
Anna Charles
Asha Mussa
John Peter
Neema Joseph
Peter Michael7. Kupanga Majina Z mpaka A
SELECT *
FROM students
ORDER BY student_name DESC;Result inaweza kuwa:
Peter Michael
Neema Joseph
John Peter
Asha Mussa
Anna Charles8. ORDER BY Bila ASC
Ukiandika:
SELECT *
FROM students
ORDER BY student_name;MySQL hutumia ascending order kwa default.
Kwa hiyo hii ni sawa na:
SELECT *
FROM students
ORDER BY student_name ASC;9. Kupanga Students kwa Age
SELECT *
FROM students
ORDER BY age ASC;Result inaweza kuwa:
Neema Joseph 15
Asha Mussa 16
John Peter 17
Anna Charles 17
Peter Michael 1810. Age Kubwa Kuanza Juu
SELECT *
FROM students
ORDER BY age DESC;Result:
Peter Michael 18
John Peter 17
Anna Charles 17
Asha Mussa 16
Neema Joseph 1511. Kuchagua Columns Maalumu na ORDER BY
Si lazima utumie SELECT *.
Mfano:
SELECT
student_name,
age
FROM students
ORDER BY age DESC;Hii itaonyesha name na age tu.
12. ORDER BY na 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:
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);13. Marks Kubwa Kuanza Juu
SELECT *
FROM marks
ORDER BY score DESC;Result inaweza kuwa:
Neema Joseph 91
Asha Mussa 85
Peter Michael 55
John Peter 42
Anna Charles 38Hii ni muhimu sana katika ranking systems.
14. Marks Ndogo Kuanza Juu
SELECT *
FROM marks
ORDER BY score ASC;Result:
Anna Charles 38
John Peter 42
Peter Michael 55
Asha Mussa 85
Neema Joseph 9115. WHERE na ORDER BY
Tunaweza kuchanganya:
SELECT *
FROM marks
WHERE score >= 50
ORDER BY score DESC;Hii ina maana:
Chagua marks 50 au zaidi, kisha zipange kubwa mpaka ndogo.
16. Female Students kwa Age
SELECT *
FROM students
WHERE gender = 'Female'
ORDER BY age DESC;Hii itaonyesha Female students pekee na kuwapanga kwa age kubwa hadi ndogo.
17. ORDER BY na Subject
Tunaweza kupanga kwa subject:
SELECT *
FROM marks
ORDER BY subject ASC;18. Kupanga kwa Columns Zaidi ya Moja
ORDER BY inaweza kutumia columns zaidi ya moja.
Mfano:
SELECT *
FROM students
ORDER BY gender ASC, student_name ASC;MySQL itaanza kupanga kwa:
genderHalafu records zenye gender sawa zitapangwa kwa:
student_name19. Mfano wa Multiple Columns
Fikiria tuna:
Asha Female
Neema Female
Anna Female
John Male
Peter MaleQuery:
SELECT *
FROM students
ORDER BY gender ASC, student_name ASC;Ndani ya kila gender, majina yatapangwa alphabetically.
20. ASC na DESC Pamoja
Unaweza kutumia orders tofauti.
Mfano:
SELECT *
FROM students
ORDER BY gender ASC, age DESC;Hapa:
- Gender inapangwa ASC
- Ndani ya gender hiyo age inapangwa DESC
21. Mfano wa Classes
SELECT *
FROM students
ORDER BY class_name ASC, student_name ASC;Hii inaweza kuwa useful kwenye mfumo wa shule.
Students watawekwa kwa class, kisha kwa majina.
22. ORDER BY 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
);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);23. Products za Bei Ndogo Kuanza Juu
SELECT *
FROM products
ORDER BY price ASC;24. Products za Bei Kubwa Kuanza Juu
SELECT *
FROM products
ORDER BY price DESC;25. Products kwa Quantity
SELECT *
FROM products
ORDER BY quantity ASC;Hii inaweza kusaidia kuona products zenye stock ndogo kwanza.
26. Products Zenye Stock Chini ya 20
SELECT *
FROM products
WHERE quantity < 20
ORDER BY quantity ASC;Hii ni mfano mzuri wa inventory report.
27. Products kwa Category na Price
SELECT *
FROM products
ORDER BY category ASC, price DESC;Products zitapangwa kwanza kwa category, halafu ndani ya category kwa price kubwa hadi ndogo.
28. ORDER BY na Primary Key
Unaweza kupanga records kwa ID.
SELECT *
FROM students
ORDER BY student_id ASC;Hii inaweza kuonyesha ID ndogo kwanza.
29. Records za ID Kubwa Kuanza Juu
SELECT *
FROM students
ORDER BY student_id DESC;Hii mara nyingi hutumiwa kama njia rahisi ya kuonyesha records mpya zaidi kwanza pale ambapo ID mpya zinaongezeka kwa AUTO_INCREMENT.
Lakini kumbuka: student_id si timestamp. Ikiwa unahitaji order ya tarehe halisi, ni bora kutumia column ya tarehe kama created_at.
30. ORDER BY na DATE
Fikiria table:
CREATE TABLE posts (
post_id INT PRIMARY KEY AUTO_INCREMENT,
title VARCHAR(200),
created_at DATETIME
);Tunaweza kuonyesha posts mpya kwanza:
SELECT *
FROM posts
ORDER BY created_at DESC;31. Posts za Zamani Kwanza
SELECT *
FROM posts
ORDER BY created_at ASC;32. ORDER BY Katika Blog System
Kwa blog, mara nyingi tunataka newest posts kwanza:
SELECT *
FROM posts
ORDER BY created_at DESC;Au kwa IDs:
SELECT *
FROM posts
ORDER BY post_id DESC;Lakini tarehe ndiyo njia bora zaidi kama tunataka order ya publication time.
33. ORDER BY Katika Mfumo wa Shule
Admin anaweza kutaka students wapangwe alphabetically:
SELECT *
FROM students
ORDER BY student_name ASC;Au kwa class:
SELECT *
FROM students
ORDER BY class_name ASC, student_name ASC;34. ORDER BY Katika Mfumo wa Marks
Academic teacher anaweza kuonyesha top scores:
SELECT student_name, score
FROM marks
ORDER BY score DESC;Hii ndiyo msingi wa kutengeneza rankings.
35. Kutengeneza Ranking ya Msingi
Fikiria:
SELECT
student_name,
score
FROM marks
ORDER BY score DESC;Result:
Neema Joseph 91
Asha Mussa 85
Peter Michael 55
John Peter 42
Anna Charles 38Hapa tunaweza kuona highest performer akiwa juu.
Baadaye tutajifunza functions na techniques za advanced ranking.
36. ORDER BY na Alias
Unaweza kutumia alias katika query.
Mfano:
SELECT
student_name AS name,
score AS marks
FROM marks
ORDER BY marks DESC;Katika MySQL hii inaweza kutumika kupanga kwa alias marks.
37. ORDER BY na Calculations
Fikiria table:
CREATE TABLE sales (
sale_id INT PRIMARY KEY AUTO_INCREMENT,
product_name VARCHAR(100),
price DECIMAL(10,2),
quantity INT
);Tunaweza kufanya:
SELECT
product_name,
price,
quantity,
price * quantity AS total
FROM sales
ORDER BY total DESC;Hii itapanga records kwa calculated total.
38. ORDER BY Column Position
Unaweza kukutana na query kama:
SELECT student_name, age
FROM students
ORDER BY 2 DESC;Hapa:
2ina maana column ya pili kwenye SELECT, yaani age.
Ingawa hii inaweza kufanya kazi, kwa readability ni bora kuandika:
ORDER BY age DESC;39. Makosa ya Kawaida – ORDER BY Kabla ya WHERE
Mfano mbaya:
SELECT *
FROM students
ORDER BY age DESC
WHERE gender = 'Female';Sahihi:
SELECT *
FROM students
WHERE gender = 'Female'
ORDER BY age DESC;Mpangilio ni muhimu.
40. Query Order ya Msingi
Kwa sasa kumbuka:
SELECT columns
FROM table
WHERE condition
ORDER BY column ASC;Mfano:
SELECT
student_name,
age
FROM students
WHERE gender = 'Female'
ORDER BY age DESC;41. Makosa ya Kawaida – Kuandika ASC na DESC Pamoja
Mfano mbaya:
ORDER BY score ASC DESC;Chagua moja:
ORDER BY score ASC;Au:
ORDER BY score DESC;42. Makosa ya Kawaida – Column Isiyopo
Mfano:
SELECT *
FROM students
ORDER BY marks DESC;Lakini students haina column marks.
MySQL itatoa error.
Tumia:
DESC students;kuangalia columns zilizopo.
43. Makosa ya Kawaida – Kudhani Data Ina Order Bila ORDER BY
Query:
SELECT * FROM students;haikupi guarantee ya order maalumu.
Hata kama leo inaonekana imepangwa kwa ID, usitegemee hilo kwa logic ya application.
Kama order ni muhimu, sema wazi:
ORDER BY student_id ASC;44. Makosa ya Kawaida – Kuchanganya DESC ya DESCRIBE
Kumbuka kuna vitu viwili vinavyoweza kuonekana kama DESC.
Kuangalia structure:
DESC students;Hapa DESC ni shorthand ya DESCRIBE.
Lakini:
ORDER BY score DESC;Hapa DESC ina maana descending order.
Context ndiyo inaonyesha maana yake.
45. Mfano wa Employees
Tuna:
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);46. Employees kwa Salary Kubwa Kwanza
SELECT *
FROM employees
ORDER BY salary DESC;47. Employees kwa Age Ndogo Kwanza
SELECT *
FROM employees
ORDER BY age ASC;48. Employees wa IT kwa Salary Kubwa Kwanza
SELECT *
FROM employees
WHERE department = 'IT'
ORDER BY salary DESC;49. Employees kwa Department na Salary
SELECT *
FROM employees
ORDER BY department ASC, salary DESC;50. Mfano wa School Report
Tunaweza kuandika:
SELECT
student_name,
gender,
class_name,
age
FROM students
ORDER BY class_name ASC, student_name ASC;Hii inaweza kutumika kuandaa student list iliyopangwa vizuri.
51. Mfano wa Marks Report
SELECT
student_name,
subject,
score
FROM marks
WHERE subject = 'Mathematics'
ORDER BY score DESC;Hii inaweza kutoa Mathematics ranking ya msingi.
52. Mfano wa Inventory Report
SELECT
product_name,
category,
quantity
FROM products
WHERE quantity <= 10
ORDER BY quantity ASC;Hii inaweza kuonyesha bidhaa zinazohitaji restock kwa haraka.
53. Mazoezi ya Somo
Tumia table ya students.
Andika queries za:
- Kupanga students kwa jina A–Z.
- Kupanga students kwa jina Z–A.
- Kupanga students kwa age ndogo hadi kubwa.
- Kupanga students kwa age kubwa hadi ndogo.
- Kuonyesha Female students na kuwapanga kwa age DESC.
- Kupanga students kwa class, kisha kwa name.
- Kuonyesha student_name na age pekee, zilizopangwa kwa age DESC.
54. Challenge ya Somo
Tumia table ya:
productsyenye:
product_id
product_name
category
price
quantityAndika queries za:
- Kupanga products kwa price ndogo hadi kubwa.
- Kupanga products kwa price kubwa hadi ndogo.
- Kupanga products kwa quantity ndogo kwanza.
- Kuonyesha Electronics pekee na kuzipanga kwa price DESC.
- Kupanga kwa category ASC na price DESC.
- Kuonyesha products zenye quantity chini ya 20 na kuzipanga kwa quantity ASC.
Mfano:
SELECT *
FROM products
WHERE quantity < 20
ORDER BY quantity ASC;55. Maswali ya Kujipima
Jaribu kujibu:
ORDER BYinatumika kufanya nini?ASCina maana gani?DESCina maana gani?- Default order ya
ORDER BYni ipi? - Tunawezaje kupanga majina A–Z?
- Tunawezaje kupanga marks kubwa hadi ndogo?
- Tunawezaje kutumia WHERE na ORDER BY pamoja?
- Tunawezaje kupanga kwa columns mbili?
- Je bila ORDER BY tunapaswa kutegemea result kuwa na order fulani?
- Kuna tofauti gani kati ya
DESC students;naORDER BY score DESC?
56. Muhtasari wa Somo
Katika somo hili tumejifunza:
ORDER BYambayo inatumika kupanga result ya SQL query.
Kupanga ascending:
SELECT *
FROM students
ORDER BY student_name ASC;Kupanga descending:
SELECT *
FROM students
ORDER BY student_name DESC;Marks kubwa kwanza:
SELECT *
FROM marks
ORDER BY score DESC;Kuchanganya WHERE na ORDER BY:
SELECT *
FROM marks
WHERE score >= 50
ORDER BY score DESC;Kupanga kwa columns nyingi:
SELECT *
FROM students
ORDER BY class_name ASC, student_name ASC;Sasa tunaweza kuchagua data kwa WHERE na kisha kuipanga kwa njia tunayotaka kwa kutumia ORDER BY.
Somo Linalofuata
Katika Somo la 13 tutajifunza:
LIMIT – Jinsi ya Kupunguza Idadi ya Records Zinazoonyeshwa Katika MySQL
Tutajifunza:
LIMIT- Kuonyesha record moja
- Kuonyesha records 5
- Kuonyesha records 10
- Kuchanganya LIMIT na ORDER BY
- Kupata top students
- Kupata products za bei kubwa zaidi
- Kupata latest records
- Kutumia
OFFSET - Msingi wa pagination
- Mifano ya mfumo halisi
- Makosa ya kawaida
- Mazoezi ya LIMIT
Hapo tutaanza kujifunza jinsi ya kuonyesha idadi maalumu tu ya records badala ya kuonyesha kila kitu.
🚀 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.