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명의 사용자를 가져오세요.