개발이야기/MySQL

[MySQL] SELECT 결과로 테이블 만들기 (CREATE TABLE AS SELECT)

후린개발자 2023. 7. 7.
반응형

MySQL에서 SELECT 문의 결과로 테이블을 생성하려면 CREATE TABLE AS SELECT 문을 사용할 수 있습니다. 아래는 예제 코드입니다.

 

test_info 테이블

 

CREATE TABLE test_info_new AS
SELECT *
FROM test_info
WHERE age >= 20;

 

위의 예제는 test_info 테이블에서 age가 20과 같거나 큰 데이터를 선택하여 test_info_new 테이블을 생성합니다.

test_info 테이블과 동일한 컬럼을 생성하며, 조건에 맞는 결과로 테이블이 생성됩니다.

 

테이블에 대한 인덱스 정보는 자동으로 생성할 수 없어서 직접 추가하여 생성해야 합니다.

 

-- 인덱스 생성
CREATE INDEX idx_id ON test_info_new (id);
CREATE INDEX idx_age ON test_info_new (age);

 

그 밖의 예제

1.컬럼 이름 변경

CREATE TABLE new_table AS
SELECT
    column1 AS new_column1,
    column2 AS new_column2,
    column3 AS new_column3
FROM
    original_table;

 

2. 컬럼 순서 변경

CREATE TABLE new_table AS
SELECT
    column2,
    column3,
    column1
FROM
    original_table;

 

3. 데이터 형식 변환

CREATE TABLE new_table AS
SELECT
    column1,
    CAST(column2 AS new_data_type) AS column2_new,
    column3
FROM
    original_table;

 

4. 데이터 계산 및 조작

CREATE TABLE new_table AS
SELECT
    column1,
    column2 + column3 AS sum_column,
    CONCAT(column1, ' - ', column3) AS concat_column
FROM
    original_table;

 

5. 데이터 필터링

CREATE TABLE new_table AS
SELECT
    column1,
    column2,
    column3
FROM
    original_table
WHERE
    column2 > 100;
반응형

댓글

💲 추천 글