MySQL/ LIKE, IN, BETWEEN


LIKE

  • where문 내에서 특정 패턴을 찾는 연산자로 사용

  • %는 0개 이상의 문자를 의미

  • _는 1개의 문자를 의미

SELECT column1, column2, ... FROM table_name WHERE columnN LIKE pattern; SELECT * FROM Customers WHERE CustomersName LIKE 'a%'; // a로 시작하는 문자열 SELECT * FROM Customers WHERE CustomerName LIKE '%a'; // a로 끝나는 문자열 SELECT * FROM Customers WHERE CustomerName LIKE '%or%'; // or를 포함하는 문자열 SELECT * FROM Customers WHERE CustomerName LIKE '_r%'; // 2번째 문자가 r인 문자열 SELECT * FROM Customers WHERE CustomerName LIKE 'a__%'; // a로 시작하고 길이가 3이상인 문자열 SELECT * FROM Customers WHERE CustomerName LIKE 'a%o'; // a로 시작하고 o로 끝나는 문자열 SELECT * FROM Customers WHERE CustomerName NOT LIKE 'a%'; // a로 시작하지 않는 문자열

AVG

  • 데이터의 평균 조회
SELECT AVG(column_name) FROM table_name WHERE condition; SELECT AVG(Price) FROM Products;

IN

  • where 문에서 여러 개의 값을 특정할 때 사용
SELECT column_names FROM table_name WHERE column_name IN (value1, value2, value3); SELECT column_names FROM table_name WHERE column_name IN ( SELECT STATEMENT ); SELECT * FROM Customers WHERE Country IN ('Germany', 'France', 'UK'); SELECT * FROM Customers WHERE Country NOT IN ('Germany', 'France', 'UK'); SELECT * FROM Customers WHERE Country IN ( SELECT Country FROM Suppliers );

BETWEEN

  • 범위 표현

  • 양 끝 값을 포함

SELECT column_names FROM table_name WHERE column_name BETWEEN value1 AND value2; SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; // Price가 10에서20 사이 SELECT * FROM Products WHERE Price NOT BETWEEN 10 AND 20; // 10 미만 20 초과 SELECT * FROM Products WHERE Price BETWEEN 10 AND 20 AND CategoryID NOT IN (1, 2, 3); // Price가 10에서 20 사이이고, CategoryID가 1, 2, 3이 아님 SELECT * FROM Products WHERE ProductName BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni' ORDER BY ProductName; /// 문자열에도 적용 가능 (사전순) SELECT * FROM Products WHERE ProductName NOT BETWEEN 'Carnarvon Tigers' AND 'Mozzarella di Giovanni' ORDER BY ProductName; SELECT * FROM Orders WHERE OrderDate BETWEEN '1996-07-01' AND '1996-07-31'; // 날짜에도 적용 가능