Python에서 SQL 쿼리를 통해 레코드 정렬하기
결과 행을 정렬하려면
ORDER
BY 명령어를 사용해야 합니다.
예제
users 테이블에서 모든
사용자를 선택하고 나이를 기준으로
오름차순으로 정렬해 봅시다:
query = "SELECT * FROM users ORDER BY age"
실행된 코드의 결과:
{'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 명령어를 사용하여
정렬 순서를 변경해 봅시다:
query = "SELECT * FROM users ORDER BY age DESC"
실행된 코드의 결과:
{'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인 모든 사용자를 선택하고
나이를 기준으로 오름차순으로 정렬해 봅시다:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
실행된 코드의 결과:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
예제
하나의 필드가 아닌 여러 필드로 정렬할 수 있습니다. 예를 들어, 모든 사용자를 선택하고 먼저 나이를 기준으로 오름차순으로 정렬한 다음, 같은 나이를 가진 사용자들은 급여를 기준으로 오름차순으로 정렬해 봅시다:
query = "SELECT * FROM users ORDER BY age, salary"
실행된 코드의 결과:
{'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개를 가져옵니다:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
실행된 코드의 결과:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
실습 과제
모든 사용자를 선택하고 급여를 기준으로 오름차순으로 정렬하세요.
모든 사용자를 선택하고 급여를 기준으로 내림차순으로 정렬하세요.
모든 사용자를 선택하고 이름을 기준으로 정렬하세요.
급여가 500인 사용자를 선택하고
나이를 기준으로 정렬하세요.
모든 사용자를 선택하고 이름과 급여를 기준으로 정렬하세요.
사용자를 급여 기준으로 오름차순 정렬하고
정렬 결과에서 처음 3명의 직원을
가져오세요.
사용자를 급여 기준으로 내림차순 정렬하고
정렬 결과에서 처음 3명의 사용자를
가져오세요.