1. LIKE
SQL에서 LIKE 는 정확한 어떤 값에 해당하는 것이 아닌, 그와 유사한 값을 찾는 logical operator이다.
예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고
"group_name" 이라는 이름의 column이 있을 때
그 value가 'Snoop'으로 시작하는 rows를 불러오고 싶다고 하자.
( 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 를 이용해 볼 수 있다.
++
딱 하나의! 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를 불러오고 싶다고 하자.
# non-numerical values 에도 동일 적용된다.
그런데 이때는 ' ' 안에 꼭 넣어서 list화하자!!
3. BETWEEN
SQL에서 BETWEEN 은 특정 범위 안에 있는 행들을 불러올 수 있게 하는 logical operator이다.
AND operator와 함께 쓰인다.
예를 들어서 billboard_top_100_year_end 라는 이름의 table이 있고
"year_rank" 라는 이름의 column이 있을 때
그 value가 5 이상 10 이하의 rows를 불러오고 싶다고 하자.
날짜 type column에 대하여 조건을 줄 때 자주 사용된다고 한다.
예를 들어서 아래와 같이 timestamp라는 column의 value가 ' 년도 - 월 - 날짜 시간 ' 이런식으로 나와있다고 치자.
여기서 위와 같이 between, and 연산자를 이용하면 2012년 1월 5일부터 2012년 1월 9일까지 timestamp가 찍혀있는 모든 행을 불러올 수 있다.
2012년 1월 10일은 포함되지 않는다는 것에 주의 !!!!!
++
참고자료
https://mode.com/sql-tutorial/sql-like/
'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 |