--- id: sql-insert-into title: "SQL Insert Into" category: "Database" status: "draft" verification_status: "conceptual" canonical_id: "" aliases: ["SQL INSERT INTO Statement", "INSERT statement", "SQL μ‚½μž…"] duplicate_of: "" source_trust_level: "B" confidence_score: 0.9 created_at: 2026-07-04 updated_at: 2026-07-04 review_reason: "" merge_history: [] tags: ["sql", "database", "w3schools", "insert"] raw_sources: ["https://www.w3schools.com/sql/sql_insert.asp"] applied_in: [] github_commit: "" --- # [[SQL Insert Into]] ## 🎯 ν•œ 쀄 톡찰 (One-line insight) INSERT INTO adds new records to a table, either by specifying columns and matching values explicitly or by supplying values for every column in table order, and it supports inserting multiple rows in one statement. [S1] ## 🧠 핡심 κ°œλ… (Core concepts) - **INSERT INTO statement** β€” inserts new records into a table. [S1] - **Syntax 1 (explicit columns)** β€” `INSERT INTO table_name (column1, column2, column3, ...) VALUES (value1, value2, value3, ...);`. [S1] - **Syntax 2 (all columns, no names)** β€” `INSERT INTO table_name VALUES (value1, value2, value3, ...);`, valid only if values are supplied for every column in the exact column order. [S1] - **Partial-column insert** β€” specific columns can be targeted (e.g. `CustomerName, City, Country`); unspecified columns are left `null` (or auto-generated for identity columns). [S1] - **Multi-row insert** β€” a single INSERT INTO statement can insert several rows by comma-separating multiple `VALUES(...)` groups. [S1] ## 🧩 μΆ”μΆœλœ νŒ¨ν„΄ (Extracted patterns) - **Auto-increment omission** β€” when a column is an auto-increment primary key (e.g. `CustomerID`), it must NOT be given a value; the database generates it automatically. [S1] - **Column-order dependency** β€” Syntax 2's positional values must exactly match the table's column definition order, making it fragile to schema changes compared to Syntax 1. [S1] ## βš–οΈ 비ꡐ 및 선택 κΈ°μ€€ (Comparison & decision criteria) | ν•­λͺ© (Option) | μž₯점 | 단점 | μ–Έμ œ 선택 | |---|---|---|---| | **Syntax 1 (컬럼λͺ… λͺ…μ‹œ)** | 컬럼 μˆœμ„œμ— μ•ˆμ „ν•˜κ³  μ˜λ„κ°€ λͺ…확함, 일뢀 컬럼만 μ‚½μž… κ°€λŠ₯ | 타이핑이 더 κΉ€ | ν”„λ‘œλ•μ…˜ μ½”λ“œ, 일뢀 컬럼만 μ±„μšΈ λ•Œ | | **Syntax 2 (컬럼λͺ… μƒλž΅)** | 간결함 | ν…Œμ΄λΈ” μŠ€ν‚€λ§ˆκ°€ λ°”λ€Œλ©΄ κΉ¨μ§€κΈ° 쉬움, 전체 컬럼 값이 λ°˜λ“œμ‹œ ν•„μš” | λΉ λ₯Έ ν…ŒμŠ€νŠΈ/슀크립트, μŠ€ν‚€λ§ˆκ°€ 고정적일 λ•Œ | ## πŸ“– μ„ΈλΆ€ λ‚΄μš© (Details) - Insert a full new record by omitting column names (values must follow table column order): [S1] ```sql INSERT INTO Customers VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'); ``` Note: `CustomerID`λŠ” auto-increment ν•„λ“œμ΄λ―€λ‘œ 값을 μ§€μ •ν•˜μ§€ μ•Šμ•„λ„ μžλ™ μƒμ„±λœλ‹€. [S1] - Insert data only in specific columns (others become `null`): [S1] ```sql INSERT INTO Customers (CustomerName, City, Country) VALUES ('Cardinal', 'Stavanger', 'Norway'); ``` - Insert multiple rows in one statement by comma-separating value groups: [S1] ```sql INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'), ('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'), ('Tasty Tee', 'Finn Egan', 'Streetroad 19B', 'Liverpool', 'L1 0AA', 'UK'); ``` Note: 각 κ°’ 그룹은 μ‰Όν‘œ(,)둜 ꡬ뢄해야 ν•œλ‹€. [S1] ## βš–οΈ λͺ¨μˆœ 및 μ—…λ°μ΄νŠΈ (Contradictions & updates) μ†ŒμŠ€μ—μ„œ λͺ¨μˆœλ˜λŠ” μ •λ³΄λŠ” λ°œκ²¬λ˜μ§€ μ•ŠμŒ. ## πŸ› οΈ 적용 사둀 (Applied in summary) ν˜„μž¬ 발견된 μ‹€μ œ 적용 사둀가 μ—†μŠ΅λ‹ˆλ‹€ β€” INSERT INTOλŠ” 이후 SQL Insert Into Select(λ‹€λ₯Έ ν…Œμ΄λΈ”μ˜ 쑰회 κ²°κ³Όλ₯Ό μ‚½μž…) μ±•ν„°μ˜ μ„ ν–‰ κ°œλ…μ΄λ‹€. [S1] ## πŸ’» μ½”λ“œ νŒ¨ν„΄ (Code patterns) Insert full record, columns implied by table order (SQL): ```sql INSERT INTO Customers VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'); ``` Insert multiple rows in one statement (SQL): ```sql INSERT INTO Customers (CustomerName, ContactName, Address, City, PostalCode, Country) VALUES ('Cardinal', 'Tom B. Erichsen', 'Skagen 21', 'Stavanger', '4006', 'Norway'), ('Greasy Burger', 'Per Olsen', 'Gateveien 15', 'Sandnes', '4306', 'Norway'); ``` ## βœ… 검증 μƒνƒœ 및 신뒰도 - **μƒνƒœ:** draft - **검증 단계:** conceptual - **좜처 신뒰도:** B (W3Schools β€” widely used educational reference, not a primary standards body) - **μ‹ λ’° 점수:** 0.90 - **쀑볡 검사 κ²°κ³Ό:** μ‹ κ·œ 생성 (New discovery) ## πŸ”— 지식 κ·Έλž˜ν”„ (Knowledge Graph) - **μƒμœ„/루트:** [[SQL Tutorial]] - **κ΄€λ ¨ κ°œλ…:** [[SQL Null Values]], [[SQL Update]], [[SQL Insert Into Select]] - **μ°Έμ‘° λ§₯락:** 데이터 생성(Create)의 κΈ°λ³Έ λ¬Έμ„œ β€” Update/Delete와 ν•¨κ»˜ CRUD의 ν•œ 좕을 λ‹΄λ‹Ή. ## πŸ“š 좜처 (Sources) - [S1] W3Schools β€” SQL INSERT INTO Statement β€” https://www.w3schools.com/sql/sql_insert.asp ## πŸ“ λ³€κ²½ 이λ ₯ (Change history) - 2026-07-04: Initial draft synthesized from the W3Schools "SQL INSERT INTO Statement" page (Astra wiki-curation, P-Reinforce v3.1 format).