๐ 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 |