Uko ndani ya app. Fungua kwenye browser kwa muonekano na downloads bora.
September 2, 2026 11 min read Database

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
NOT

kwa kuchanganya conditions nyingi ndani ya WHERE.

Sasa tutajifunza jinsi ya kupanga data tunayoipata kutoka kwenye database.

Command tutakayotumia ni:

ORDER BY

ORDER 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 BY ni nini
  • Kutumia ASC
  • Kutumia DESC
  • Kupanga text alphabetically
  • Kupanga numbers kutoka ndogo hadi kubwa
  • Kupanga numbers kutoka kubwa hadi ndogo
  • Kuchanganya WHERE na ORDER 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:

ASC

yaani ascending order.


2. ASC ni Nini?

ASC ni kifupi cha:

Ascending

Ina maana kupanga kutoka chini kwenda juu.

Kwa text inaweza kuwa:

A
B
C
D
...
Z

Kwa numbers:

1
2
3
4
5

Mfano:

SELECT *
FROM students
ORDER BY student_name ASC;

3. DESC ni Nini?

DESC ni kifupi cha:

Descending

Ina maana kupanga kutoka juu kwenda chini.

Kwa text:

Z
Y
X
...
A

Kwa numbers:

100
90
80
70

Mfano:

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 BY

6. 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 Michael

7. 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 Charles

8. 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    18

10. 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     15

11. 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     38

Hii 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     91

15. 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:

gender

Halafu records zenye gender sawa zitapangwa kwa:

student_name

19. Mfano wa Multiple Columns

Fikiria tuna:

Asha       Female
Neema      Female
Anna       Female
John       Male
Peter      Male

Query:

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     38

Hapa 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:

2

ina 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:

  1. Kupanga students kwa jina A–Z.
  2. Kupanga students kwa jina Z–A.
  3. Kupanga students kwa age ndogo hadi kubwa.
  4. Kupanga students kwa age kubwa hadi ndogo.
  5. Kuonyesha Female students na kuwapanga kwa age DESC.
  6. Kupanga students kwa class, kisha kwa name.
  7. Kuonyesha student_name na age pekee, zilizopangwa kwa age DESC.

54. Challenge ya Somo

Tumia table ya:

products

yenye:

product_id
product_name
category
price
quantity

Andika queries za:

  1. Kupanga products kwa price ndogo hadi kubwa.
  2. Kupanga products kwa price kubwa hadi ndogo.
  3. Kupanga products kwa quantity ndogo kwanza.
  4. Kuonyesha Electronics pekee na kuzipanga kwa price DESC.
  5. Kupanga kwa category ASC na price DESC.
  6. 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:

  1. ORDER BY inatumika kufanya nini?
  2. ASC ina maana gani?
  3. DESC ina maana gani?
  4. Default order ya ORDER BY ni ipi?
  5. Tunawezaje kupanga majina A–Z?
  6. Tunawezaje kupanga marks kubwa hadi ndogo?
  7. Tunawezaje kutumia WHERE na ORDER BY pamoja?
  8. Tunawezaje kupanga kwa columns mbili?
  9. Je bila ORDER BY tunapaswa kutegemea result kuwa na order fulani?
  10. Kuna tofauti gani kati ya DESC students; na ORDER BY score DESC?

56. Muhtasari wa Somo

Katika somo hili tumejifunza:

ORDER BY

ambayo 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.

Share this post

Comments

0
No comments yet. Be the first to comment.

Continue Reading

Subscribe

Get new updates

Jiunge upokee posts mpya, tutorials, na updates za mifumo moja kwa moja kwenye email yako.

Quick Actions