지난시간
우리가 WHERE절에서 비교연산자 그리고 비교연산자를 이어주는
논리연산자를 사용해서 검색을 하는 방법에 대해서 한번 배워보았다.
이번에는 LIKE라는 것을 사용해서 문자열의 패턴을 찾는 일을 한번 해보겠다.
SELECT *
FROM Customers
WHERE country LIKE 'Br%'
퍼센트(%) 기호는
'BR 앞or뒤에 숫자든 문자든 어떤 것이 들어가도 상관 없다' 는 의미.
-brazil 국적을 갖은 손님들이 나왔다.
나는 앞에 무슨 숫자가 들어가 있어도 상관없고 어쨋든 'r'이라는 문자가 들어있는 그런 Country 네임을 찾아 보고 싶다.
SELECT *
FROM Customers
WHERE country LIKE '%r%'
r 이 들어간 모든 국적들을 갖은 손님들을 찾아준다.
비교연산자에서 조금 확장해서, IN하고 BETWEEN 같은 것도 배워보자
프랑스 또는 독일 국적을 갖은 손님을 보고싶다.
SELECT *
FROM Customers
WHERE country IN ('Germany', 'France')
는 or(밑)를 사용한 것과 같은 결과를 갖고 온다.
SELECT *
FROM Customers
WHERE country = 'Germany' or 'France'
--WHERE country IN ('Germany', 'France')
하지만 단 두국가가 아니라 만약 여러국가의 손님을 찾는다고 생각하면
IN을 사용하는 것이 훨씬 간단하다.
SELECT *
FROM Customers
WHERE country IN ('Germany', 'France', 'Korea')
SELECT *
FROM Customers
WHERE CustomerID Between 3 AND 5
같은 의미로
SELECT *
FROM Customers
WHERE CustomerID >= 3 AND customerID <=5
--WHERE CustomerID Between 3 AND 5
로 쓸 수 있지만 쓰기가 훨씬 번거롭다
SELECT *
FROM Customers
WHERE CustomerID IS NULL
IS NULL
-의미: 숫자도 아니고 문자도 아니고 아무것도 아니다.
-예를 들면 누군가 기온을 관측한다고 했을 때 어떤 사람이 기온을 0이라고 넣었다면 기온을 관측하고 지금의 온도가 0이구나 하고 기록을 한 것.
그런데 누군가가 null 이라고 넣었다면, 그 사람이 깜빡 졸았거나 사정에 의해서 기온을 관측 자체를 못한 것.