# ๐Ÿง SQLite์—์„œ CSV ๋ถˆ๋Ÿฌ์˜ค๊ธฐ: `.import` ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ

ํ—ˆํ—ˆ๋งจยท2025๋…„ 5์›” 21์ผ

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
3/3
post-thumbnail


๐Ÿง SQLite์—์„œ CSV ๋ถˆ๋Ÿฌ์˜ค๊ธฐ: .import ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ• ์ด์ •๋ฆฌ

palmerpenguins ๊ฐ™์€ CSV ๋ฐ์ดํ„ฐ๋ฅผ SQLite๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•์€ .import ๋ช…๋ น์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” ํ…Œ์ด๋ธ”์„ ์ง์ ‘ ์ƒ์„ฑํ•œ ํ›„ ์ž„ํฌํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ์ž๋™ ์ƒ์„ฑ ๋ฐฉ์‹์„ ๋น„๊ตํ•˜์—ฌ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.


โœ… ๋ฐฉ๋ฒ• 1: ํ…Œ์ด๋ธ” ์ง์ ‘ ์ƒ์„ฑ ํ›„ .import

๐Ÿ“Œ ์‚ฌ์šฉ ๋ชฉ์ 

  • ๊ฐ ์ปฌ๋Ÿผ์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์„ ๋ช…ํ™•ํžˆ ์ง€์ •
  • ์ •๋ฐ€ํ•œ ์ˆ˜์น˜ ์—ฐ์‚ฐ, ์ฟผ๋ฆฌ, ํ†ต๊ณ„ ๋ถ„์„์— ์ ํ•ฉ

๐Ÿ”ง ์‹คํ–‰ ์ˆœ์„œ

sqlite3 penguins.db
-- 1. ํ…Œ์ด๋ธ” ์ƒ์„ฑ
CREATE TABLE penguins (
    species TEXT,
    island TEXT,
    bill_length_mm REAL,
    bill_depth_mm REAL,
    flipper_length_mm REAL,
    body_mass_g REAL,
    sex TEXT,
    year INTEGER
);

-- 2. CSV import (ํ—ค๋” ๊ฑด๋„ˆ๋œ€)
.mode csv
.headers ON
.import --skip 1 penguins.csv penguins

๐Ÿ“„ ๊ฒฐ๊ณผ ํ™•์ธ

.schema penguins
SELECT * FROM penguins LIMIT 5;

โœ… ์ˆ˜์น˜ํ˜• ์ปฌ๋Ÿผ์€ REAL, INTEGER๋กœ ์ฒ˜๋ฆฌ๋จ
โœ… ๊ฒฐ์ธก์น˜๋Š” ์ž๋™์œผ๋กœ NULL


โœ… ๋ฐฉ๋ฒ• 2: .import๋งŒ์œผ๋กœ ์ž๋™ ํ…Œ์ด๋ธ” ์ƒ์„ฑ

๐Ÿ“Œ ์‚ฌ์šฉ ๋ชฉ์ 

  • ๋น ๋ฅด๊ฒŒ ๋ฐ์ดํ„ฐ ์ž„ํฌํŠธ
  • ์‹ค์Šต, ํ…Œ์ŠคํŠธ์šฉ์— ์ ํ•ฉ

๐Ÿ”ง ์‹คํ–‰ ์ˆœ์„œ

sqlite3 penguins.db
.mode csv
.headers ON
.import penguins.csv penguins

๐Ÿ“„ ๊ฒฐ๊ณผ ํ™•์ธ

.schema penguins
SELECT * FROM penguins LIMIT 5;

โŒ ๋ชจ๋“  ์ปฌ๋Ÿผ์ด TEXT๋กœ ์ฒ˜๋ฆฌ๋จ
โ†’ ์ˆ˜์น˜ ์—ฐ์‚ฐ ์‹œ ํƒ€์ž… ๋ณ€ํ™˜ ํ•„์š”


๐Ÿ” ๋‘ ๋ฐฉ๋ฒ• ๋น„๊ต ์š”์•ฝ

ํ•ญ๋ชฉ๋ฐฉ๋ฒ• 1: ์ง์ ‘ ์ƒ์„ฑ๋ฐฉ๋ฒ• 2: ์ž๋™ ์ƒ์„ฑ
ํ…Œ์ด๋ธ” ์ƒ์„ฑ.import ์ „์— CREATE TABLE.import ์‹œ ์ž๋™ ์ƒ์„ฑ
ํƒ€์ž… ์ง€์ •TEXT, REAL, INTEGER ๋“ฑ ์ง์ ‘ ์„ค์ •์ „๋ถ€ TEXT ์ฒ˜๋ฆฌ
์ˆ˜์น˜ ์—ฐ์‚ฐ์ •ํ™•๋ถˆ๋ฆฌํ•จ (ํ˜• ๋ณ€ํ™˜ ํ•„์š”)
์‚ฌ์šฉ ๋ชฉ์ ๋ถ„์„, ์‹ค๋ฌด์šฉ๋น ๋ฅธ ํ…Œ์ŠคํŠธ, ์‹ค์Šต
๊ฒฐ์ธก์น˜ ์ฒ˜๋ฆฌ์ž๋™ NULL๋™์ผํ•˜๊ฒŒ NULL ์ฒ˜๋ฆฌ

๐Ÿง  SQLite ๊ธฐ๋ณธ ์ €์žฅ ํƒ€์ž…

์ €์žฅ ํƒ€์ž…์„ค๋ช…์˜ˆ์‹œ
NULL๊ฒฐ์ธก๊ฐ’NULL
INTEGER์ •์ˆ˜2024, -1
REAL์‹ค์ˆ˜ (8๋ฐ”์ดํŠธ float)3.14
TEXT๋ฌธ์ž์—ด (UTF-8 ์ง€์›)'Adelie'
BLOB๋ฐ”์ด๋„ˆ๋ฆฌ ๋ฐ์ดํ„ฐ์ด๋ฏธ์ง€, ํ•ด์‹œ๊ฐ’ ๋“ฑ

๐Ÿ“Œ penguins ํ…Œ์ด๋ธ” ๊ถŒ์žฅ ์Šคํ‚ค๋งˆ ์˜ˆ์‹œ

CREATE TABLE penguins (
    species TEXT,
    island TEXT,
    bill_length_mm REAL,
    bill_depth_mm REAL,
    flipper_length_mm REAL,
    body_mass_g REAL,
    sex TEXT,
    year INTEGER
);

โ†’ bill_length_mm, body_mass_g โ†’ REAL
โ†’ year โ†’ INTEGER
โ†’ species, island, sex โ†’ TEXT


๐Ÿงพ ๋ฐ์ดํ„ฐ ํƒ€์ž… ์„ ํƒ ๊ฐ€์ด๋“œ

๋ฐ์ดํ„ฐ ์˜ˆ์‹œ๊ถŒ์žฅ ํƒ€์ž…
๋‚˜์ด, ์—ฐ๋„, ์ˆ˜๋Ÿ‰INTEGER
ํ‚ค, ๋ฌด๊ฒŒ, ํ‰๊ท REAL
์ด๋ฆ„, ์„ฑ๋ณ„, ๋ถ„๋ฅ˜TEXT
์ด๋ฏธ์ง€, ํŒŒ์ผBLOB
๊ฒฐ์ธก๊ฐ’ ์žˆ๋Š” ์ปฌ๋Ÿผ๋ณ„๋„ ๋ช…์‹œ ์—†์ด NULL ํ—ˆ์šฉ

๐Ÿ› ๏ธ VS Code์—์„œ SQLite ์‚ฌ์šฉํ•˜๊ธฐ

  • SQLite ํ™•์žฅ ํ”„๋กœ๊ทธ๋žจ ์„ค์น˜
    ์ œ์ž‘์ž: alexcvzz

  • ๊ธฐ๋Šฅ:

    • .db ํŒŒ์ผ ํƒ์ƒ‰๊ธฐ์—์„œ ์—ด๊ธฐ
    • .sql ํŒŒ์ผ์—์„œ ์ฟผ๋ฆฌ ์‹คํ–‰
    • ํŽธ๋ฆฌํ•œ GUI ์ธํ„ฐํŽ˜์ด์Šค ์ œ๊ณต

๐Ÿ“ฆ ์ฐธ๊ณ  ํŒŒ์ผ


๐Ÿง ๋งˆ๋ฌด๋ฆฌ

CSV ํŒŒ์ผ์„ SQLite๋กœ ๋ถˆ๋Ÿฌ์˜ค๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€?
โœ… ์ •๋ฐ€ ๋ถ„์„์ด ๋ชฉ์ ์ด๋ผ๋ฉด ๋ฐฉ๋ฒ• 1 (์ง์ ‘ ์ƒ์„ฑ)
โœ… ๊ฐ„๋‹จํ•œ ์‹ค์Šต์ด๋ผ๋ฉด ๋ฐฉ๋ฒ• 2 (์ž๋™ ์ƒ์„ฑ)
ํ•„์š”์— ๋งž๊ฒŒ ์ „๋žต์ ์œผ๋กœ ์„ ํƒํ•˜์„ธ์š”!


๐Ÿ”– ํƒœ๊ทธ ์ถ”์ฒœ:
#SQLite #CSVImport #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ธฐ์ดˆ #๋ฐ์ดํ„ฐ๋ถ„์„ #SQL์‹ค์Šต #VSCodeSQLite


profile
์‚ฌ๋žŒ์€ ๋ง๊ฐ์˜ ๋™๋ฌผ์ž…๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ๊ธฐ๋ก์œผ๋กœ ๊ณผ๊ฑฐ์˜ ๋‚˜๋ฅผ ๋ฐ๋ ค์˜ต๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€