Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> SQL Server

คำสั่ง INSERT ใน SQL Server

คำสั่ง INSERT ใน SQL Server (Transact-SQL) ใช้เพื่อแทรกระเบียนอย่างน้อยหนึ่งรายการลงในตาราง

INSERT ไวยากรณ์คำสั่ง

แทรกบันทึก

ในรูปแบบที่ง่ายที่สุด ไวยากรณ์คำสั่ง INSERT จะแทรกระเบียนที่มีคีย์เวิร์ด VALUES

  INSERT INTO  bang 
(cot1, cot2, …)
VALUES
(bieuthuc1, bieuthuc2, …),
(bieuthuc1, bieuthuc2, …),
. ;

ไวยากรณ์แบบเต็มของคำสั่ง INSERT แทรกระเบียนโดยใช้คีย์เวิร์ด VALUES

  INSERT INT O bang 
(cot1, cot2, …)
VALUES
( DEFAULT | NULL | bieuthuc1,
DEFAULT | NULL | bieuthuc2,

);

หรือรูปแบบการแทรกเรกคอร์ดโดยใช้คีย์เวิร์ด DEFAULT VALUES

  INSERT INT O bang 
(cot1, cot2, …)
DEFAULT VALU ES;

แทรกหลายระเบียน

ในรูปแบบที่ง่ายที่สุด ไวยากรณ์สำหรับการแทรกหลายระเบียนคือการเลือกย่อย

  INSERT I NTO bang 
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieuk ien];

ไวยากรณ์แบบเต็มสำหรับการแทรกหลายโต๊ะทำงานด้วยการเลือกย่อย

  INSERT [TOP ( tri_dau) [PERCENT] ] 
INTO bang
(cot1, cot2, …)
SELECT bieuthuc1, bieuthuc2, …
FROM bang_nguon
[WHERE dieukien];

ชื่อตัวแปรหรือค่าตัวแปร

ระบุ

ตารางสำหรับแทรกเรคคอร์ด

cot1, cot2

คอลัมน์ในตารางเพื่อแทรกค่า

bieuthuc1, bieuthuc2

ค่าที่จะระบุในคอลัมน์ในตาราง cot1 จะได้รับการกำหนดค่าของ bieuthuc1 cot2 จะได้รับการกำหนดค่าของ bieuthuc2

TOP (giatri_dau)

ตัวเลือก หากเจาะจง มันจะแทรกค่าแรกของแถวตาม giatri_dau ตัวอย่างเช่น TOP (10) จะแทรก 10 แถวแรกจากชุดผลลัพธ์

PERCENT

ตัวเลือก หากระบุไว้ แถวแรกจะอิงตามเปอร์เซ็นต์ของ giatri_dau ของชุดผลลัพธ์ ตัวอย่างเช่น TOP (10) PERCENT จะแทรก 10% ของค่าแรกในชุดผลลัพธ์

bang_nguon

ซอร์สตาราง (ตารางต้นฉบับ) เพื่อแทรกข้อมูลจากตารางอื่น

WHERE dieukien

ตัวเลือก ตรงตามเงื่อนไขการส่งเพื่อแทรกบันทึก

หมายเหตุ

  1. เมื่อแทรกระเบียนลงในตารางด้วยคำสั่ง INSERT คุณต้องระบุค่าสำหรับคอลัมน์ NOT NULL
  2. คุณสามารถลบคอลัมน์ออกจากคำสั่ง INSERT ได้หากคอลัมน์นั้นอนุญาตค่า NULL

ตัวอย่างเช่น - ใช้คำหลัก VALUES

  INSERT INT O nhanvien 
(nhanvien_id, ten, ho)
VALUE
(10, 'Anderson', 'S arah');

คำสั่ง INSERT นี้จะส่งผลให้มีการแทรก 1 ระเบียนลงในตาราง บันทึกนี้ต้องมี nhanvien_id เท่ากับ 10 พวกเขาคือ Anderson และชื่อของพวกเขาคือ Sarah

ไวยากรณ์นี้สามารถใช้เพื่อแทรกมากกว่า 1 ระเบียนในแต่ละครั้ง เช่น:

  INSERT INTO anvien 
(nhanvien_id, ho, ten)
VALUES
(19, 'Anderson', 'Sarah'),
(11, 'Johnson', 'Dale') ;

ตัวอย่างเช่น คำสั่ง INSERT ด้านบนแสดงให้เห็นว่าเป็นไปได้ที่จะแทรกระเบียนที่มีคีย์เวิร์ด VALUES มากกว่า 1 รายการ ในตัวอย่างนี้ มีการแทรก 2 ระเบียนลงในตาราง เร็กคอร์ดแรกมี 10 นาที พวกเขาคือ Anderson และชื่อของพวกเขาคือ Sarah บันทึกที่สองมี nhanvien_id คือ 11 พวกเขาคือ Johnson และชื่อคือ Dale

คำสั่งข้างต้นเทียบเท่ากับคำสั่ง INSERT ด้านล่าง

  INSERT INTO anvien 
(nhanvien_id, ho, ten)
VALUES
(10, 'Anderson', 'Sa rah');
  INSERT INTO anvien 
(nhanvien_id, ho, ten)
VALUES
(11, 'Johnson', 'Dal e');

ตัวอย่างเช่น - ใช้คำหลัก DEFAULT VALUES

  INSERT IN TO nhanvien 
(nhanvien_id, ho, ten)
DEFAULT VA LUES;

คำสั่ง INSERT นี้จะแทรกระเบียนลงในตาราง ระเบียนใหม่จะถูกสร้างขึ้นโดยค่าเริ่มต้นสำหรับช่องข้อมูลรหัสพนักงาน ครอบครัว และชื่อ

ตัวอย่างเช่น - ใช้คำสั่ง SELECT

เป็นไปได้ที่จะสร้างคำสั่ง INSERT ที่ซับซ้อนยิ่งขึ้นด้วยคำสั่ง SELECT ดังที่แสดงด้านล่าง

  INSERT INTO da nhba 
(danhba_id, ho, ten)
SELECT nhanvien_id, ho, ten
FROM nhanvien
WHERE nhanvien_id <= 100;

การวางคำสั่ง SELECT ไว้ในคำสั่ง INSERT จะช่วยให้คุณเพิ่มการแทรกได้เร็วขึ้น

ด้วยการแทรกประเภทนี้ คุณอาจต้องการตรวจสอบจำนวนแถวที่จะแทรก กำหนดจำนวนแถวที่จะแทรกโดยใช้คำสั่ง SELECT ก่อนการแทรก

พี>
  SELECT c ount (*) 
FROM nhanvien
WHERE nha nvien_id <= 100;