Python에서 SQL 쿼리의 논리 연산
선택 조건에서 OR 및
AND 명령을 사용하여 더 복잡한
조합을 만들 수 있습니다. 이들은 Python의
if 구조에서의 해당 요소들과 동일하게 작동합니다.
예제를 통해 살펴보겠습니다.
예시
급여가 500이고
나이가 23세인 사용자를 선택합니다:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
실행된 코드의 결과:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
예시
급여가 500이거나
나이가 23세인 사용자를 선택합니다:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
실행된 코드의 결과:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
예시
급여가 450에서
900 사이인 사용자를 선택합니다:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
실행된 코드의 결과:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
예시
나이가 23세에서
27세 이하(포함)인 사용자를 선택합니다:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
실행된 코드의 결과:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
예시
OR 및 AND 명령의 복잡한 조합은
조건의 우선순위를 나타내기 위해 괄호를 사용하여 그룹화할 수 있습니다:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
실행된 코드의 결과:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
실습 문제
나이가 25세 초과부터
28세 이하까지인 사용자를 선택하세요.
user1 사용자를 선택하세요.
user1 및 user2 사용자를 선택하세요.
user3 사용자를 제외한 모든 사용자를 선택하세요.
나이가 27세이거나 급여가 1000인 모든 사용자를 선택하세요.
나이가 27세이거나 급여가 400이 아닌 모든 사용자를 선택하세요.
나이가 23세 이상부터 27세 미만이거나 급여가 1000인 모든 사용자를 선택하세요.
나이가 23세부터 27세까지이거나 급여가 400에서 1000 사이인 모든 사용자를 선택하세요.