๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
[๊ฐœ๋ฐœ] Practice/SQL Database

[SQL / Database] ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ & ๋ฐ์ดํ„ฐ ๋ฐ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ

by Connecting-the-dots 2023. 5. 29.
728x90
๋ฐ˜์‘ํ˜•

๐Ÿ’ก๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ & ๋ฐ์ดํ„ฐ ๋ฐ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ

๐Ÿ’œ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ

๐Ÿค INSERT ๋ฌธ๋ฒ•์œผ๋กœ ๋ฐ์ดํ„ฐ ๋„ฃ๊ธฐ

INSERT INTO ํ…Œ์ด๋ธ”๋ช… (์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2 ...) VALUES (๊ฐ’1, ๊ฐ’2 ...)
  • ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ ค๋ฉด INSERT ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค.
  • ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ๋ช…๋“ค๊ณผ ๋„ฃ์„ ๊ฐ’๋“ค์„ ์ฐจ๋ก€๋กœ ์ ๋Š” ๋ฐฉ์‹์œผ๋กœ ์‚ฌ์šฉํ•˜๋ฉฐ, ๊ฐ ์ปฌ๋Ÿผ ์ˆœ์„œ๋Š” ์ž„์˜๋กœ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€์‘ํ•  ๊ฐ’๊ณผ ์ˆœ์„œ๋ฅผ ๋งž์ถฐ์ฃผ์–ด์•ผ ํ•œ๋‹ค.
  • ๋ชจ๋“  ์ปฌ๋Ÿผ์„ ์ž‘์„ฑํ•ด๋„ ๋˜์ง€๋งŒ, ์ผ๋ถ€ ์ปฌ๋Ÿผ์—๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜๋„ ์žˆ์œผ๋ฉฐ ์ด ๋•Œ ๋นˆ ๊ณณ์€ NULL ๋กœ ์ฑ„์›Œ์ง„๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, AUTO_INCREMENT ์ œ์•ฝ์ด ๋ถ€์—ฌ๋œ ์ปฌ๋Ÿผ์€ ๋ฐ์ดํ„ฐ ์ž…๋ ฅ์„ ์ƒ๋žตํ•ด๋„ ์ž๋™์œผ๋กœ ์ฑ„์›Œ์ง„๋‹ค.
    • ์ปฌ๋Ÿผ์— NOT NULL ์ œ์•ฝ ์กฐ๊ฑด์ด ๋ถ€์—ฌ๋œ ๊ฒฝ์šฐ NULL ์ž…๋ ฅ์€ ๋‹น์—ฐํžˆ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
    • NULL ๋Œ€์‹  ๋นˆ ๋ฌธ์ž('') ๋˜๋Š” 0 ์„ ์ž…๋ ฅํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์กด์žฌํ•˜๋ฉฐ, Oracle ์—์„œ๋Š” ๋นˆ๋ฌธ์ž('')๋ฅผ ์ž๋™์œผ๋กœ NULL ๋กœ ๋ฐ”๊ฟ”์ค€๋‹ค.
INSERT INTO ํ…Œ์ด๋ธ”๋ช… VALUES (๊ฐ’1, ๊ฐ’2, ๊ฐ’3)
  • ๋ชจ๋“  ์ปฌ๋Ÿผ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๋Š” ๊ฒฝ์šฐ ์ปฌ๋Ÿผ๋ช… ์ ๋Š” ๋ถ€๋ถ„์€ ์•„์˜ˆ ์ƒ๋žตํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.
INSERT INTO ํ…Œ์ด๋ธ”๋ช… VALUES (๊ฐ’1, ๊ฐ’2, ๊ฐ’3), (๊ฐ’4, ๊ฐ’5, ๊ฐ’6);
  • ์—ฌ๋Ÿฌ ํ–‰์„ ๋™์‹œ์— ๋„ฃ๋Š” ๊ฒฝ์šฐ ์œ„์™€ ๊ฐ™์ด ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿ’œ ๋ฐ์ดํ„ฐ ๋ฐ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ

๐Ÿค INSERT ๋ฌธ๋ฒ•์œผ๋กœ ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ ๋ณต์‚ฌํ•˜๊ธฐ

INSERT INTO ํ…Œ์ด๋ธ”๋ช…1 (ํ…Œ์ด๋ธ”๋ช…1์ปฌ๋Ÿผ๋ช…1, ํ…Œ์ด๋ธ”๋ช…1์ปฌ๋Ÿผ๋ช…2) 
SELECT ํ…Œ์ด๋ธ”๋ช…2์ปฌ๋Ÿผ๋ช…1, ํ…Œ์ด๋ธ”๋ช…2์ปฌ๋Ÿผ๋ช…2 FROM ํ…Œ์ด๋ธ”๋ช…2
  • INSERT ๋ฌธ๋ฒ•์˜ VALUES () ์ž๋ฆฌ์—๋Š” SELECT ๋ฌธ๋ฒ•์„ ์ง‘์–ด๋„ฃ๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ์ด ๊ฒฝ์šฐ SELECT  ๋ฌธ๋ฒ•์œผ๋กœ ์ฐพ์€ ํ–‰๋“ค์„ ์ง‘์–ด๋„ฃ์–ด์ค€๋‹ค.
  • ์œ„์™€ ๊ฐ™์ด ์ž…๋ ฅํ•˜๋ฉด, ํ…Œ์ด๋ธ”๋ช…2 ์˜ ์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2์˜ ๋ฐ์ดํ„ฐ๋“ค์„ ํ…Œ์ด๋ธ”๋ช…1์˜ ์ปฌ๋Ÿผ๋ช…1, ์ปฌ๋Ÿผ๋ช…2 ๋กœ ๋ณต์‚ฌํ•ด์ค€๋‹ค.
  • SELECT ๋ฌธ๋ฒ• ๋’ค์— WHERE ๋ฌธ์ด๋‚˜ JOIN ๋ฌธ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค.

๐Ÿค SELECT INTO ๋ฌธ๋ฒ•์œผ๋กœ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜๊ธฐ

SELECT * INTO ์ƒˆ๋กœ์šดํ…Œ์ด๋ธ”๋ช… FROM ๊ธฐ์กดํ…Œ์ด๋ธ”๋ช… WHERE ์กฐ๊ฑด์‹
  • SELECT INTO ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•˜์—ฌ ํ…Œ์ด๋ธ”์„ ๋ณต์‚ฌํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•œ๋ฐ, ์ด ๊ฒฝ์šฐ๋Š” ํ…Œ์ด๋ธ”์„ ์ƒˆ๋กœ์šดํ…Œ์ด๋ธ”๋ช…์œผ๋กœ ์•„์˜ˆ ์ƒ์„ฑํ•ด์ค€๋‹ค.
// ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ
CREATE TABLE ์ƒˆ๋กœ์šดํ…Œ์ด๋ธ”๋ช… SELECT * FROM ๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…

// ๋‹ค๋ฅธ ํ…Œ์ด๋ธ” ๋ณต์‚ฌํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ž„์‹œ ํ…Œ์ด๋ธ” ์ƒ์„ฑํ•˜๊ธฐ
CREATE TEMPORARY TABLE ์ƒˆ๋กœ์šดํ…Œ์ด๋ธ”๋ช… SELECT * FROM ๊ธฐ์กดํ…Œ์ด๋ธ”๋ช…
  • ๋‹ค๋งŒ, MySQL ์—๋Š” ์ด๋Ÿฐ SELECT INTO ๋ฌธ๋ฒ•์ด ์—†์œผ๋ฏ€๋กœ ์œ„์™€ ๊ฐ™์ด CREATE ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.
728x90
๋ฐ˜์‘ํ˜•