Database/SQL ๊ธฐ์ดˆ

SQL ๊ธฐ์ดˆ - SELECT INTO (ํ…Œ์ด๋ธ” ๋ณต์‚ฌ)

UNarD 2026. 4. 16. 16:25

๐Ÿ“‹ SELECT INTO - ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ

ํ…Œ์ด๋ธ” ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐฑ์—…ํ•˜๊ฑฐ๋‚˜ ํŠน์ • ์กฐ๊ฑด์œผ๋กœ ์ƒˆ ํ…Œ์ด๋ธ”์„ ๋งŒ๋“ค๊ณ  ์‹ถ์„ ๋•Œ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.
SELECT INTO๋ฅผ ์“ฐ๋ฉด ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ”๋กœ ์ƒˆ ํ…Œ์ด๋ธ”๋กœ ๋ณต์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿ˜Š

๐Ÿ“‹ ์˜ˆ์‹œ ํ…Œ์ด๋ธ” โ€” students

id name grade score teacher_id
1 ๊น€์ฒ ์ˆ˜ 1 85 1
2 ์ด์˜ํฌ 2 NULL 1
3 ๋ฐ•๋ฏผ์ค€ 1 90 2
4 ์ตœ์ง€์› 3 72 NULL
5 ์ •์ˆ˜ํ˜„ 2 NULL 2
6 ํ•œ์ง€๋ฏผ 1 78 1
7 ์œค์„œ์ค€ 3 95 2
8 ๊ฐ•๋‹ค์€ 2 88 1
9 ์ž„ํ˜„์šฐ 3 NULL 2
10 ์˜ค์ง€์•„ 1 65 NULL
CREATE DATABASE IF NOT EXISTS practice;
USE practice;

DROP TABLE IF EXISTS students;

CREATE TABLE students (
    id         INT,
    name       VARCHAR(10),
    grade      INT,
    score      INT,
    teacher_id INT
);

INSERT INTO students VALUES (1,  '๊น€์ฒ ์ˆ˜', 1, 85,   1);
INSERT INTO students VALUES (2,  '์ด์˜ํฌ', 2, NULL,  1);
INSERT INTO students VALUES (3,  '๋ฐ•๋ฏผ์ค€', 1, 90,   2);
INSERT INTO students VALUES (4,  '์ตœ์ง€์›', 3, 72,   NULL);
INSERT INTO students VALUES (5,  '์ •์ˆ˜ํ˜„', 2, NULL,  2);
INSERT INTO students VALUES (6,  'ํ•œ์ง€๋ฏผ', 1, 78,   1);
INSERT INTO students VALUES (7,  '์œค์„œ์ค€', 3, 95,   2);
INSERT INTO students VALUES (8,  '๊ฐ•๋‹ค์€', 2, 88,   1);
INSERT INTO students VALUES (9,  '์ž„ํ˜„์šฐ', 3, NULL,  2);
INSERT INTO students VALUES (10, '์˜ค์ง€์•„', 1, 65,   NULL);

โ€ผ๏ธ ์œ„ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค!


๐Ÿง  SELECT INTO๋ž€?

SELECT INTO๋Š” ์กฐํšŒ ๊ฒฐ๊ณผ๋ฅผ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ”๋กœ ๋ณต์‚ฌํ•˜๋Š” ๊ตฌ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ธฐ์กด ํ…Œ์ด๋ธ”์€ ๊ทธ๋Œ€๋กœ ์œ ์ง€๋˜๊ณ , ์กฐํšŒ ๊ฒฐ๊ณผ๊ฐ€ ์ƒˆ ํ…Œ์ด๋ธ”๋กœ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

๐ŸŽ€ ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

SELECT ์ปฌ๋Ÿผ
INTO ์ƒˆํ…Œ์ด๋ธ”๋ช…
FROM ๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…
WHERE ์กฐ๊ฑด;
โš ๏ธ MySQL์€ SELECT INTO๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค

SELECT INTO๋Š” SQL Server, Oracle, PostgreSQL์—์„œ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
MySQL์—์„œ๋Š” ์•„๋ž˜์ฒ˜๋Ÿผ CREATE TABLE ... SELECT๋กœ ๋™์ผํ•œ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

CREATE TABLE ์ƒˆํ…Œ์ด๋ธ”๋ช… SELECT * FROM ๊ธฐ์กดํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด;

๐Ÿ”น ํ…Œ์ด๋ธ” ์ „์ฒด ๋ณต์‚ฌ

students ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ students_backup์œผ๋กœ ๋ณต์‚ฌ
SELECT *
INTO students_backup
FROM students;
๐Ÿ“ฅ ๊ฒฐ๊ณผ - students_backup
id name grade score teacher_id
1 ๊น€์ฒ ์ˆ˜ 1 85 1
2 ์ด์˜ํฌ 2 NULL 1
3 ๋ฐ•๋ฏผ์ค€ 1 90 2
4 ์ตœ์ง€์› 3 72 NULL
5 ์ •์ˆ˜ํ˜„ 2 NULL 2
6 ํ•œ์ง€๋ฏผ 1 78 1
7 ์œค์„œ์ค€ 3 95 2
8 ๊ฐ•๋‹ค์€ 2 88 1
9 ์ž„ํ˜„์šฐ 3 NULL 2
10 ์˜ค์ง€์•„ 1 65 NULL

๐Ÿ”น ์กฐ๊ฑด๋ถ€ ๋ณต์‚ฌ

์ ์ˆ˜๊ฐ€ ์žˆ๋Š” ํ•™์ƒ๋งŒ ๋ณต์‚ฌ
SELECT *
INTO students_scored
FROM students
WHERE score IS NOT NULL;
๐Ÿ“ฅ ๊ฒฐ๊ณผ - students_scored
id name grade score teacher_id
1 ๊น€์ฒ ์ˆ˜ 1 85 1
3 ๋ฐ•๋ฏผ์ค€ 1 90 2
4 ์ตœ์ง€์› 3 72 NULL
6 ํ•œ์ง€๋ฏผ 1 78 1
7 ์œค์„œ์ค€ 3 95 2
8 ๊ฐ•๋‹ค์€ 2 88 1
10 ์˜ค์ง€์•„ 1 65 NULL

๐Ÿ”น ํŠน์ • ์ปฌ๋Ÿผ๋งŒ ๋ณต์‚ฌ

name, score ์ปฌ๋Ÿผ๋งŒ ๋ณต์‚ฌ
SELECT name, score
INTO students_score_only
FROM students;
๐Ÿ“ฅ ๊ฒฐ๊ณผ - students_score_only
name score
๊น€์ฒ ์ˆ˜ 85
์ด์˜ํฌ NULL
๋ฐ•๋ฏผ์ค€ 90
์ตœ์ง€์› 72
์ •์ˆ˜ํ˜„ NULL
ํ•œ์ง€๋ฏผ 78
์œค์„œ์ค€ 95
๊ฐ•๋‹ค์€ 88
์ž„ํ˜„์šฐ NULL
์˜ค์ง€์•„ 65

๐Ÿ”น ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ (๋ฐ์ดํ„ฐ ์—†์ด)

WHERE 1=0 ์กฐ๊ฑด์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•ญ์ƒ FALSE๋ผ์„œ ๋ฐ์ดํ„ฐ ์—†์ด ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ๋ฉ๋‹ˆ๋‹ค.

๋ฐ์ดํ„ฐ ์—†์ด ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ
SELECT *
INTO students_empty
FROM students
WHERE 1=0;
๐Ÿ“ฅ ๊ฒฐ๊ณผ - students_empty
id name grade score teacher_id

โ˜• ๋งˆ๋ฌด๋ฆฌ

์šฉ๋„ ์˜ˆ์‹œ
์ „์ฒด ๋ณต์‚ฌ SELECT * INTO ์ƒˆํ…Œ์ด๋ธ” FROM ๊ธฐ์กดํ…Œ์ด๋ธ”
์กฐ๊ฑด๋ถ€ ๋ณต์‚ฌ SELECT * INTO ์ƒˆํ…Œ์ด๋ธ” FROM ๊ธฐ์กดํ…Œ์ด๋ธ” WHERE ์กฐ๊ฑด
ํŠน์ • ์ปฌ๋Ÿผ๋งŒ ๋ณต์‚ฌ SELECT ์ปฌ๋Ÿผ INTO ์ƒˆํ…Œ์ด๋ธ” FROM ๊ธฐ์กดํ…Œ์ด๋ธ”
๊ตฌ์กฐ๋งŒ ๋ณต์‚ฌ SELECT * INTO ์ƒˆํ…Œ์ด๋ธ” FROM ๊ธฐ์กดํ…Œ์ด๋ธ” WHERE 1=0

SELECT INTO๋Š” ์ƒˆ ํ…Œ์ด๋ธ”์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
์ด๋ฏธ ๊ฐ™์€ ์ด๋ฆ„์˜ ํ…Œ์ด๋ธ”์ด ์กด์žฌํ•˜๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚ฉ๋‹ˆ๋‹ค

๐Ÿ“š ์ฐธ๊ณ ์ž๋ฃŒ

'Database > SQL ๊ธฐ์ดˆ' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

SQL ๊ธฐ์ดˆ - INSERT INTO SELECT  (0) 2026.04.17
SQL ๊ธฐ์ดˆ - AND, OR, NOT  (0) 2026.04.07
SQL ๊ธฐ์ดˆ - IN, EXISTS, ANY, ALL  (0) 2026.03.31
SQL ๊ธฐ์ดˆ - ์„œ๋ธŒ์ฟผ๋ฆฌ(Subquery)  (0) 2026.03.31
SQL ๊ธฐ์ดˆ - JOIN  (0) 2026.03.27