MySQL 데이터 필터링 및 정렬

MySQLBeginner
지금 연습하기

소개

이 랩에서는 MySQL 에서 데이터를 필터링하고 정렬하는 데 필요한 기술을 살펴봅니다. WHERE 절을 사용하여 특정 조건에 따라 데이터를 필터링하고, ORDER BY 를 사용하여 결과를 정렬하며, LIMIT 절을 사용하여 출력을 제한하는 방법을 배우게 됩니다. 이러한 기술은 모든 데이터베이스 사용자에게 기본이며, 원하는 순서대로 정확히 필요한 데이터를 검색할 수 있게 해줍니다. 실습을 통해 이러한 중요한 데이터베이스 작업에 대한 실질적인 경험을 얻고 MySQL 에서 데이터를 효과적으로 쿼리하고 구성하는 방법을 이해하게 될 것입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 초급 레벨의 실험이며 완료율은 97%입니다.학습자들로부터 99%의 긍정적인 리뷰율을 받았습니다.

WHERE 절을 사용한 기본 데이터 필터링

이 단계에서는 WHERE 절을 사용하여 특정 조건에 따라 데이터를 필터링하는 방법을 배우겠습니다. WHERE 절은 SQL 에서 가장 중요한 기능 중 하나로, 여러분의 기준을 충족하는 데이터만 검색할 수 있게 해줍니다.

먼저, MySQL 에 연결하고 데이터베이스를 선택해 보겠습니다.

sudo mysql -u root

연결 후:

USE bookstore;

간단한 비교 연산

기본 비교 연산자부터 시작해 보겠습니다.

-- 가격이 40 달러 이상인 책
SELECT title, price
FROM books
WHERE price > 40;

다음과 같은 출력을 볼 수 있습니다.

+-------------------------+-------+
| title                   | price |
+-------------------------+-------+
| The MySQL Guide         | 45.99 |
| Advanced Database Concepts | 54.99 |
| Database Administration | 49.99 |
| The Perfect Index       | 42.99 |
+-------------------------+-------+

일반적인 비교 연산자는 다음과 같습니다.

  • = (같음)
  • <> 또는 != (같지 않음)
  • > (보다 큼)
  • < (보다 작음)
  • >= (보다 크거나 같음)
  • <= (보다 작거나 같음)

특정 연도에 출판된 책을 찾는 다른 예제를 시도해 보겠습니다.

SELECT title, author, publication_year
FROM books
WHERE publication_year = 2023;

AND 와 OR 사용

AND 와 OR 을 사용하여 여러 조건을 결합할 수 있습니다.

-- 2023 년에 출판된 기술 서적
SELECT title, genre, publication_year, price
FROM books
WHERE genre = 'Technical'
AND publication_year = 2023;

OR 을 사용하여 아주 새롭거나 매우 비싼 책을 찾아보겠습니다.

SELECT title, publication_year, price
FROM books
WHERE publication_year = 2023
OR price >= 50;

NULL 및 부울 값 작업

재고가 없는 책을 찾으려면:

SELECT title, price, in_stock
FROM books
WHERE in_stock = FALSE;

LIKE 를 사용한 패턴 매칭

이 단계에서는 텍스트 데이터에서 패턴을 검색할 수 있게 해주는 LIKE 연산자를 사용하여 패턴 매칭을 살펴보겠습니다. 이는 정확히 찾고 있는 텍스트를 모르는 경우에 특히 유용합니다.

LIKE 연산자는 두 개의 특수 문자를 사용합니다.

  • %는 0 개 이상의 문자를 나타냅니다.
  • _는 정확히 하나의 문자를 나타냅니다.

몇 가지 예제를 시도해 보겠습니다.

-- 제목에 "SQL"이 포함된 책 찾기
SELECT title, author
FROM books
WHERE title LIKE '%SQL%';

이 쿼리는 제목에 "SQL"이 포함된 모든 책을 찾습니다. 다음과 같은 출력을 볼 수 있습니다.

+------------------+----------------+
| title            | author         |
+------------------+----------------+
| SQL for Beginners| Sarah Johnson  |
| SQL Mystery Tales| Jennifer White |
+------------------+----------------+

패턴 매칭을 더 시도해 보겠습니다.

-- "The"로 시작하는 책 찾기
SELECT title, author
FROM books
WHERE title LIKE 'The%';
-- 제목에 "Database"가 포함된 책 찾기
SELECT title, author, price
FROM books
WHERE title LIKE '%Database%';

MySQL 에서는 기본적으로 LIKE 가 대소문자를 구분하지 않습니다. 대소문자를 구분하는 매칭이 필요한 경우 BINARY 를 사용할 수 있습니다.

-- 대소문자 구분 검색
SELECT title, author
FROM books
WHERE title LIKE BINARY 'The%';

ORDER BY 를 사용한 결과 정렬

이 단계에서는 ORDER BY 절을 사용하여 쿼리 결과를 정렬하는 방법을 배우겠습니다. 이를 통해 데이터를 오름차순 (ASC) 또는 내림차순 (DESC) 으로 의미 있는 순서로 정렬할 수 있습니다.

단일 열 정렬

가격을 기준으로 기본 정렬부터 시작해 보겠습니다.

-- 가격순으로 책 정렬 (기본적으로 오름차순)
SELECT title, price
FROM books
ORDER BY price;

가장 저렴한 책부터 가장 비싼 책 순으로 나열된 것을 볼 수 있습니다. 순서를 반대로 하려면:

-- 가격순으로 책을 내림차순으로 정렬
SELECT title, price
FROM books
ORDER BY price DESC;

출력 결과는 가장 비싼 책부터 먼저 표시됩니다.

+---------------------------+-------+
| title                     | price |
+---------------------------+-------+
| Advanced Database Concepts| 54.99 |
| Database Administration   | 49.99 |
| The MySQL Guide           | 45.99 |
| The Perfect Index         | 42.99 |
...
+---------------------------+-------+

다중 열 정렬

첫 번째 정렬 열에 중복된 값이 있는 경우 유용한 여러 열을 기준으로 정렬할 수 있습니다.

-- 장르별로 정렬한 다음 각 장르 내에서 가격순으로 정렬
SELECT title, genre, price
FROM books
ORDER BY genre, price DESC;

오름차순과 내림차순 정렬을 혼합할 수 있습니다.

-- 장르 (오름차순) 및 가격 (내림차순) 별로 정렬
SELECT title, genre, price
FROM books
ORDER BY genre ASC, price DESC;

LIMIT 를 사용한 결과 제한

이 단계에서는 쿼리에서 반환되는 행 수를 제한하기 위해 LIMIT 절을 사용하는 방법을 배우겠습니다. 이는 대규모 데이터 세트로 작업하거나 몇 가지 예제만 볼 필요가 있을 때 특히 유용합니다.

기본 LIMIT 사용법

가장 비싼 책 3 권을 보려면:

SELECT title, price
FROM books
ORDER BY price DESC
LIMIT 3;

세 개의 행만 표시됩니다.

+---------------------------+-------+
| title                     | price |
+---------------------------+-------+
| Advanced Database Concepts| 54.99 |
| Database Administration   | 49.99 |
| The MySQL Guide           | 45.99 |
+---------------------------+-------+

Offset 과 함께 LIMIT 사용

LIMIT 는 두 개의 숫자를 사용할 수 있습니다. offset(건너뛸 행 수) 과 count(반환할 행 수) 입니다.

-- 처음 3 개의 책을 건너뛰고 다음 3 개를 표시
SELECT title, price
FROM books
ORDER BY price DESC
LIMIT 3, 3;

이것은 4 번째, 5 번째, 6 번째로 비싼 책을 표시합니다.

일반적인 사용 사례는 페이지 매김입니다. 예를 들어, 페이지당 5 개의 항목으로 "페이지 2"를 표시하려면:

SELECT title, author, price
FROM books
ORDER BY title
LIMIT 5, 5;

이것은 처음 5 개의 결과 (페이지 1) 를 건너뛰고 다음 5 개 (페이지 2) 를 표시합니다.

모든 것 결합

더 복잡한 쿼리를 만들기 위해 지금까지 배운 모든 것을 결합해 보겠습니다.

SELECT title, author, price
FROM books
WHERE genre = 'Technical'
AND price > 30
ORDER BY price DESC
LIMIT 3;

이 쿼리는 다음을 수행합니다.

  1. 30 달러가 넘는 기술 서적을 필터링합니다.
  2. 가격순으로 내림차순으로 정렬합니다.
  3. 상위 3 개의 결과만 표시합니다.

요약

이 랩에서는 MySQL 에서 데이터를 필터링하고 정렬하기 위한 필수 기술을 다루었습니다.

  1. 비교 연산자 및 논리 연산자와 함께 WHERE 절을 사용하여 데이터 필터링
  2. 텍스트 검색을 위한 LIKE 연산자를 사용한 패턴 일치
  3. 단일 및 다중 열을 사용하여 ORDER BY 로 결과 정렬
  4. LIMIT 및 OFFSET 을 사용하여 결과 집합 제한

이러한 기술은 MySQL 에서 효과적인 데이터 검색 및 구성을 위한 기반을 형성합니다.