슴슴한 IT

[SQLD, SQLP]SQL기본 - 논리/부정연산자 본문

SQL

[SQLD, SQLP]SQL기본 - 논리/부정연산자

요한바울 2023. 8. 7. 20:54
728x90

논리연산자란?

Where 절이나 Having절에서 복잡한 조건식을 논리적으로 연결하여 원하는 데이터를 추출

  1. AND 연산자:
    • 두 조건이 모두 참인지 확인합니다. 두 조건 중 하나라도 거짓이면 전체 조건은 거짓이 됩니다.
      예: condition1 AND condition2
  2. OR 연산자:
    • 두 조건 중 하나 이상이 참인지 확인합니다. 두 조건이 모두 거짓이면 전체 조건은 거짓이 됩니다.
      예: condition1 OR condition2
  3. NOT 연산자:
    • 조건의 부정을 나타냅니다. 참인 조건은 거짓으로, 거짓인 조건은 참으로 바꿉니다.
      예: NOT condition

논리연산자 우선 순위 

( ) => 'NOT' => 'AND' => 'OR'


논리 연산자 사용 예시

Student 테이블

student_id student_name math_score english_score
101 John 85 75
102 Alice 90 85
103 Michael 78 65
104 Emily 70 80
105 David 95 72

▶수학점수가 80점 이상이고, 영어점수가 70점 이상인 학생들의 정보를 조회할 경우, 

SELECT student_id, student_name, math_score, english_score
FROM students
WHERE math_score >= 80 AND english_score >= 70;

수학점수와 영어점수를 AND연산자로 연결했으며, 수학점수가 80점 이상인 학생은 John, Alice, David이고, 세 명 모두 영어점수가 70점 이상이므로 John, Alice, David가 조회

--결과
student_id | student_name | math_score | english_score
------------ ------------------------------------------
101        | John         | 85         | 75
102        | Alice        | 90         | 85
105        | David        | 95         | 72

▶수학점수가 90점 이상이거나, 영어점수가 80점 이상인 학생들의 정보를 조회할 경우, 

SELECT student_id, student_name, math_score, english_score
FROM students
WHERE math_score >= 90 OR english_score >= 80;

OR연산자이며, 수학점수가 90점 이상인 학생과 영어점수가 80점 이상인 학생들의 합집합과 동일

수학점수가 90점 이상인 학생은 Alice, David이고, 영어점수가 80점 이상인 학생들은 Alice, Emily이므로, 

쿼리 결과는 Alice, David, Emily가 조회 

--결과
student_id | student_name | math_score | english_score
------------ ------------------------------------------
102        | Alice        | 90         | 85
104        | Emily        | 70         | 80
105        | David        | 95         | 72

▶수학점수가 80점 이상 90점 이하가 아니고, 영어점수가 70점 이상인 학생들의 정보를 조회할 경우, 

SELECT student_id, student_name, math_score, english_score
FROM students
WHERE NOT math_score >= 80 AND math_score <= 90 
  AND english_score >= 70;

BETWEEN에 NOT연산자가 연결되어 수학점수가 80~90점 구간 사이를 벗어난 학생은 Emily, Michael, David이며, 이 중에서  영어점수가 70점 이상인 학생은 Emily, David가 조회

--결과
student_id | student_name | math_score | english_score
------------ ------------------------------------------
104        | Emily        | 70         | 80
105        | David        | 95         | 72

 


"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."

728x90