✏️ SQLD

[SQLD] WHERE 절: 논리 연산자, 연산자 우선순위

haeriyouu 2025. 2. 28. 18:40

WHERE

: 원하는 열들을 검색, 필터링해서 출력

-- DEPTNO가 20인 직원 정보
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP WHERE DEPTNO=20;

-- DEPTNO가 20이 "아닌" 직원 정보
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP WHERE DEPTNO<>20;
-- <>의 대체: !=, ^=
-- 논리 연산자

-- 부서번호가 20"이거나" 30인 직원 정보
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP
WHERE DEPTNO=20 OR DEPTNO=30;

 

✒️ 연산자 우선순위

1️⃣ ()

2️⃣ 비교연산자 SQL 연산자

3️⃣ NOT

4️⃣ AND

5️⃣ OR

-- 부서번호가 20이거나 30이면서 SAL이 1100 이상인 직원 정보
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP
WHERE DEPTNO=20 OR DEPTNO=30 AND SAL>=1100;
-- AND로 인해 DEPTNO=30 AND SAL>=1100; 가 먼저 연산되어 SAL: 800이 포함되어 있다.

-- 원하는 대로 출력하려면
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP
WHERE (DEPTNO=20 OR DEPTNO=30) AND SAL>=1100;

-- 부서번호가 20이거나 30이면서 SAL이 1100 이상이고 2500이하인 직원 정보
SELECT EMPNO, ENAME, DEPTNO, SAL FROM EMP
WHERE (DEPTNO=20 OR DEPTNO=30) 
AND (SAL>=1100 AND SAL<=2500);

'✏️ SQLD' 카테고리의 다른 글

[SQLD] WHERE절과 HAVING절의 차이  (0) 2025.03.01
[SQLD] HAVING절  (0) 2025.03.01
[SQLD] GROUP BY절, 집계함수, 제약사항  (0) 2025.03.01
[SQLD] WHERE 절: IN, BETWEEN, LIKE, IS NULL  (0) 2025.03.01
[SQLD] 합성 연산자  (0) 2025.02.28