๐Ÿฃ SQLite ๊ธฐ์ดˆ ์‹ค์Šต & SQL ํ•ต์‹ฌ ๋ฌธ๋ฒ• ์š”์•ฝ (Windows ๊ธฐ์ค€)

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

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
2/3

๐Ÿฃ SQLite ๊ธฐ์ดˆ ์‹ค์Šต & SQL ํ•ต์‹ฌ ๋ฌธ๋ฒ• ์š”์•ฝ (Windows ๊ธฐ์ค€)

SQLite๋Š” ์„ค์น˜๊ฐ€ ๊ฐ„ํŽธํ•˜๊ณ  ๊ฐ€๋ณ์ง€๋งŒ, ์‹ค์Šต๊ณผ ํ”„๋กœ์ ํŠธ์— ๊ฐ•๋ ฅํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด ๊ธ€์—์„œ๋Š” SQLite ์‹คํ–‰๋ถ€ํ„ฐ ํ…Œ์ด๋ธ” ์ƒ์„ฑ, ๋ฐ์ดํ„ฐ ์‚ฝ์ž…/์กฐํšŒ/์ˆ˜์ •/์‚ญ์ œ, JOIN๊นŒ์ง€ ์‹ค์Šต ์˜ˆ์ œ์™€ ํ•จ๊ป˜ SQL ํ•ต์‹ฌ ๋ฌธ๋ฒ• ์š”์•ฝ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.


โœ… ์‚ฌ์ „ ์ค€๋น„: SQLite ์‹คํ–‰ ๋ฐ ํด๋” ์ด๋™

cd C:\Users\User\Documents\lsbigdata-gen4

ํ•ด๋‹น ํด๋”๊ฐ€ ์—†๋‹ค๋ฉด ์•„๋ž˜์ฒ˜๋Ÿผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค:

mkdir C:\Users\User\Documents\lsbigdata-gen4
cd C:\Users\User\Documents\lsbigdata-gen4

SQLite ์‹คํ–‰ ํ›„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ƒ์„ฑ:

sqlite3 myschool.db

โœ… SQL ๋ฌธ๋ฒ• ๊ธฐ์ดˆ ์š”์•ฝ

ํ•ญ๋ชฉ์„ค๋ช…
๋ฌธ์žฅ ๊ตฌ๋ถ„SQL ๋ฌธ์žฅ์€ ์„ธ๋ฏธ์ฝœ๋ก (;)์œผ๋กœ ๋๋‚จ
๋Œ€์†Œ๋ฌธ์ž๊ตฌ๋ถ„ํ•˜์ง€ ์•Š์Œ (SELECT vs select)
๋ฌธ์ž์—ด'Alice', '10th' ์ฒ˜๋Ÿผ ์ž‘์€๋”ฐ์˜ดํ‘œ ์‚ฌ์šฉ
๊ณต๋ฐฑ ํฌํ•จ ์ด๋ฆ„"table name"์ฒ˜๋Ÿผ ํฐ๋”ฐ์˜ดํ‘œ๋กœ ๊ฐ์‹ธ์•ผ ํ•จ
์—ฌ๋Ÿฌ ์ค„ ์ž‘์„ฑ๊ฐ€๋Šฅ (์„ธ๋ฏธ์ฝœ๋ก ์ด ๋ฌธ์žฅ ์ข…๋ฃŒ ํ‘œ์‹œ)
์ฃผ์„-- ํ•œ ์ค„, /* ์—ฌ๋Ÿฌ ์ค„ */
์‹คํ–‰ ์ˆœ์„œFROM โ†’ WHERE โ†’ SELECT โ†’ ORDER BY

โœ… SQLite ์‹ค์Šต: ํ•™๊ต DB ๋งŒ๋“ค๊ธฐ

๐Ÿ“Œ 1๋‹จ๊ณ„: ํ…Œ์ด๋ธ” ์ƒ์„ฑ

CREATE TABLE students (
    id INTEGER PRIMARY KEY,
    name TEXT NOT NULL,
    age INTEGER,
    grade TEXT
);

๐Ÿ“Œ 2๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ ์‚ฝ์ž…

INSERT INTO students (name, age, grade) VALUES ('Alice', 15, '10th');
INSERT INTO students (name, age, grade) VALUES ('Bob', 16, '11th');
INSERT INTO students (name, age, grade) VALUES ('Charlie', 15, '10th');

๐Ÿ“Œ 3๋‹จ๊ณ„: ์ „์ฒด ๋ฐ์ดํ„ฐ ์กฐํšŒ

.headers ON
.mode column
SELECT * FROM students;

๐Ÿ–ฅ๏ธ ์ถœ๋ ฅ ๊ฒฐ๊ณผ:

id  name     age  grade
--  -------  ---  ------
1   Alice    15   10th
2   Bob      16   11th
3   Charlie  15   10th

๐Ÿ“Œ 4๋‹จ๊ณ„: ์กฐ๊ฑด ๊ฒ€์ƒ‰ & ์ •๋ ฌ

SELECT name, grade FROM students WHERE age = 15;

SELECT * FROM students ORDER BY age DESC;

๐Ÿ“Œ 5๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ ์ˆ˜์ •

UPDATE students SET grade = '11th' WHERE name = 'Charlie';
SELECT * FROM students;

๐Ÿ“Œ 6๋‹จ๊ณ„: ๋ฐ์ดํ„ฐ ์‚ญ์ œ

DELETE FROM students WHERE name = 'Bob';
SELECT * FROM students;

๐Ÿ“Œ 7๋‹จ๊ณ„: ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ํ™•์ธ

.tables
.schema students

๐Ÿ“Œ 8๋‹จ๊ณ„: ์ง‘๊ณ„ ํ•จ์ˆ˜ & ๊ทธ๋ฃนํ™”

SELECT COUNT(*) FROM students;
SELECT AVG(age) FROM students;
SELECT grade, COUNT(*) FROM students GROUP BY grade;

๐Ÿ“Œ 9๋‹จ๊ณ„: JOIN ์‹ค์Šต

CREATE TABLE scores (
    student_id INTEGER,
    subject TEXT,
    score INTEGER
);

INSERT INTO scores VALUES (1, 'Math', 85);
INSERT INTO scores VALUES (1, 'English', 90);
INSERT INTO scores VALUES (3, 'Math', 88);

SELECT students.name, scores.subject, scores.score
FROM students
JOIN scores ON students.id = scores.student_id;

๐Ÿ–ฅ๏ธ ์ถœ๋ ฅ ๊ฒฐ๊ณผ:

name     subject   score
-------  --------  -----
Alice    Math      85
Alice    English   90
Charlie  Math      88

๐Ÿ“Œ 10๋‹จ๊ณ„: SQLite ์ข…๋ฃŒ

.exit

๐Ÿง  SQL ์ฃผ์š” ๋™์‚ฌ ์ •๋ฆฌํ‘œ

SQL ๋ช…๋ น์–ด์„ค๋ช…์˜ˆ์‹œ
CREATE TABLEํ…Œ์ด๋ธ” ์ƒ์„ฑCREATE TABLE students (...);
INSERT INTO๋ฐ์ดํ„ฐ ์‚ฝ์ž…INSERT INTO students VALUES (...);
SELECT๋ฐ์ดํ„ฐ ์กฐํšŒSELECT * FROM students;
WHERE์กฐ๊ฑด ๊ฒ€์ƒ‰SELECT * FROM students WHERE age = 15;
ORDER BY์ •๋ ฌSELECT * FROM students ORDER BY age DESC;
UPDATE + SET๋ฐ์ดํ„ฐ ์ˆ˜์ •UPDATE students SET grade = '11th';
DELETE FROM๋ฐ์ดํ„ฐ ์‚ญ์ œDELETE FROM students WHERE name = 'Bob';
.tablesํ…Œ์ด๋ธ” ๋ชฉ๋ก ํ™•์ธ.tables
.schemaํ…Œ์ด๋ธ” ๊ตฌ์กฐ ํ™•์ธ.schema students
COUNT()ํ–‰ ๊ฐœ์ˆ˜SELECT COUNT(*) FROM students;
AVG()ํ‰๊ท  ๊ณ„์‚ฐSELECT AVG(age) FROM students;
GROUP BY๊ทธ๋ฃนํ™”SELECT grade, COUNT(*) FROM students GROUP BY grade;
JOIN + ONํ…Œ์ด๋ธ” ์—ฐ๊ฒฐ... JOIN B ON A.id = B.a_id
.headers ON์—ด ์ด๋ฆ„ ํ‘œ์‹œ.headers ON
.mode column์—ด ์ •๋ ฌ ์ถœ๋ ฅ.mode column
.exit์ข…๋ฃŒ.exit

๐Ÿ“Œ SQL ์‹คํ–‰ ์ˆœ์„œ vs. ์ž‘์„ฑ ์ˆœ์„œ

์ž‘์„ฑ ์ˆœ์„œ์‹คํ–‰ ์ˆœ์„œ
SELECT โ†’ FROM โ†’ WHERE โ†’ ORDER BYFROM โ†’ WHERE โ†’ SELECT โ†’ ORDER BY
-- ์ž‘์„ฑ์€ ์ด๋ ‡๊ฒŒ
SELECT name
FROM students
WHERE age > 15;

ํ•˜์ง€๋งŒ ๋‚ด๋ถ€ ์‹คํ–‰ ์ˆœ์„œ๋Š”:

  1. FROM students
  2. WHERE age > 15
  3. SELECT name

โœ๏ธ ๋งˆ๋ฌด๋ฆฌ

์ด ํฌ์ŠคํŠธ๋Š” SQLite ์‹ค์Šต์„ ํ†ตํ•ด SQL์˜ ๊ธฐ๋ณธ๊ธฐ๋ฅผ ํƒ„ํƒ„ํžˆ ์Œ“์„ ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Python, ๋ฐ์ดํ„ฐ ๋ถ„์„, ์•ฑ ๊ฐœ๋ฐœ ๋“ฑ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ SQL์€ ํ•„์ˆ˜ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. SQLite๋กœ ์—ฐ์Šตํ•˜๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ์ตํ˜€๋ณด์„ธ์š”!


๐Ÿ“Œ ํƒœ๊ทธ ์ถ”์ฒœ:
#SQLite #SQL๊ธฐ์ดˆ #๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค #SQLite์„ค์น˜ #SQL์‹ค์Šต #DB์ดˆ๋ณด #๋ฐ์ดํ„ฐ๋ถ„์„


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

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