คำสั่งนี้จะเพิ่มหนึ่งหรือหลายระเบียนลงในตาราง (ดำเนินการแบบสอบถามแบบผนวก)
ขอเพิ่มหลายระเบียน:
ใส่ลงใน สุดท้าย_วัตถุ [(สนาม1[, สนาม2[, ...]])]
เลือก [ แหล่งที่มา.]สนาม1[, สนาม2[, ...]
จาก ตาราง_การแสดงออก
ขอเพิ่มหนึ่งบันทึก:
ใส่ลงใน สุดท้าย_วัตถุ [(สนาม1[, สนาม2[, ...]])]
ค่านิยม ( สนาม1[, สนาม2[, ...])
คำสั่ง INSERT INTO ประกอบด้วยองค์ประกอบต่อไปนี้:
ส่วนหนึ่ง | คำอธิบาย |
---|---|
สุดท้าย_วัตถุ |
ชื่อของตารางหรือคิวรีที่มีการเพิ่มระเบียน |
สนาม1, สนาม2 |
หลังจากการโต้เถียง สุดท้าย_วัตถุ- ชื่อของฟิลด์ที่จะเพิ่มข้อมูล หลังจากการโต้แย้ง แหล่งที่มา- ชื่อของฟิลด์ที่ดึงข้อมูลออกมา |
ภายนอก_ฐานข้อมูล |
เส้นทางไปยังฐานข้อมูลภายนอก สำหรับคำอธิบายของพาธ โปรดดูบทความในส่วนคำสั่ง IN |
แหล่งที่มา |
ชื่อของตารางหรือคิวรีที่ใช้คัดลอกเรกคอร์ด |
ตาราง_การแสดงออก |
ชื่อตารางตั้งแต่หนึ่งชื่อขึ้นไปที่คุณต้องการดึงข้อมูลระเบียน อาร์กิวเมนต์นี้อาจเป็นชื่อของแต่ละตาราง นิพจน์ผลลัพธ์ที่สร้างขึ้นโดยใช้ INNER JOIN, LEFT JOIN หรือ RIGHT JOIN หรือแบบสอบถามที่เก็บไว้ |
ค่า1, ค่า2 |
ค่าที่จะถูกเพิ่มลงในฟิลด์เฉพาะของเรกคอร์ดใหม่ แต่ละค่าจะถูกแทรกลงในฟิลด์ที่สอดคล้องกับตำแหน่งในรายการ: ค่า1เพิ่มไปยัง สนาม1รายการใหม่ ค่า2- วี สนาม2เป็นต้น คุณต้องคั่นค่าด้วยเครื่องหมายจุลภาคและใส่ช่องข้อความด้วยเครื่องหมายคำพูด (" ") |
คำสั่ง INSERT INTO สามารถเพิ่มระเบียนเดียวลงในตารางโดยใช้ไวยากรณ์ด้านบน ในกรณีนี้ คุณจะต้องระบุชื่อและค่าสำหรับแต่ละฟิลด์ในเรกคอร์ด คุณต้องระบุฟิลด์ทั้งหมดในบันทึกที่กำหนดค่าและค่าที่เกี่ยวข้อง หากคุณไม่ได้ระบุค่าฟิลด์ ค่าดังกล่าวจะถูกกำหนดค่าเริ่มต้นหรือ NULL บันทึกจะถูกเพิ่มที่ส่วนท้ายของตาราง
คำสั่ง INSERT INTO ยังสามารถใช้เพื่อเพิ่มชุดของระเบียนจากตารางหรือแบบสอบถามอื่นโดยใช้ส่วนคำสั่ง SELECT... FROM ดังที่แสดงด้านบน (ดูไวยากรณ์แบบสอบถามสำหรับการเพิ่มหลายระเบียน) ในกรณีนี้ ส่วนคำสั่ง SELECT จะระบุฟิลด์ที่จะเพิ่มไปยังส่วนที่ระบุ สุดท้าย_วัตถุ.
แหล่งที่มาหรือ สุดท้าย_วัตถุอาจเป็นตารางหรือแบบสอบถามก็ได้ เมื่อได้รับแบบสอบถาม กลไกจัดการฐานข้อมูล Microsoft Access จะเพิ่มระเบียนลงในตารางทั้งหมดที่ส่งคืน
การใช้คำสั่ง INSERT INTO เป็นทางเลือก หากระบุไว้ จะต้องนำหน้าคำสั่ง SELECT
หากตารางเป้าหมายมีคีย์หลัก ตรวจสอบให้แน่ใจว่าค่าที่คุณเพิ่มลงในฟิลด์คีย์หลักอย่างน้อยหนึ่งรายการไม่ซ้ำกันและแตกต่างจาก โมฆะ; มิฉะนั้นรายการจะไม่ถูกเพิ่ม
หากมีการเพิ่มระเบียนลงในตารางที่มีเขตข้อมูลตัวนับและคุณต้องการกำหนดหมายเลขใหม่ ไม่ต้องรวมเขตข้อมูลตัวนับในแบบสอบถาม รวมฟิลด์ตัวนับในแบบสอบถามหากคุณต้องการรักษาค่าดั้งเดิมจากฟิลด์
คุณสามารถเพิ่มบันทึกลงในตารางในฐานข้อมูลอื่นได้โดยใช้ส่วนคำสั่ง IN
หากต้องการสร้างตาราง ให้ใช้คำสั่ง SELECT... INTO เพื่อสอบถามเพื่อสร้างตาราง
ก่อนที่คุณจะเรียกใช้แบบสอบถามเพิ่ม ให้ใช้แบบสอบถามแบบใช้เลือกข้อมูลที่มีเกณฑ์การเลือกเดียวกันเพื่อใช้ผลลัพธ์เพื่อกำหนดว่าระเบียนใดจะถูกเพิ่ม
แบบสอบถามแบบผนวกจะคัดลอกระเบียนจากตารางหนึ่งตารางขึ้นไปไปยังอีกตารางหนึ่ง ในกรณีนี้ ตารางที่มีบันทึกที่เพิ่มเข้ามายังคงไม่เปลี่ยนแปลง
แทนที่จะเพิ่มระเบียนจากตารางอื่น คุณสามารถตั้งค่าของแต่ละฟิลด์ในระเบียนใหม่แยกต่างหากได้โดยใช้ส่วนคำสั่ง VALUES หากละเว้นรายการฟิลด์ ส่วนคำสั่ง VALUES จะต้องรวมค่าที่สอดคล้องกันสำหรับแต่ละฟิลด์ตาราง มิฉะนั้นการดำเนินการ INSERT จะล้มเหลว ใช้คำสั่ง INSERT INTO ร่วมกับส่วนคำสั่ง VALUES สำหรับแต่ละระเบียนเพิ่มเติมที่คุณต้องการสร้าง
นอกเหนือจากคำสั่ง SELECT ที่กล่าวถึงก่อนหน้านี้ Data Manipulation Language (DML) ยังมีคำสั่งอื่นๆ อีกสามคำสั่ง: INSERT, UPDATE และ DELETE เช่นเดียวกับคำสั่ง SELECT คำสั่งทั้งสามนี้ทำงานบนตารางหรือมุมมอง บทความนี้กล่าวถึงคำสั่ง INSERT และอีกสองคำสั่งจะกล่าวถึงในบทความถัดไป
คำสั่ง INSERTแทรกแถว (หรือส่วนของแถว) ลงในตาราง คำสั่งนี้มีสองรูปแบบที่แตกต่างกัน:
INSERT tab_name [(col_list)] ค่าเริ่มต้น | ค่า (( DEFAULT | NULL | expression ) [ ,...n]) INSERT INTO tab_name | view_name [(col_list)] (select_statement |Execute_statement) แบบแผนไวยากรณ์
รูปแบบแรกของคำสั่งช่วยให้คุณสามารถแทรกหนึ่งแถว (หรือบางส่วน) ลงในตารางได้ และรูปแบบที่สองของคำสั่ง INSERT ช่วยให้คุณสามารถแทรกชุดผลลัพธ์ของคำสั่ง SELECT หรือขั้นตอนการจัดเก็บที่ดำเนินการโดยคำสั่ง EXECUTE ลงในตารางได้ ขั้นตอนที่เก็บไว้จะต้องส่งคืนข้อมูลที่จะแทรกลงในตาราง เมื่อใช้กับคำสั่ง INSERT คำสั่ง SELECT สามารถเลือกค่าจากตารางอื่นหรือตารางเดียวกันกับที่ข้อมูลถูกแทรกเข้าไปได้ ตราบใดที่ชนิดข้อมูลของคอลัมน์ที่เกี่ยวข้องเข้ากันได้
สำหรับทั้งสองแบบฟอร์ม ประเภทข้อมูลของแต่ละค่าที่แทรกจะต้องเข้ากันได้กับประเภทข้อมูลของคอลัมน์ตารางที่เกี่ยวข้อง สตริงและข้อมูลชั่วคราวทั้งหมดจะต้องอยู่ในเครื่องหมายคำพูด ค่าตัวเลขไม่จำเป็นต้องอยู่ในเครื่องหมายคำพูด
สำหรับคำสั่ง INSERT ทั้งสองรูปแบบ การระบุรายการคอลัมน์อย่างชัดเจนเป็นทางเลือก การไม่แสดงรายการคอลัมน์จะเหมือนกับการระบุคอลัมน์ทั้งหมดในตาราง
พารามิเตอร์ค่าเริ่มต้นแทรกค่าเริ่มต้นให้กับทุกคอลัมน์ คอลัมน์ที่มีประเภทข้อมูล TIMESTAMP หรือคุณสมบัติ IDENTITY จะถูกแทรกโดยค่าเริ่มต้นด้วยค่าที่ระบบสร้างขึ้นโดยอัตโนมัติ สำหรับคอลัมน์ของประเภทข้อมูลอื่น ค่าเริ่มต้นที่ไม่ใช่ค่าว่างที่เกี่ยวข้องจะถูกแทรก หากมี หรือมิฉะนั้นจะเป็น NULL หากคอลัมน์ไม่อนุญาตให้มีค่า Null และไม่มีการกำหนดค่าเริ่มต้น คำสั่ง INSERT จะล้มเหลวและข้อความจะปรากฏขึ้น
ตัวอย่างด้านล่างแทรกแถวลงในตารางพนักงานในฐานข้อมูล SampleDb ซึ่งสาธิตการใช้คำสั่ง INSERT เพื่อแทรกข้อมูลจำนวนเล็กน้อยลงในฐานข้อมูล:
ใช้ SampleDb; แทรกลงในค่านิยมของพนักงาน (34990, "Andrey", "Batonov", "d1"); แทรกลงในค่านิยมของพนักงาน (38640, "Alexey", "Vasin", "d3");
มีสองวิธีในการแทรกค่าลงในแถวใหม่ คำสั่ง INSERT ในตัวอย่างด้านล่างใช้คีย์เวิร์ด NULL อย่างชัดเจนและแทรกค่า NULL ลงในคอลัมน์ที่เกี่ยวข้อง:
ใช้ SampleDb; แทรกลงในค่านิยมของพนักงาน (34991, "Andrey", "Batonov", NULL);
หากต้องการแทรกค่าลงในคอลัมน์บางคอลัมน์ (แต่ไม่ใช่ทั้งหมด) ของตาราง คุณจะต้องระบุคอลัมน์เหล่านั้นอย่างชัดเจน คอลัมน์ที่ไม่ระบุต้องอนุญาตค่า NULL หรือมีการกำหนดค่าเริ่มต้น
ใช้ SampleDb; INSERT INTO Employee(Id, FirstName, LastName) VALUES (34992, "Andrey", "Batonov");
สองตัวอย่างก่อนหน้านี้เทียบเท่ากัน ในตารางพนักงาน คอลัมน์เดียวที่อนุญาตให้มีค่า NULL คือคอลัมน์ DepartmentNumber และคอลัมน์อื่นๆ ทั้งหมดถูกปิดใช้งานโดยส่วนคำสั่ง NOT NULL ในคำสั่ง CREATE TABLE
ลำดับของค่าใน ข้อเสนอค่านิยมคำสั่ง INSERT อาจแตกต่างจากลำดับที่ระบุในคำสั่ง CREATE TABLE ในกรณีนี้ ลำดับจะต้องตรงกับลำดับที่แสดงคอลัมน์ที่เกี่ยวข้องในรายการคอลัมน์ ด้านล่างนี้เป็นตัวอย่างของการแทรกข้อมูลในลำดับที่แตกต่างจากต้นฉบับ:
ใช้ SampleDb; INSERT INTO Employee(หมายเลขแผนก, นามสกุล, Id, ชื่อ) ค่า ("d1", "Batonov", 34993, "Andrey");
รูปแบบที่สองของคำสั่ง INSERT จะแทรกแถวตั้งแต่หนึ่งแถวขึ้นไปที่เลือกโดยแบบสอบถามย่อยลงในตาราง ตัวอย่างด้านล่างแสดงวิธีการแทรกแถวลงในตารางโดยใช้รูปแบบที่สองของคำสั่ง INSERT ในกรณีนี้ แบบสอบถามจะดำเนินการเพื่อเลือกหมายเลขและชื่อของแผนกที่ตั้งอยู่ในมอสโก และชุดผลลัพธ์ผลลัพธ์จะถูกโหลดลงในตารางใหม่ที่สร้างขึ้นก่อนหน้านี้
ตาราง MoscowDepartment ใหม่ที่สร้างขึ้นในตัวอย่างด้านบนมีคอลัมน์เดียวกันกับตาราง Department ที่มีอยู่ ยกเว้นคอลัมน์ Location ที่หายไป แบบสอบถามย่อยในคำสั่ง INSERT จะเลือกแถวทั้งหมดในตาราง Department ซึ่งค่าคอลัมน์ Location คือ "Moscow" ซึ่งจะถูกแทรกลงในตารางใหม่ที่สร้างขึ้นที่จุดเริ่มต้นของแบบสอบถาม
ตัวอย่างด้านล่างแสดงอีกวิธีหนึ่งในการแทรกแถวลงในตารางโดยใช้รูปแบบที่สองของคำสั่ง INSERT ในกรณีนี้ แบบสอบถามจะถูกดำเนินการเพื่อเลือกหมายเลขบุคลากร หมายเลขโครงการ และวันที่เริ่มต้นโครงการสำหรับพนักงานทุกคนที่มีตำแหน่ง “ผู้จัดการ” ที่ทำงานในโครงการ p2 จากนั้นโหลดผลลัพธ์ผลลัพธ์ที่ตั้งค่าไว้ในตารางใหม่ที่สร้างขึ้นที่จุดเริ่มต้นของ แบบสอบถาม:
ใช้ SampleDb; สร้างทีมผู้จัดการตาราง (EmpId INT ไม่ใช่ NULL, ProjectNumber CHAR (4) ไม่ใช่ NULL, EnterDate DATE); แทรกลงในทีมผู้จัดการ (EmpId, ProjectNumber, EnterDate) เลือก EmpId, ProjectNumber, EnterDate จาก Works_on โดยที่งาน = "ผู้จัดการ";
ก่อนที่จะแทรกแถวโดยใช้คำสั่ง INSERT ตาราง MoscowDepartment และ ManagerTeam (ในตัวอย่างด้านบน) นั้นว่างเปล่า หากมีตารางอยู่แล้วและมีแถวที่มีข้อมูล แถวใหม่จะถูกเพิ่มเข้าไป
สวัสดีทุกคน! บทความนี้จะหารือเกี่ยวกับวิธีที่คุณสามารถทำได้ เพิ่มข้อมูลลงในตารางใน Microsoft SQL Server หากคุณคุ้นเคยกับภาษา T-SQL บ้างแล้วคุณอาจรู้ว่าตอนนี้เราจะพูดถึงคำสั่ง INSERT รวมถึงวิธีการใช้เพื่อเพิ่มข้อมูลลงในตาราง
มาเริ่มกันตามปกติด้วยทฤษฎีเล็กน้อย
แทรกเป็นคำสั่ง T-SQL ที่ออกแบบมาเพื่อเพิ่มข้อมูลลงในตาราง เช่น การสร้างบันทึกใหม่ คำสั่งนี้สามารถใช้ได้ทั้งในการเพิ่มแถวเดียวลงในตารางและเพื่อแทรกข้อมูลเป็นกลุ่ม คำสั่ง INSERT ต้องได้รับอนุญาตในการแทรกข้อมูล ( แทรก) ไปยังตารางเป้าหมาย
มีหลายวิธีในการใช้คำสั่ง INSERT กับข้อมูลที่ต้องการแทรก:
ไวยากรณ์แบบง่าย
แทรก [ตาราง] ( รายการคอลัมน์...) ค่านิยม ( รายการค่า...) หรือเลือก คำขอตัวอย่างหรือดำเนินการ ขั้นตอน
นี่คือลักษณะไวยากรณ์แบบง่ายของคำสั่ง INSERT INTO โดยคร่าวๆ ในกรณีส่วนใหญ่ คุณจะเพิ่มระเบียนใหม่ลงในตารางด้วยวิธีต่อไปนี้
ไม่จำเป็นต้องเขียนรายการคอลัมน์ที่คุณจะแทรกข้อมูล ในกรณีนี้ลำดับจะถูกกำหนดตามลำดับที่แท้จริงของคอลัมน์ในตาราง คุณต้องจำลำดับนี้ไว้เมื่อคุณระบุค่าที่จะแทรกหรือเขียนแบบสอบถามเพื่อเลือก โดยส่วนตัวแล้ว ฉันขอแนะนำให้คุณระบุรายการคอลัมน์ที่คุณวางแผนจะเพิ่มข้อมูลเข้าไป
คุณควรจำไว้ว่ารายการคอลัมน์และรายการค่าตามลำดับจะต้องมีสิ่งที่เรียกว่าคอลัมน์ที่จำเป็น ซึ่งคือคอลัมน์ที่ไม่สามารถมีค่า NULL ได้ หากคุณไม่ได้ระบุและคอลัมน์ไม่มีค่าเริ่มต้น จะเกิดข้อผิดพลาดขึ้น
ฉันอยากจะทราบด้วยว่าประเภทข้อมูลของค่าที่คุณจะแทรกจะต้องตรงกับประเภทข้อมูลของคอลัมน์ที่จะแทรกค่านี้หรืออย่างน้อยก็รองรับการแปลงโดยนัย แต่ฉันแนะนำให้คุณควบคุมประเภทข้อมูล ( รูปแบบ) ค่าทั้งในรายการค่าและในแบบสอบถาม SELECT
ทฤษฎีพอแล้ว เรามาฝึกฝนกันต่อ
ในการเพิ่มข้อมูลลงในตาราง เราจำเป็นต้องมีตารางเอง ดังนั้นเรามาสร้างตารางขึ้นมาและลองเพิ่มระเบียนลงไปกันดีกว่า
บันทึก! ตัวอย่างทั้งหมดจะถูกดำเนินการใน ไมโครซอฟต์ SQL Server 2016 เอ็กซ์เพรส.
สร้างตาราง TestTable (ข้อมูลประจำตัว (1,1) ไม่เป็นโมฆะ (100) ไม่เป็นโมฆะ ไม่เป็นโมฆะ)
ตารางทดสอบของเราจะมีรายการผลิตภัณฑ์พร้อมราคา
นอกจากนี้ในตัวอย่าง เราจะใช้ขั้นตอนที่ส่งคืนค่าตารางเพื่อเพิ่มข้อมูลลงในตาราง ดังนั้นเรามาสร้างขั้นตอนนั้นด้วย
สร้างขั้นตอน TestProcedure AS BEGIN เลือกชื่อผลิตภัณฑ์, ราคาจาก TestTable END
ตัวอย่างเช่น จะส่งกลับข้อมูลจากตาราง TestTable ที่สร้างขึ้นใหม่
บันทึก!
ตามที่คุณเข้าใจ การอ่านเนื้อหานี้แสดงถึงการมีความรู้เกี่ยวกับภาษา T-SQL อยู่บ้าง ดังนั้นหากคุณมีบางอย่างไม่ชัดเจน ฉันขอแนะนำให้คุณทำความคุ้นเคยกับเนื้อหาต่อไปนี้:
ขั้นแรกให้ลองเพิ่มหนึ่งระเบียนแล้วดูผลลัพธ์ทันที เช่น มาเขียนคำขอตัวอย่างกัน
แทรกลงในค่า TestTable (ชื่อผลิตภัณฑ์, ราคา) ("คอมพิวเตอร์", 100) GO SELECT * FROM TestTable
คุณจะเห็นว่าหลังจากชื่อตารางเราแสดงรายการชื่อของคอลัมน์ที่เราจะเพิ่มข้อมูลโดยคั่นด้วยเครื่องหมายจุลภาคจากนั้นเราระบุคำหลัก ค่านิยมและในวงเล็บในลำดับเดียวกันโดยคั่นด้วยลูกน้ำเราเขียนค่าที่เราต้องการแทรก
หลังจากคำสั่ง INSERT ฉันเขียนคำสั่ง SELECT และคั่นด้วยคำสั่ง GO
ตอนนี้ลองจินตนาการว่าเราต้องเพิ่มสองสามบรรทัด เราจะเขียนคำขอต่อไปนี้สำหรับสิ่งนี้
INSERT INTO TestTable(ProductName, Price) VALUES ("คอมพิวเตอร์", 100), ("คีย์บอร์ด", 20), ("จอภาพ", 50) GO SELECT * FROM TestTable
บ่อยครั้งที่มีความจำเป็นต้องเพิ่มข้อมูลจำนวนมากลงในตาราง ตัวอย่างเช่น โดยอิงตามแบบสอบถามแบบใช้เลือกข้อมูล เช่น เลือก. ในการดำเนินการนี้ แทนที่จะระบุ VALUES เราเพียงแค่ต้องระบุคำขอ
แทรกลงในตารางทดสอบ(ชื่อผลิตภัณฑ์, ราคา) เลือกชื่อผลิตภัณฑ์, ราคาจากตารางทดสอบ WHERE Id >
ในตัวอย่างนี้ เราเขียนแบบสอบถาม SELECT ที่ส่งคืนข้อมูลจากตาราง TestTable แต่ไม่ใช่ทั้งหมด แต่เฉพาะรายการที่มี ID มากกว่า 2 เท่านั้น และผลลัพธ์ก็ถูกแทรกลงในตาราง TestTable เดียวกัน
เป็นตัวอย่างวิธีที่คุณสามารถเพิ่มระเบียนลงในตารางโดยไม่ต้องระบุรายการคอลัมน์ เรามาเขียนแบบสอบถามการแทรกข้อมูลอื่นที่จะทำสิ่งเดียวกันกับแบบสอบถามด้านบนทุกประการ เพียงแต่จะไม่แสดงรายการคอลัมน์ที่จะแทรก
แทรกลงใน TestTable เลือกชื่อผลิตภัณฑ์ ราคาจาก TestTable WHERE Id > 2 GO SELECT * FROM TestTable
ในกรณีนี้ เราแน่ใจว่าในตาราง TestTable คอลัมน์แรกคือ ProductName และคอลัมน์ที่สองคือ Price ดังนั้นเราจึงสามารถเขียนคอลัมน์ดังกล่าวได้ แต่ในทางปฏิบัติ เป็นการดีกว่าที่จะระบุรายการคอลัมน์
หากคุณสังเกตเห็นว่าในตัวอย่างทั้งหมดฉันไม่ได้ระบุคอลัมน์ Id แต่เรามีแล้ว ไม่มีข้อผิดพลาดเกิดขึ้น เนื่องจากคอลัมน์นี้มีคุณสมบัติ IDENTITY จึงสร้างตัวระบุโดยอัตโนมัติ ดังนั้นการแทรกข้อมูลลงในคอลัมน์ดังกล่าวจึงไม่สามารถทำได้
ตอนนี้เรามาแทรกข้อมูลลงในตารางที่กระบวนงานที่เก็บไว้จะกลับมาหาเรา ความหมายในที่นี้จะเหมือนกัน แทนที่จะเป็น VALUES และแทนที่จะเป็นคำขอ เราระบุถึงการเรียกกระบวนการ แต่ตามที่คุณเข้าใจ ลำดับและจำนวนคอลัมน์ที่ส่งคืนโดยโพรซีเดอร์จะต้องตรงกับรายการคอลัมน์ที่จะแทรกอย่างเคร่งครัด ( แม้ว่าไม่ได้ระบุรายการคอลัมน์ก็ตาม).
INSERT INTO TestTable(ชื่อผลิตภัณฑ์, ราคา) EXEC TestProcedure GO SELECT * FROM TestTable
ฉันหวังว่าเนื้อหานี้จะช่วยให้คุณเข้าใจคำแนะนำได้ ใส่ลงในและนั่นคือทั้งหมดที่ฉันมีตอนนี้!
อัปเดตครั้งล่าสุด: 07/13/2017
หากต้องการเพิ่มข้อมูล ให้ใช้คำสั่ง INSERT ซึ่งมีไวยากรณ์ที่เป็นทางการดังต่อไปนี้:
INSERT table_name [(column_list)] ค่า (value1, value2, ... valueN)
อันดับแรกคือนิพจน์ INSERT INTO จากนั้นในวงเล็บคุณสามารถระบุรายการคอลัมน์ที่คั่นด้วยเครื่องหมายจุลภาคที่ควรเพิ่มข้อมูลและในตอนท้ายหลังจากคำว่า VALUES ค่าที่จะเพิ่มสำหรับคอลัมน์จะแสดงรายการอยู่ใน วงเล็บ
ตัวอย่างเช่น สมมติว่าฐานข้อมูลต่อไปนี้ถูกสร้างขึ้นก่อนหน้านี้:
สร้างผลิตภัณฑ์ฐานข้อมูลdb; ไปใช้ผลิตภัณฑ์db; สร้างผลิตภัณฑ์ตาราง (Id INT IDENTITY PRIMARY KEY, ProductName NVARCHAR(30) NOT NULL, ผู้ผลิต NVARCHAR(20) NOT NULL, ProductCount INT DEFAULT 0, Price MONEY NOT NULL)
มาเพิ่มหนึ่งบรรทัดโดยใช้คำสั่ง INSERT:
แทรกค่าผลิตภัณฑ์ ("iPhone 7", "Apple", 5, 52000)
หลังจากดำเนินการสำเร็จใน SQL Server Management Studio ข้อความ "1 แถวที่ได้รับผลกระทบ" ควรปรากฏในฟิลด์ข้อความ:
ควรพิจารณาว่าค่าสำหรับคอลัมน์ในวงเล็บหลังจากคีย์เวิร์ด VALUES ถูกส่งไปตามลำดับที่ประกาศไว้ ตัวอย่างเช่น ในคำสั่ง CREATE TABLE ด้านบน คุณจะเห็นว่าคอลัมน์แรกคือ Id แต่เนื่องจากมีการระบุแอตทริบิวต์ IDENTITY ค่าของคอลัมน์นี้จะถูกสร้างขึ้นโดยอัตโนมัติและสามารถละเว้นได้ คอลัมน์ที่สองแสดงถึง ProductName ดังนั้นค่าแรกซึ่งเป็นสตริง "iPhone 7" จะถูกส่งผ่านไปยังคอลัมน์นั้น ค่าที่สอง - สตริง "Apple" จะถูกส่งไปยังคอลัมน์ที่สามของผู้ผลิตเป็นต้น นั่นคือค่าจะถูกส่งผ่านไปยังคอลัมน์ดังนี้:
ชื่อสินค้า: "ไอโฟน 7"
ผู้ผลิต: "แอปเปิล"
นอกจากนี้ เมื่อป้อนค่า คุณสามารถระบุคอลัมน์ทันทีที่จะเพิ่มค่าได้:
INSERT INTO Products (ชื่อผลิตภัณฑ์, ราคา, ผู้ผลิต) ค่า ("iPhone 6S", 41000, "Apple")
ที่นี่ค่าจะถูกระบุเพียงสามคอลัมน์เท่านั้น ยิ่งกว่านั้นตอนนี้ค่าจะถูกส่งตามลำดับคอลัมน์:
ชื่อสินค้า: "ไอโฟน 6S"
ผู้ผลิต: "แอปเปิล"
สำหรับคอลัมน์ที่ไม่ได้ระบุ (ในกรณีนี้คือ ProductCount) ค่าเริ่มต้นจะถูกเพิ่มหากระบุแอตทริบิวต์ DEFAULT หรือค่า NULL อย่างไรก็ตาม คอลัมน์ที่ไม่ได้ระบุจะต้องเป็นค่าว่างหรือมีแอตทริบิวต์ DEFAULT
เรายังสามารถเพิ่มหลายบรรทัดพร้อมกันได้:
ใส่มูลค่าผลิตภัณฑ์ ("iPhone 6", "Apple", 3, 36000), ("Galaxy S8", "Samsung", 2, 46000), ("Galaxy S8 Plus", "Samsung", 1, 56000)
ในกรณีนี้จะมีการเพิ่มสามแถวลงในตาราง
นอกจากนี้ เมื่อเพิ่ม เราสามารถระบุได้ว่าคอลัมน์ควรมีค่าเริ่มต้นโดยใช้คีย์เวิร์ด DEFAULT หรือค่า NULL:
แทรกลงในผลิตภัณฑ์ (ชื่อผลิตภัณฑ์, ผู้ผลิต, จำนวนผลิตภัณฑ์, ราคา) ค่า ("Mi6", "Xiaomi", ค่าเริ่มต้น, 28000)
ในกรณีนี้ จะใช้ค่าเริ่มต้นสำหรับคอลัมน์ ProductCount (หากตั้งค่าไว้ หากไม่ได้ตั้งค่าไว้ จะเป็น NULL)
หากคอลัมน์ทั้งหมดมีแอตทริบิวต์ DEFAULT ที่ระบุค่าเริ่มต้นหรือเป็นค่าว่าง คุณสามารถแทรกค่าเริ่มต้นสำหรับคอลัมน์ทั้งหมดได้:
แทรกลงในค่าเริ่มต้นของผลิตภัณฑ์
แต่ถ้าเรารับตารางผลิตภัณฑ์คำสั่งดังกล่าวจะล้มเหลวโดยมีข้อผิดพลาดเนื่องจากหลายฟิลด์ไม่มีแอตทริบิวต์ DEFAULT และในเวลาเดียวกันไม่อนุญาตให้มีค่า NULL