1. LIKE

 

SQL에서  LIKE  는 정확한 어떤 값에 해당하는 것이 아닌, 그와 유사한 값을 찾는 logical operator이다.

 

예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고

"group_name" 이라는 이름의 column이 있을 때

그 value가 'Snoop'으로 시작하는 rows를 불러오고 싶다고 하자. 

 

Snoop 어쩌구 저쩌구 인 행들을 다 불러올 수 있다.

 

( column 이름은 꼭 " " 안에 넣어주지 않아도 된다.  지정하는 value는 ' ' 안에 넣어준다. )

 

 

그런데 갑자기 % 는 무엇인가..!!

여기서 % 는 wildcard라고 불리는 것인데, any character and set of characters 를 대신한다. 

 

 + 그러니까 예를 들어 "group_name"이 문자 's'로 끝나는 행을 불러오고 싶다면 ??

    WHERE   group_name   LIKE    ' %s '

 

+ "group_name" 중간에 문자 'jade'가 들어가는 행을 불러오고 싶다면 ??

    WHERE   group_name   LIKE    ' %jade% '

 

LIKE 를 이용하면 upper case, lower case 정확히 구분해서 조건을 써줘야 한다. 

만약 대/소문자를 무시하고 싶다면  ILIKE  를 이용해 볼 수 있다. 

 

위와 같이 ILIKE를 이용한다면 Snoop ~ / sNoop ~ / snoop ~ / ... 등등 다 불러올 수 있다.

 

++

딱 하나의! character를 빈칸으로 두고 싶다면 ?

_ ( a single underscore)을 이용할 수 있다. 

 

 

++

만약 이 예약어를 escape하고 싶다면?

(MYSQL기준) \를 앞에 붙여주면 된다. (예를 들어 ㄹㅇ %를 찾고 싶을 때 : \%)


2. IN

 

SQL에서   IN  은 불러온 결과에 포함하고 싶은 특정 값들을 리스트화해서 그 앞에 쓰는 logical operator이다. 

 

예를 들어서

 

똑같이 billboard_top_100_year_end 라는 이름의 table에서

"year_rank" 라는 이름의 column이 있을 때

그 value가 1 또는 2 또는 3 중 하나에 해당하는 rows를 불러오고 싶다고 하자. 

 

year_rank 열에 해당하는 value가 1 또는 2 또는 3에 해당하는 열들만 불러온다.

 

# non-numerical values 에도 동일 적용된다. 

   그런데 이때는 ' ' 안에 꼭 넣어서 list화하자!!

 

artist 열에 해당하는 value가 Taylor Swift 또는 Usher 또는 Ludacris에 해당하는 열들만 불러온다.

 


3. BETWEEN

 

SQL에서   BETWEEN  은 특정 범위 안에 있는 행들을 불러올 수 있게 하는 logical operator이다.

 AND  operator와 함께 쓰인다.

 

예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고

"year_rank" 라는 이름의 column이 있을 때

그 value가 5 이상 10 이하의 rows를 불러오고 싶다고 하자. 

 

range 경계값을 포함하는 행까지 불러온다는 것을 꼭 기억하자 !

 

 

날짜 type column에 대하여 조건을 줄 때 자주 사용된다고 한다. 

예를 들어서 아래와 같이 timestamp라는 column의  value가  ' 년도 - 월 - 날짜 시간 ' 이런식으로 나와있다고 치자. 

 

 

여기서 위와 같이 between, and 연산자를 이용하면 2012년 1월 5일부터 2012년 1월 9일까지 timestamp가 찍혀있는 모든 행을 불러올 수 있다. 

 

2012년 1월 10일은 포함되지 않는다는 것에 주의 !!!!!

 

 

 


++

참고자료 

https://mode.com/sql-tutorial/sql-like/

https://mode.com/sql-tutorial/sql-in-operator/

https://mode.com/sql-tutorial/sql-between/

'Study > SQL' 카테고리의 다른 글

SQL : not, order by  (1) 2023.07.01
SQL : is null, and, or  (0) 2023.07.01
SQL : where, comparison operator, arithmetic in sql  (1) 2023.06.30
SQL : select, from, limit  (2) 2023.06.30
sql을 왜 배워야 할까?  (1) 2023.06.30