일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- CASE중첩
- 단일 행 서브 쿼리
- Atomic Habit
- sql
- SQL Grouping Functions
- null
- Group Functions
- SQL문자형함수
- 다중 열 서브 쿼리
- Window Functions
- Simple Case Expression
- Britcent 3개월 완독 챌린지
- sqlp
- SUM
- SQL내장함수
- Where
- AVG
- 3개월 완독 챌린지
- sql전문가
- SQLD
- SQL기본
- 연관 서브 쿼리
- SQL개발자
- Cloud ERP
- Searched Case Expression
- nvl
- SQL숫자형 함수
- SQL연산자
- Aggregation Function
- 데이터모델링
Archives
- Today
- Total
슴슴한 IT
[SQLD, SQLP]SQL기본 - 논리/부정연산자 본문
728x90
논리연산자란?
Where 절이나 Having절에서 복잡한 조건식을 논리적으로 연결하여 원하는 데이터를 추출
- AND 연산자:
- 두 조건이 모두 참인지 확인합니다. 두 조건 중 하나라도 거짓이면 전체 조건은 거짓이 됩니다.
예: condition1 AND condition2
- 두 조건이 모두 참인지 확인합니다. 두 조건 중 하나라도 거짓이면 전체 조건은 거짓이 됩니다.
- OR 연산자:
- 두 조건 중 하나 이상이 참인지 확인합니다. 두 조건이 모두 거짓이면 전체 조건은 거짓이 됩니다.
예: condition1 OR condition2
- 두 조건 중 하나 이상이 참인지 확인합니다. 두 조건이 모두 거짓이면 전체 조건은 거짓이 됩니다.
- 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
'SQL' 카테고리의 다른 글
[SQLD, SQLP]SQL기본 - 집계함수와 NULL 처리 (0) | 2023.08.10 |
---|---|
[SQLD,SQLP]SQL기본 - GROUP BY, HAVING 절 (0) | 2023.08.08 |
[SQLD,SQLP]SQL기본 - SQL연산자 (0) | 2023.08.06 |
[SQLD,SQLP]SQL기본 - WHERE 비교연산자 (0) | 2023.08.04 |
[SQLD,SQLP]SQL기본 - WHERE 절 - 연산자 (0) | 2023.08.02 |