SQL / 01 / 기초-3

DOMADO·2024년 6월 5일

SQL

목록 보기
3/12
post-thumbnail

WHERE : (조건), ~만

  • 방대한 데이터에서 필요한 정보'만' 추출해서 가져오기

✅ 비교연산자 ( =, >, >=)

SELECT 이름, 나이
FROM 직원
WHERE 성별 = '남' ;

SELECT 이름, 나이
FROM 직원
WHERE 연봉 > 8000 ;

👉 WHERE을 통해서, 특정 값의 부분을 추출할 수 있다.


✅ 논리연산자 (AND, OR)

SELECT *
FROM 직원
WHERE 성별= ‘남’
AND 나이>= 28 ;
👉 AND를 통해서, 추가적인 추출의 조건도 넣을 수 있다.

SELECT *
FROM 직원
WHERE 부서ID = ‘D002’
OR 부서ID = ‘D004’ ;
👉 OR를 통해서, 추가적인 추출의 조건도 넣을 수 있다.

[ ❗ ] AND를 여러번, OR을 여러번, 둘을 섞어서 쓰는 것도 가능 !
👉 기본) AND 연산자 다음, OR 연산자 실행 !
👉 괄호를 넣어서 우선 순위를 지정해도


✅ 데이터베이스에서 =(등호)는 1:1 대응만 가능 !

WHERE 이름 = '김민지' ; ⭕
WHERE 이름 = '김민지', '김철수' ; ❌

그럼 어떻게 표현하나요 ? 👉 ⭐ IN 연산자

  • =(등호) 의 복수버전

WHERE 이름 IN ('김민지', '김철수') ; ⭕
[이름에 김민지,김철수가 들어가는 거 추출하겠다]

NOT IN 연산자 : 특정 조건을 제외한 모든걸 추출

WHERE 이름 NOT IN('김민지','김철수') ;
[이름에 김민지,김철수 제외하고 모두 추출하겠다]


✅ 데이터베이스에서 비교연산자는 1개만 가능 !

SELECT *
FROM 직원
WHERE 2800 =< 연봉=< 3400 ❌❌❌

그럼 어떻게 표현하나요 ? 👉 대상 BETWEEN A AND B

  • 대상을 기준으로, A이상 B이하 추출
  • 문자열의 형태도 가능 (사전순으로 추출)
  • A < B 여야지, 실행가능

SELECT *
FROM 직원
WHERE 연봉 BETWEEN 3000 AND 5000


✅ 매칭연산자 👉 LIKE

SELECT 이름, 나이
FROM 직원
WHERE 이름 LIKE '%김%'
👉 직원 테블릿에서, 이름에 '김'이 포함 된 모든 정보 추출


SELECT 이름, 나이
FROM 직원
WHERE 이름 LIKE '김%' ;
👉 직원 테블릿에서, 이름이 김- 으로 시작하는 이름,나이 추출


SELECT 이름, 나이
FROM 직원
WHERE 이름 LIKE '%김' ;
👉 직원 테블릿에서, 이름이 -김 으로 끝나는 이름,나이 추출


SELECT *
FROM 부서
WHERE 부서명 LIKE '__부' ;
👉 부서 테블릿에서, 부서명이 ○○부로 끝나는 모든 정보 추출

SELECT *
FROM 직원
WHERE 입사일시 LIKE '__/11/__' ;


[ ❗❗ ] WHERE(조건)은 집계함수 사용이 불가하다 !

  • 집계함수 : COUNT() , AVG() , SUM() , MAX() , MIN()
profile
▪️ 검정 테마를 기준으로 작성되었읍니다.

0개의 댓글