SQL 문법3 WHERE절

DIORJJ·2024년 1월 2일

SQL

목록 보기
3/13
post-thumbnail

SQL 3DAY

WHERE

WHERE 사용 이유와 원리

비교 조건과 논리 조건

실습 문제

나의풀이

1).
SELECT 직원ID, 이름, 나이, 입사일시
FROM 직원
WHERE 연봉 > 9000;

2).
SELECT *
FROM 직원 
WHERE 이름 = '이현정';

3).
SELECT *
FROM 직원연락처
WHERE 연락처 = '010-1231-1234'; 

나의풀이

4).
SELECT 부서명
FROM 부서
WHERE 근무지 = '서울';

5).
SELECT 주소
FROM 직원주소
WHERE 직원ID = 'A0007';

논리조건 개념 정리(AND , OR)

실습 문제

나의풀이

1).
SELECT 연락처
FROM 직원연락처
WHERE 직원ID = 'A0001' AND 구분코드 = '집전화';

2).
SELECT *
-- FROM 부서 <- 이러면 에러뜸.
-- 직원의 모든 정보 출력 하라고 했으니 직원 테이블에서 뒤져야함.
FROM 직원
WHERE 부서ID = 'D003' AND 성별  = '' AND 나이 >= 30;

3).
SELECT *
FROM 직원
WHERE 직원ID = 'A0001' OR 직원ID = 'A0005' OR 직원ID = 'A0007';
--  =은  1:1  연산만 가능하다.

연산자 우선순위

예제코드

SELECT *
FROM 직원
WHERE (부서ID = 'D001' -- 소괄호 친부분이 먼저 실행됨.
OR 부서ID) = 'D002'
AND 이름 = '강홍수';

IN / BETWEEN / LIKE 조건 (SQL 연산자)

IN

예제코드

SELECT *
FROM 직원
WHERE 직원ID IN('A0001', 'A0005', 'A0007');

BETWEEN

예제코드

SELECT *
FROM 직원
WHERE 2800 <= 연봉 <= 3400;  -- 데이터 베이스는 3항연사자를 지원하지 않음.


SELECT *
FROM 직원
WHERE 연봉 BETWEEN 2800 AND 3400; -- 숫자 크기 순서데로

예제코드

SELECT *
FROM 직원
WHERE 이름 BETWEEN '문현철' AND '이현정'; --이대로 출력하면 국어사전 순서대로 출력됨.

LIKE : 매칭 연산자 , ~로 시작하는(끝나는) 단어를 탐색

LIKE 절에 _나 % 기호를 같이 쓸수 있다. 꼭 LIKE가 앞에 와야한다.

예제코드

SELECT *
FROM 직원
WHERE 이름 LIKE '김%'; -- '김'자로 문자열 그뒤에는 ANYTHING
WHERE 이름 LIKE '%수'; --  앞글자는 ANYTHING ,마지막 글자가'수'가 오는 거 찾는다.
WHERE 이름 LIKE '__오' -- _언더바 하나씩 글자수로 보자. 글자2개제낀후 마지막 글자가 '오' 인글자 찾아라.

실습문제

나의풀이

1).
SELECT 직원ID, 이름, 나이
FROM 직원
WHERE 이름 LIKE '%철%';

2).
SELECT 직원ID,연봉, 입사일시
FROM 직원
WHERE 연봉 BETWEEN 7000 AND 9000;

3).
SELECT *
FROM 직원주소
WHERE 주소 LIKE '동구%'; -- 첫글자가 '동구'로 시작하고 그뒤는 ANYTHING 찾아라.
--  _는 글자수를 뛰어넘음, 특정 문자열 검색할때는 (_)를 사용. 포함 단어를 검색할때는 %사용함.

4).보너스문제
SELECT *
FROM 직원
WHERE 입사일시 LIKE '___11%'; 
-- ___ 이니 글자 3개 제낀후 11로 시작하고 그뒤문자 ANYTHING 찾아라. 

0개의 댓글