안녕하세요, 오늘도 기획자 팥씨입니다. 🥮
데이터 리터러시를 기르기 위한 노력은 계속되고 있습니닷,,
SQL 맛보기 3탄은, WHERE 과 SQL 연산자입니다.!!
오늘도 화이팅!
목차
1. Where
'테이블에 필터를 걸어서 축소시킨다'
- 테이블에 조건을 적용하기 위한 방법
- 엑셀의 '필터'라고 생각하면 됨!
- 조건에 맞는 결과만 테이블에 적용되며, 조건이 적용된 테이블에서 SELECT 함
- 'FROM 테이블명' 다음에 WHERE 구문을 작성해야 함.
- 연산자(비교/SQL/논리 연산자) 등으로 조건문을 작성할 수 있음.
1-1. 데이터 조회 순서
예시) Select * from T1 where A = '조건1'
SELECT A,B,C,D,EFROM 테이블1WHERE A='조건1'
일 때 데이터 조회 순서는 다음과 같다.
1) FROM 구 - "어느 테이블로부터 가지고 와?"
2) WHERE구 - "테이블에서 어떤 기준으로 필터를 걸지?"
3) SELECT구 - "어떤 컬럼을 검색하지?"
2. 필터를 걸기 위한 방법? 연산자!
2-1. SQL 연산자
| 비교연산자와 논리연산자를 합쳐서 사용할 수 있다고 생각하면 됨.
1) BETWEEN A AND B = A이상 B이하인 경우에
2) IN (리스트) = 리스트 중 어느 값이라도 일치하는 경우
3) LIKE 비교문자 = 비교문자와 닮은 / 비슷한 경우에
4) IS (NOT) NULL = null 인 (아닌) 경우에
2-2. 비교연산자
= 같다
!= 같지않다
>, >=
<, <=
2-3. 논리연산자
AND 앞뒤조건 동시에 참인 경우에
OR 앞/뒤 중 한 쪽이 참인 경우에
NOT 뒤의 조건과 반대인 경우에
2-4. 연산자의 우선순위?
괄호 안 --> 부정연산자 --> 비교 연산자 --> SQL 연산자
3. SQL 연산자 자세히 알아보기
3-1. SQL 연산자
(1) '컬럼명' BETWEEN (A) AND (B) : A이상 B이하인 경우
SELECT * FROM hotel WHERE hotel_idx BETWEEN 3000 AND 4000
(2) '컬럼명' IN (리스트) = or을 연결 !
: 하나의 컬럼에서 조회 조건이 '다수'일 때 사용
: 하나의 컬럼 안에서 다수의 =조건 (등호조건)을 'OR'로 연결하여 사용하는 것과 같음
SELECT * FROM hotel WHERE hotel_idx IN ('12535', '4000', '3000')
(3) '컬럼명' LIKE '비교문자'
1. 조건 값을 정확하게 사용할 수 없는 경우
2. LIKE = '~같은'으로 해석
3. LIKE는 %, _ 기호 연산자(Wild card)와 함께 사용. *%는 모든 문자, _는 한글자 의미.
--> LIKE '%마케팅' / '마케팅%' / '%마케팅%' / '___마케팅'(앞에 3글자) 등으로 활용
SELECT * FROM hotel WHERE grade LIKE '%1' = hotel 테이블에서 grade 컬럼에서 '~1'로 끝나는 모든 컬럼을 가지고 와.
(4) '컬럼명' IS NULL
1. 컬럼에 데이터가 없는 경우에 (공백인 경우)
2. NULL 의미와 0은 다름. 0은 데이터가 '있는' 것임
3. '=NULL' 이라고 표기하지 않음 . 비교 연산자로 비교 불가능
SELECT * FROM hotel WHERE hotel_idx is null
4-1. 연습하기 | 예제3
3. CO.ORDERS_ITEMS 테이블에서 UNIT_PRICE가 30이상 40 이하인 ORDER_ID와 UNIT_PRICE를 검색하세요.
** SQL 연산자와 비교, 논리 연산자 두가지 방식을 모두 활용하여 중얼거리며 연습해보기 !
** 주석을 하고 싶을 시 앞에 -- 두개 붙이면 됨.
4-2. 연습하기 | 예제 4
4. CO.ORDER_ITEMS 테이블에서 ORDER_ID가 658이거나 661인 경우를 검색하세요.
**TIP) 감이 안잡힐때는, 일단 모든 컬럼을 불러와 테이블이 어떻게 생겼나 둘러본다 !
** IN의 괄호 안이 숫자일 때는 따옴표 이용하지 않는다.


4-3. 연습하기 | 예제5
5. CO.PRODUCTS 테이블에서 PRODUCT_NAME에 Blue 가 포함되어 있는 PRODUCT_ID와 PRODUCT_NAME을 검색하세요.

'[IT 서비스기획 공부]' 카테고리의 다른 글
기획자의 SQL 맛보기(5) HAVING, ORDER BY (1) | 2024.01.23 |
---|---|
기획자의 SQL 맛보기(4) GROUP BY (1) | 2024.01.23 |
기획자의 SQL 맛보기 (2) SELECT, FROM 구문 (1) | 2024.01.14 |
기획자의 SQL 맛보기 (1) SQL 배워야하는 이유, 구문 살펴보기 (0) | 2024.01.13 |
[새싹X러닝스푼즈] 데이터 분석을 위한 PO의 역할 (2) (2) | 2024.01.09 |