MySQL - 일시 테이블: 초보자 가이드

안녕하세요, 미래의 데이터 마법사 여러분! 오늘 우리는 MySQL 일시 테이블의 마법의 세계로 뛰어들어 보겠습니다. 프로그래밍에 처음이라면 걱정하지 마세요 - 이 여정에서 당신의 친절한 안내자로써 나는 모든 것을 단계별로 설명해 드릴 것입니다. 당신의 좋아하는 음료를 한 잔 마시고, 시작해 보세요!

MySQL - Temporary Tables

일시 테이블이란?

imaging you're planning a big party (누가 데이터베이스 파티를 좋아하지 않을까요?). 손님 명단을 적을 곳이 필요하지만, 영원히 보관하고 싶지 않습니다. MySQL의 일시 테이블은 바로 이런东西입니다 - 데이터의 단기 저장 공간입니다.

일시 테이블은 데이터베이스 세션 동안만 존재하는 특별한 테이블입니다. 데이터베이스 세계의 스티cky 노트 같은 것입니다 - 잠시 동안 유용하지만 영원히 남지 않습니다.

일시 테이블의 주요 특성:

  1. 세션结束时 자동으로 삭제됩니다.
  2. 생성한 연결에만 보입니다.
  3. 영구 테이블과 같은 이름을 가질 수 있어도 충돌이 발생하지 않습니다.

MySQL에서 일시 테이블 생성하기

이제 우리는 첫 번째 일시 테이블을 만들기 위해 손을 dirt 씁니다! 문법은 정규 테이블을 생성하는 데 매우 유사하지만, 하나의 마법의 단어가 있습니다: TEMPORARY.

기본 예제를 보겠습니다:

CREATE TEMPORARY TABLE party_guests (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
favorite_dish VARCHAR(50)
);

이를 분해해 보겠습니다:

  • CREATE TEMPORARY TABLE: MySQL에게 일시 테이블을 원한다고 알립니다.
  • party_guests: 우리가 테이블에 부여할 이름입니다.
  • id INT AUTO_INCREMENT PRIMARY KEY: 각 새로운 항목에 대해 자동으로 증가하는 ID 열을 생성합니다.
  • name VARCHAR(50): 손님 이름을 저장할 열입니다. 최대 50자까지 저장할 수 있습니다.
  • favorite_dish VARCHAR(50): 각 손님의 좋아하는 요리를 저장할 열입니다.

이제 테이블이 준비되었으니, 몇몇 손님을 추가해 보겠습니다:

INSERT INTO party_guests (name, favorite_dish) VALUES
('Alice', 'Spaghetti'),
('Bob', 'Pizza'),
('Charlie', 'Tacos');

손님 명단을 보기 위해 다음을 사용할 수 있습니다:

SELECT * FROM party_guests;

이를 통해 다음과 같은 내용을 볼 수 있습니다:

id name favorite_dish
1 Alice Spaghetti
2 Bob Pizza
3 Charlie Tacos

MySQL에서 일시 테이블 삭제하기

기억하세요, 일시 테이블은 세션结束时 사라집니다. 하지만 더早く 제거하고 싶다면? 그때 DROP TABLE 명령어가 유용하게 사용됩니다.

DROP TEMPORARY TABLE party_guests;

이 명령어를 실행하면, 일시 테이블이 마법사의 토끼처럼 사라집니다!

클라이언트 프로그램을 사용하여 일시 테이블 생성하기

이제 MySQL Workbench나 명령줄 클라이언트와 같은 클라이언트 프로그램을 사용하는 경우, 과정은 같지만 중요한 점이 하나 있습니다: 일시 테이블은 세션별로 고유합니다.

예를 들어, MySQL 명령줄 클라이언트를 사용하는 경우:

  1. MySQL 서버에 연결합니다:

    mysql -u username -p
  2. 일시 테이블을 생성합니다:

    CREATE TEMPORARY TABLE weather_report (
    date DATE,
    temperature INT,
    conditions VARCHAR(20)
    );
  3. 데이터를 추가합니다:

    INSERT INTO weather_report VALUES
    ('2023-06-01', 25, 'Sunny'),
    ('2023-06-02', 22, 'Cloudy'),
    ('2023-06-03', 20, 'Rainy');
  4. 테이블을 조회합니다:

    SELECT * FROM weather_report;

다음과 같은 내용을 볼 수 있습니다:

date temperature conditions
2023-06-01 25 Sunny
2023-06-02 22 Cloudy
2023-06-03 20 Rainy

기억하세요, 연결을 끊고 다시 연결하거나 새로운 세션을 열면 일시 테이블이 사라집니다. 마치 당신이 없을 때만 존재하는 비밀 클럽하ouse와 같습니다!

일시 테이블의 실용적인 용도

일시 테이블이 사라진다고 해서 무용할까요? 그렇지 않습니다! 일시 테이블은 많은 상황에서 매우 유용합니다:

  1. 복잡한 질의: 복잡한 질의를 작은, 관리 가능한 부분으로 나누어 질의할 때 유용합니다.
  2. 데이터 조작: 원본 테이블을 변경하지 않고 데이터의 일부에 대해 작업할 때 유용합니다.
  3. 성능 최적화: 큰 테이블을 반복적으로 질의하는 대신 필요한 데이터로 일시 테이블을 생성할 때 더 빠릅니다.

현실적인 예제를 들어보겠습니다. 예를 들어, 판매 데이터를 분석하고 각 월의 베스트 셀링 제품을 찾고 싶다면:

CREATE TEMPORARY TABLE monthly_sales AS
SELECT
MONTH(sale_date) AS month,
product_id,
SUM(quantity) AS total_quantity
FROM
sales
GROUP BY
MONTH(sale_date), product_id;

SELECT
month,
product_id,
total_quantity
FROM
monthly_sales ms1
WHERE
total_quantity = (
SELECT MAX(total_quantity)
FROM monthly_sales ms2
WHERE ms1.month = ms2.month
);

이 질의는 먼저 월별 판매 데이터를 저장하는 일시 테이블을 생성한 다음, 각 월의 베스트 셀링 제품을 찾습니다. 일시 테이블 없이는 이 질의가 훨씬 더 복잡할 것입니다!

결론

이제 여러분은 MySQL 일시 테이블의 세계로 첫 걸음을 냈습니다. 기억하세요, 이 테이블들은 마치 도움이 필요할 때만 나타나고 필요한 일을 하고 사라지는 작은 엘프들입니다.

MySQL 여정을 계속하면서 일시 테이블의 더 많은 용도를 발견할 것입니다. 그들은 데이터를 조작하고 분석하는 데 유연하고 효율적인 도구입니다.

계속 연습하고, 호기심을 유지하면, 곧 일시 테이블을 마스터하게 될 것입니다. 다음 번에 만날 때까지, 즐겁게 코딩하세요!

Credits: Image by storyset