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';
// 날짜에도 적용 가능