Python-да SQL сұранысы арқылы жазбаларды сұрыптау

Нәтиже жолдарын сұрыптау үшін, ORDER BY командасын қолдану керек.

Мысал

Біздің users кестесінен барлық пайдаланушыларды таңдап, оларды жасы бойынша кішіден үлкенге қарай сұрыптайық:

pythonquery = "SELECT * FROM users ORDER BY age"

Орындалған кодтың нәтижесі:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Мысал

DESC командасы көмегімен сұрыптау тәртібін өзгертейік:

pythonquery = "SELECT * FROM users ORDER BY age DESC"

Орындалған кодтың нәтижесі:

python{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Мысал

Жалақысы 500 бар барлық пайдаланушыларды таңдап, оларды жасы бойынша кішіден үлкенге қарай сұрыптайық:

pythonquery = "SELECT * FROM users WHERE salary=500 ORDER BY age"

Орындалған кодтың нәтижесі:

python{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}

Мысал

Бір емес, бірнеше өріс бойынша сұрыптауға болады. Мысал ретінде барлық пайдаланушыларды таңдап, алдымен оларды жасы бойынша өсу ретімен, ал бірдей жастағы пайдаланушыларды жалақысы бойынша өсу ретімен сұрыптайық:

pythonquery = "SELECT * FROM users ORDER BY age, salary"

Орындалған кодтың нәтижесі:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}

Мысал

ORDER BY командасын LIMIT-пен біріктіруге болады. Бұл ретте алдымен сұрыптау командасын, содан кейін - лимитті жазу керек. Келесі мысалда алдымен жазбаларды жасы бойынша өсу ретімен сұрыптаймыз, содан кейін алғашқы 3 жазбаны аламыз:

pythonquery = "SELECT * FROM users ORDER BY age LIMIT 3"

Орындалған кодтың нәтижесі:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}

Практикалық тапсырмалар

Задание 1

Барлық пайдаланушыларды алып, оларды жалақысы бойынша өсу ретімен сұрыптаңыз.

Задание 2

Барлық пайдаланушыларды алып, оларды жалақысы бойынша кему ретімен сұрыптаңыз.

Задание 3

Барлық пайдаланушыларды алып, оларды аты бойынша сұрыптаңыз.

Задание 4

Жалақысы 500 бар пайдаланушыларды алып, оларды жасы бойынша сұрыптаңыз.

Задание 5

Барлық пайдаланушыларды алып, оларды аты және жалақысы бойынша сұрыптаңыз.

Задание 6

Пайдаланушыларды жалақысы бойынша өсу ретімен сұрыптап, сұрыптау нәтижесінен алғашқы 3 жұмысшыны алыңыз.

Задание 7

Пайдаланушыларды жалақысы бойынша кему ретімен сұрыптап, сұрыптау нәтижесінен алғашқы 3 пайдаланушыны алыңыз.