DB - Query

Kjjeddยท2026๋…„ 1์›” 19์ผ

DB

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

๐ŸงฉCRUD + SELECT ์‹คํ–‰ ์ˆœ์„œ ์ •๋ฆฌ

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‹ค๋ฃฌ๋‹ค๋Š” ๊ฑด ๋‹จ์ˆœํžˆ ์ฟผ๋ฆฌ๋ฅผ ์™ธ์šฐ๋Š” ๊ฒŒ ์•„๋‹ˆ๋‹ค.
๋ฐ์ดํ„ฐ๊ฐ€ ์–ธ์ œ, ์–ด๋–ค ์ˆœ์„œ๋กœ, ์–ด๋–ป๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š”์ง€๋ฅผ ์ดํ•ดํ•˜๋Š” ๊ฒŒ ํ•ต์‹ฌ์ด๋‹ค.

โœ” CRUD์˜ ์ •ํ™•ํ•œ ์˜๋ฏธ
โœ” ๊ฐ ์ฟผ๋ฆฌ๊ฐ€ ์™œ ์กด์žฌํ•˜๋Š”์ง€
โœ” ์‹ค์ œ ํ…Œ์ด๋ธ”์„ ๊ธฐ์ค€์œผ๋กœ ํ•œ ์‹ค์Šต
โœ” SELECT ์ฟผ๋ฆฌ์˜ ์ง„์งœ ์‹คํ–‰ ์ˆœ์„œ
๋ฅผ ์ •๋ฆฌํ•œ๋‹ค ๐Ÿš€


๐Ÿ“Œ CRUD๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

CRUD๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ๋“  ๊ธฐ๋ณธ ๋™์ž‘์˜ ๋ฌถ์Œ์ด๋‹ค.

C โ†’ Create   (์ƒ์„ฑ)
R โ†’ Read     (์กฐํšŒ)
U โ†’ Update   (์ˆ˜์ •)
D โ†’ Delete   (์‚ญ์ œ)

๋ชจ๋“  ์„œ๋น„์Šค๋Š” ์ด ๋„ค ๊ฐ€์ง€๋ฅผ ๋ฒ—์–ด๋‚˜์ง€ ์•Š๋Š”๋‹ค.
ํšŒ์›๊ฐ€์ž…, ๋กœ๊ทธ์ธ, ๊ฒŒ์‹œ๊ธ€ ์ˆ˜์ •, ํƒˆํ‡ด โ€” ์ „๋ถ€ CRUD๋‹ค.


๐ŸŸข CREATE โ€” ๋ฐ์ดํ„ฐ ์ƒ์„ฑ

๐Ÿ“˜ ๊ฐœ๋… ์ •์˜

CREATE(์ƒ์„ฑ)๋Š” ํ…Œ์ด๋ธ”์— ์ƒˆ๋กœ์šด ํ–‰(Row)์„ ์ถ”๊ฐ€ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
์ด๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ฟผ๋ฆฌ๊ฐ€ ๋ฐ”๋กœ INSERT๋‹ค.

์ค‘์š”ํ•œ ํฌ์ธํŠธ๋Š” ์ด๊ฑฐ๋‹ค.

  • INSERT๋Š” ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋ฅผ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค
  • ์˜ค์ง ๋ฐ์ดํ„ฐ๋งŒ ์ถ”๊ฐ€ํ•œ๋‹ค

INSERT INTO [ํ…Œ์ด๋ธ” ๋ช…][์นผ๋Ÿผ1, ์นผ๋Ÿผ2...] VALUES([๊ฐ’1, ๊ฐ’2...]);

๐Ÿงช ์‹ค์Šต 1 โ€” ํ•™์ƒ ๋ฐ์ดํ„ฐ ์ถ”๊ฐ€

INSERT INTO students (name, birthdate)
VALUES ('๊ฐ•๋™์›', '1990-05-20');

์ด ์ฟผ๋ฆฌ๊ฐ€ ์˜๋ฏธํ•˜๋Š” ํ๋ฆ„์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

1๏ธโƒฃ students ํ…Œ์ด๋ธ” ์„ ํƒ
2๏ธโƒฃ name, birthdate ์ปฌ๋Ÿผ์— ๊ฐ’ ์ง€์ •
3๏ธโƒฃ ์ƒˆ๋กœ์šด ํ–‰ 1๊ฐœ ์ƒ์„ฑ

๐Ÿงช ์‹ค์Šต 2 โ€” ์—ฌ๋Ÿฌ ํ–‰ ํ•œ ๋ฒˆ์— ์ถ”๊ฐ€ (Multi-row Insert)

INSERT INTO students (name, birthdate)
VALUES
  ('๊ฐ•๋™์›', '1990-05-20'),
  ('์†ก๊ฐ•ํ˜ธ', '1967-01-17'),
  ('์ „๋„์—ฐ', '1973-02-11');

โœ” ์—ฌ๋Ÿฌ INSERT๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ๋ณด๋‹ค
โœ” ํ•œ ๋ฒˆ์— ๋„ฃ๋Š” ๊ฒŒ ์„ฑ๋Šฅ + ํŠธ๋žœ์žญ์…˜ ์ธก๋ฉด์—์„œ ํ›จ์”ฌ ์œ ๋ฆฌํ•˜๋‹ค.

์ฐธ๊ณ ์‚ฌํ•ญ:
  • AUTO_INCREMENT ์ปฌ๋Ÿผ์€ ์ƒ๋žตํ•˜๋ฉด ์ž๋™ ์ƒ์„ฑ๋จ (๊ถŒ์žฅ)
  • NOT NULL ์ปฌ๋Ÿผ์€ ๋ฐ˜๋“œ์‹œ ๊ฐ’์ด ํ•„์š”ํ•จ
  • ๋ฌธ์ž์—ด์€ '' ๋กœ ๊ฐ์‹ธ๊ธฐ
  • ์ž‘์€๋”ฐ์˜ดํ‘œ๋ฅผ ๋‘ ๋ฒˆ ์—ฐ์† ์“ฐ๋ฉด escape ์ฒ˜๋ฆฌ ๋จ -> O'Brien ์ €์žฅ: ('O''Brien')

    ๐Ÿ”ต READ โ€” ๋ฐ์ดํ„ฐ ์กฐํšŒ

    ๐Ÿ“˜ ๊ฐœ๋… ์ •์˜

    READ(์กฐํšŒ)๋Š” ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฝ๊ธฐ๋งŒ ํ•˜๋Š” ์ž‘์—…์ด๋‹ค.
    ๋ฐ์ดํ„ฐ๋ฅผ ์ ˆ๋Œ€ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๋Š”๋‹ค.

    ์ด ์ž‘์—…์˜ ์ฃผ์ธ๊ณต์ด ๋ฐ”๋กœ SELECT๋‹ค.

    SELECT [์นผ๋Ÿผ ๋ชฉ๋ก] FROM [ํ…Œ์ด๋ธ” ๋ช…];

    ๐Ÿงช ์‹ค์Šต 1 โ€” ์ „์ฒด ์กฐํšŒ

    SELECT * FROM students;

    โš ๏ธ ์‹ค๋ฌด์—์„œ๋Š” SELECT * ์‚ฌ์šฉ์„ ์ตœ์†Œํ™”ํ•œ๋‹ค.
    ํ•„์š”ํ•œ ์ปฌ๋Ÿผ๋งŒ ์กฐํšŒํ•˜๋Š” ๊ฒŒ ์„ฑ๋Šฅ๊ณผ ๊ฐ€๋…์„ฑ ๋ชจ๋‘ ์ข‹๋‹ค.

    ๐Ÿงช ์‹ค์Šต 2 โ€” ์กฐ๊ฑด ์กฐํšŒ

    SELECT name, birthdate
    FROM students
    WHERE birthdate >= '1990-01-01';

    WHERE ์ ˆ์€ ํ–‰์„ ํ•„ํ„ฐ๋งํ•œ๋‹ค.
    ์ด ๋‹จ๊ณ„์—์„œ ๋ฐ์ดํ„ฐ ์–‘์ด ํ™• ์ค„์–ด๋“œ๋Š” ๊ฒŒ ์ค‘์š”ํ•˜๋‹ค.

    ์ฐธ๊ณ ์‚ฌํ•ญ:
  • NULL ํ‚ค์›Œ๋“œ:
    * ๊ฐ’์ด NULL์ผ ๊ฒฝ์šฐ -> [๊ฐ’] IS NULL
    * ๊ฐ’์ด NULL์ด ์•„๋‹ ๊ฒฝ์šฐ -> [๊ฐ’] IS NOT NULL
  • LIKE๋กœ ํŒจํ„ด ๊ฒ€์ƒ‰:
    * %: 0๊ธ€์ž ์ด์ƒ (e.g., '์ฒ %' -> ์ฒ , ์ฒ ์ˆ˜, ์ฒ ์ˆ˜์•„๋ฒ„์ง€)
    * _: ์ •ํ™•ํžˆ 1๊ธ€์ž (e,g,, '์ฒ _' -> ์ฒ ์ˆ˜, ์ฒ ํ˜ธ ('์ฒ ' ํ•œ๊ธ€์ž X))

    ๐ŸŸก UPDATE โ€” ๋ฐ์ดํ„ฐ ์ˆ˜์ •

    ๐Ÿ“˜ ๊ฐœ๋… ์ •์˜

    UPDATE [ํ…Œ์ด๋ธ” ๋ช…] SET [์นผ๋Ÿผ] = [๊ฐ’] WHERE [์กฐ๊ฑด];

    UPDATE๋Š” ๊ธฐ์กด ํ–‰์˜ ๊ฐ’์„ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๋ฐ”๊พธ๋Š” ์ž‘์—…์ด๋‹ค.

    ์ด๋•Œ ๊ฐ€์žฅ ์œ„ํ—˜ํ•œ ์‹ค์ˆ˜๊ฐ€ ์žˆ๋‹ค.

    โŒ WHERE ์—†๋Š” UPDATE
    โ†’ ํ…Œ์ด๋ธ” ์ „์ฒด ์ˆ˜์ •
    

    ๐Ÿงช ์‹ค์Šต โ€” ํŠน์ • ํ•™์ƒ ์ด๋ฆ„ ์ˆ˜์ •

    UPDATE students
    SET name = '์›๋นˆ'
    WHERE student_id = 1;

    ์ด ์ฟผ๋ฆฌ๋Š” ์ด๋ ‡๊ฒŒ ๋™์ž‘ํ•œ๋‹ค.

    1๏ธโƒฃ students ํ…Œ์ด๋ธ” ์„ ํƒ
    2๏ธโƒฃ student_id = 1 ์ธ ํ–‰ ์ฐพ๊ธฐ
    3๏ธโƒฃ ํ•ด๋‹น ํ–‰์˜ name ์ปฌ๋Ÿผ๋งŒ ๋ณ€๊ฒฝ
    

    ๐Ÿ‘‰ WHERE๋ถ€ํ„ฐ ๋จผ์ € ์“ฐ๊ณ  UPDATE๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๊ฒŒ ์•ˆ์ „!


    ๐Ÿ”ด DELETE โ€” ๋ฐ์ดํ„ฐ ์‚ญ์ œ

    ๐Ÿ“˜ ๊ฐœ๋… ์ •์˜

    DELETE๋Š” ํ–‰ ์ž์ฒด๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•œ๋‹ค.
    ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค (๋ฐฑ์—… ์—†์œผ๋ฉด ๋).

    DELETE FROM [ํ…Œ์ด๋ธ” ๋ช…] WHERE [์กฐ๊ฑด]

    ๐Ÿงช ์‹ค์Šต โ€” ํŠน์ • ํ•™์ƒ ์‚ญ์ œ

    DELETE FROM students
    WHERE student_id = 1;

    UPDATE์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ
    WHERE ์—†๋Š” DELETE = ํ…Œ์ด๋ธ” ์ดˆ๊ธฐํ™”๋‹ค.

    ์ฐธ๊ณ ์‚ฌํ•ญ:

  • Foreign Key๊ฐ€ ์žˆ์„ ๋•Œ, ์ฆ‰ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์—์„œ ์ฐธ์กฐํ•˜๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฐ”๋กœ ์‚ญ์ œํ•  ์ˆ˜ ์—†๋‹ค
    (์ž์‹ ๋ฐ์ดํ„ฐ๋ฅผ ๋จผ์ € ์‚ญ์ œํ•˜๊ฑฐ๋‚˜, ON DELETE CASCADE ์„ค์ •์„ ํ•ด์•ผํ•จ)

    DELETE vs TRUNCATE vs DROP

    ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ฑฐํ•˜๋Š” ์„ธ ๊ฐ€์ง€ ๋ช…๋ น์–ด์˜ ์ฐจ์ด

    ๋ช…๋ น์–ด๋Œ€์ƒ์„ค๋ช…
    DELETEํŠน์ • ํ–‰์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์„ ํƒ์ ์œผ๋กœ ์‚ญ์ œ
    TRUNCATE๋ชจ๋“  ํ–‰ํ…Œ์ด๋ธ”์˜ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ์‚ญ์ œ (ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์œ ์ง€)
    DROPํ…Œ์ด๋ธ” ์ž์ฒดํ…Œ์ด๋ธ” ๊ตฌ์กฐ๊นŒ์ง€ ์™„์ „ํžˆ ์‚ญ์ œ
    -- ์กฐ๊ฑด์— ๋งž๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œ
    DELETE FROM users WHERE age < 20;
    
    -- ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ, ํ…Œ์ด๋ธ” ๊ตฌ์กฐ๋Š” ์œ ์ง€
    TRUNCATE TABLE users;
    
    -- ํ…Œ์ด๋ธ” ์ž์ฒด๋ฅผ ์‚ญ์ œ
    DROP TABLE users;

    INNER JOIN ๊ธฐ๋ณธ ๋ฌธ๋ฒ•

    SELECT ์ปฌ๋Ÿผ1, ์ปฌ๋Ÿผ2, ...
    FROM ํ…Œ์ด๋ธ”1
    INNER JOIN ํ…Œ์ด๋ธ”2 ON ํ…Œ์ด๋ธ”1.์ปฌ๋Ÿผ = ํ…Œ์ด๋ธ”2.์ปฌ๋Ÿผ
    WHERE ์กฐ๊ฑด;

    ๊ตฌ์„ฑ ์š”์†Œ

    ๊ตฌ์„ฑ ์š”์†Œ์—ญํ• 
    FROM ํ…Œ์ด๋ธ”1๊ธฐ์ค€์ด ๋˜๋Š” ์ฒซ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”
    INNER JOIN ํ…Œ์ด๋ธ”2์—ฐ๊ฒฐํ•  ๋‘ ๋ฒˆ์งธ ํ…Œ์ด๋ธ”
    ON ์กฐ๊ฑด๋‘ ํ…Œ์ด๋ธ”์„ ์–ด๋–ป๊ฒŒ ์—ฐ๊ฒฐํ• ์ง€ ์กฐ๊ฑด

    ON์˜ ์—ญํ• 

    ON users.id = posts.user_id

    ์ด ์กฐ๊ฑด์€ "users ํ…Œ์ด๋ธ”์˜ id์™€ posts ํ…Œ์ด๋ธ”์˜ user_id๊ฐ€ ๊ฐ™์€ ํ–‰๋ผ๋ฆฌ ์—ฐ๊ฒฐํ•ด์ค˜"๋ผ๋Š” ์˜๋ฏธ


    JOIN์„ ์‚ฌ์šฉํ•  ๋•Œ๋Š” "ํ…Œ์ด๋ธ”๋ช….์ปฌ๋Ÿผ๋ช…" ํ˜•์‹์œผ๋กœ ์ž‘์„ฑํ•œ๋‹ค.

    -- ๋ช…ํ™•ํ•œ ํ‘œ๊ธฐ
    SELECT users.name, posts.title
    FROM users
    INNER JOIN posts ON users.id = posts.user_id;

    ๋‘ ํ…Œ์ด๋ธ”์— ๊ฐ™์€ ์ด๋ฆ„์˜ ์ปฌ๋Ÿผ์ด ์žˆ์„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ.

    ์˜ˆ๋ฅผ ๋“ค์–ด, users ํ…Œ์ด๋ธ”์—๋„ id๊ฐ€ ์žˆ๊ณ , posts ํ…Œ์ด๋ธ”์—๋„ id๊ฐ€ ์žˆ๋‹ค๋ฉด ์–ด๋А ์ชฝ์ธ์ง€ ๋ช…ํ™•ํžˆ ํ•ด์•ผ ํ•œ๋‹ค.

    ๋ณ„์นญ์„ ๋ถ™์—ฌ ์ฝ”๋“œ๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

    -- u๋Š” users์˜ ๋ณ„์นญ, p๋Š” posts์˜ ๋ณ„์นญ
    SELECT u.name, p.title
    FROM demo.users u
    INNER JOIN demo.posts p ON u.id = p.user_id;

    ๐Ÿง  SELECT ์ฟผ๋ฆฌ์˜ ์‹คํ–‰ ์ˆœ์„œ

    ๐Ÿ“Œ ๋…ผ๋ฆฌ์  ์‹คํ–‰ ์ˆœ์„œ

    1. FROM: ๋ฐ์ดํ„ฐ ์†Œ์Šค ์ง€์ •
      • ํ…Œ์ด๋ธ”์ด๋‚˜ ๋ทฐ์™€ ๊ฐ™์€ ๋ฐ์ดํ„ฐ ์†Œ์Šค๋ฅผ ์„ ํƒํ•œ๋‹ค.
        FROM ํ…Œ์ด๋ธ”๋ช…
    2. JOIN: ํ…Œ์ด๋ธ” ๊ฒฐํ•ฉ
      • ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ์˜ ๊ฒฐํ•ฉ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.
        JOIN ๋‹ค๋ฅธํ…Œ์ด๋ธ”๋ช… ON ์กฐ๊ฑด
    3. WHERE: ์กฐ๊ฑด ํ•„ํ„ฐ๋ง
      • ๊ฒฐํ•ฉ๋œ ํ…Œ์ด๋ธ”์—์„œ ์กฐ๊ฑด์— ๋งž๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ ํ•„ํ„ฐ๋งํ•œ๋‹ค.
        WHERE ์กฐ๊ฑด
    4. GROUP BY: ๊ทธ๋ฃนํ™”
      • ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ๋ ˆ์ฝ”๋“œ๋ฅผ ๊ทธ๋ฃนํ™”ํ•œ๋‹ค.
        GROUP BY ์ปฌ๋Ÿผ๋ช…
    5. HAVING: ๊ทธ๋ฃนํ™”๋œ ๊ฒฐ๊ณผ ํ•„ํ„ฐ๋ง
      • GROUP BY ์ ˆ์— ์˜ํ•ด ๊ทธ๋ฃนํ™”๋œ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ์กฐ๊ฑด์„ ์ง€์ •ํ•œ๋‹ค.
        HAVING ์กฐ๊ฑด
    6. SELECT: ์ถœ๋ ฅํ•  ์ปฌ๋Ÿผ ์„ ํƒ
      • ์ตœ์ข…์ ์œผ๋กœ ์ถœ๋ ฅํ•  ์ปฌ๋Ÿผ์„ ์„ ํƒํ•œ๋‹ค.
        SELECT ์ปฌ๋Ÿผ๋ช…
    7. DISTINCT: ์ค‘๋ณต ์ œ๊ฑฐ
      • ๊ฒฐ๊ณผ์—์„œ ์ค‘๋ณต๋œ ๋ ˆ์ฝ”๋“œ๋ฅผ ์ œ๊ฑฐํ•œ๋‹ค.
        SELECT DISTINCT ์ปฌ๋Ÿผ๋ช…
    8. ORDER BY: ์ •๋ ฌ
      • ๊ฒฐ๊ณผ๋ฅผ ํŠน์ • ์ปฌ๋Ÿผ์„ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.
        ORDER BY ์ปฌ๋Ÿผ๋ช…
    9. LIMIT: ๋ฐ˜ํ™˜ํ•  ๋ ˆ์ฝ”๋“œ ์ˆ˜ ์ œํ•œ
      • ๊ฒฐ๊ณผ์—์„œ ๋ฐ˜ํ™˜ํ•  ๋ ˆ์ฝ”๋“œ์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•œ๋‹ค.
        LIMIT ์ˆซ์ž

    ๐Ÿงช ์˜ˆ์ œ ์ฟผ๋ฆฌ

    SELECT                                                 -- 6
     DISTINCT s.name, c.course_name                        -- 7
    
    	FROM enrollments AS e                              -- 1
    	JOIN students AS s ON e.student_id = s.student_id  -- 2
    	JOIN courses AS c ON e.course_id = c.course_id     -- 2
    	WHERE s.student_id != 0                            -- 3
    
    	GROUP BY s.name, c.course_name                     -- 4
    	HAVING COUNT(*) > 0                                -- 5
    
    	ORDER BY s.name                                    -- 8
    	LIMIT 5;                                           -- 9

    ๐Ÿ” ํ๋ฆ„

    ๐Ÿ‘‰ ๊ฐ ๋‹จ๊ณ„๋Š” ์ด์ „ ๋‹จ๊ณ„์˜ ๊ฒฐ๊ณผ๋ฅผ ์ž…๋ ฅ์œผ๋กœ ๋ฐ›์•„ ์ฒ˜๋ฆฌํ•˜๋ฉฐ,
    ์ตœ์ข…์ ์œผ๋กœ LIMIT ๋‹จ๊ณ„์—์„œ ๊ฒฐ๊ณผ๋ฅผ ์ œํ•œํ•˜์—ฌ ๋ฐ˜ํ™˜ํ•œ๋‹ค.


    โœ… ์ตœ์ข… ์š”์•ฝ

    • CRUD๋Š” ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์ž‘์—…์˜ ๊ธฐ๋ณธ
    • INSERT๋Š” ํ–‰ ์ถ”๊ฐ€, ๊ตฌ์กฐ ๋ณ€๊ฒฝ ์•„๋‹˜
    • SELECT๋Š” ์ฝ๊ธฐ ์ „์šฉ
    • UPDATE / DELETE๋Š” ๋ฐ˜๋“œ์‹œ WHERE
    • SELECT ์‹คํ–‰ ์ˆœ์„œ๋Š” ์•”๊ธฐ + ์ดํ•ด
  • profile
    Gongbuhaja

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