본문 바로가기
[IT 서비스기획 공부]

기획자의 SQL 맛보기 (3) WHERE & SQL 연산자

by 수제팥앙금 2024. 1. 23.

안녕하세요, 오늘도 기획자 팥씨입니다. 🥮

데이터 리터러시를 기르기 위한 노력은 계속되고 있습니닷,,

 


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을 검색하세요.

     

    더보기
    문자열은 대소문자 구분해야 함