Database

[ MySQL ] MySQL 쿼리 기초: LIKE, WHERE, ORDER BY, COUNT, JOIN 사용법

busylee 2024. 11. 25. 13:23
728x90
반응형

MySQL은 데이터베이스에서 정보를 효율적으로 조회하고 관리할 수 있게 해주는 강력한 쿼리 언어입니다. 이 글에서는 MySQL에서 자주 사용되는 쿼리 문법 중 일부인 LIKE, WHERE, ORDER BY, COUNT, JOIN에 대해 다루고, 이를 어떻게 활용할 수 있는지 설명하겠습니다.

1. LIKE 사용법

LIKE는 문자열 검색을 위한 연산자로, 패턴 매칭을 사용하여 특정 패턴과 일치하는 데이터를 찾을 때 유용합니다. LIKE는 보통 WHERE 절과 함께 사용됩니다.

예시:

sql
SELECT * FROM users WHERE name LIKE 'J%';
# 위 쿼리는 users 테이블에서 이름이 'J'로 시작하는 모든 사용자 정보를 조회합니다. %는 와일드카드로, 0개 이상의 문자와 일치하는 것을 의미합니다.
  • '%test%': 문자열 내에 'test'가 포함된 모든 항목을 찾습니다.
  • 'test%': 'test'로 시작하는 항목을 찾습니다.
  • '%test': 'test'로 끝나는 항목을 찾습니다.

2. WHERE 사용법

WHERE 절은 조건을 지정하여 데이터를 필터링하는 데 사용됩니다. WHERE는 SELECT, UPDATE, DELETE 등 여러 SQL 문에서 사용될 수 있습니다.

예시:

sql
SELECT * FROM employees WHERE department = 'Sales' AND salary > 50000;
# 위 쿼리는 employees 테이블에서 부서가 'Sales'이고, 급여가 50,000 이상인 직원들의 정보를 조회합니다.
  • AND: 두 조건이 모두 참인 경우를 조회합니다.
  • OR: 두 조건 중 하나라도 참인 경우를 조회합니다.
  • BETWEEN: 범위 내의 값을 조회합니다. 예: salary BETWEEN 30000 AND 50000

3. ORDER BY 사용법

ORDER BY는 쿼리 결과를 정렬하는 데 사용됩니다. 기본적으로 오름차순(ASC)으로 정렬되며, 내림차순(DESC)으로 정렬하려면 DESC 키워드를 추가합니다.

예시:

sql
SELECT * FROM products ORDER BY price DESC;
# 위 쿼리는 products 테이블에서 상품 가격을 내림차순으로 정렬하여 조회합니다.
  • ASC: 오름차순 정렬 (기본값).
  • DESC: 내림차순 정렬.
  • 여러 컬럼으로 정렬할 수도 있습니다. 예:
     
sql
SELECT * FROM products ORDER BY category ASC, price DESC;

4. COUNT 사용법

COUNT는 테이블 내의 행 수를 계산하는 함수입니다. 조건에 맞는 데이터의 개수를 세는 데 사용됩니다.

예시:

sql
SELECT COUNT(*) FROM orders;
#위 쿼리는 orders 테이블의 전체 행 수를 반환합니다.
#특정 조건에 맞는 행의 개수를 세려면 WHERE 절과 함께 사용할 수 있습니다.
sql
SELECT COUNT(*) FROM orders WHERE status = 'Completed';
# 위 쿼리는 orders 테이블에서 status가 'Completed'인 주문의 개수를 세는 쿼리입니다.

5. JOIN 사용법

JOIN은 두 개 이상의 테이블을 연결하여 데이터를 조회할 때 사용됩니다. 여러 종류의 JOIN이 있으며, 그 중에서 가장 많이 사용되는 INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN에 대해 설명하겠습니다.

INNER JOIN

INNER JOIN은 두 테이블에서 조건에 맞는 행만 반환합니다. 양쪽 테이블 모두에 일치하는 데이터가 있어야 합니다.

예시:

sql
SELECT orders.order_id, customers.customer_name FROM orders INNER JOIN customers ON orders.customer_id = customers.customer_id;
# 위 쿼리는 orders 테이블과 customers 테이블을 customer_id를 기준으로 결합하여 주문 ID와 고객 이름을 조회합니다.

LEFT JOIN

LEFT JOIN은 왼쪽 테이블의 모든 행과, 오른쪽 테이블에서 일치하는 행을 반환합니다. 오른쪽 테이블에 일치하는 데이터가 없으면 NULL이 반환됩니다.

예시:

sql
SELECT employees.name, departments.department_name FROM employees LEFT JOIN departments ON employees.department_id = departments.department_id;
# 위 쿼리는 employees 테이블의 모든 직원과 그 직원이 속한 부서를 반환합니다. 부서 정보가 없는 직원도 포함됩니다.

RIGHT JOIN

RIGHT JOIN은 LEFT JOIN과 반대로, 오른쪽 테이블의 모든 행과, 왼쪽 테이블에서 일치하는 행을 반환합니다.

FULL JOIN

FULL JOIN은 양쪽 테이블에서 일치하는 행뿐만 아니라, 일치하지 않는 행도 모두 반환합니다. MySQL에서는 FULL JOIN을 지원하지 않지만, UNION을 사용하여 동일한 결과를 얻을 수 있습니다.

sql
SELECT * FROM table1 LEFT JOIN table2 ON table1.id = table2.id UNION SELECT * FROM table1 RIGHT JOIN table2 ON table1.id = table2.id;

결론

이 글에서는 MySQL에서 자주 사용되는 쿼리 기능인 LIKE, WHERE, ORDER BY, COUNT, JOIN에 대해 설명했습니다. 각각의 기능은 데이터를 더 효율적으로 조회하고, 관리하며, 다양한 조건에 맞는 데이터를 필터링하거나 정렬하는 데 유용합니다. MySQL의 이러한 기능들을 잘 활용하면 복잡한 데이터 분석과 관리 작업을 훨씬 쉽게 처리할 수 있습니다.

728x90
반응형