PostgreSQL INSERT: การแทรกข้อมูลลงในตาราง

⚡ สรุปอย่างชาญฉลาด

PostgreSQL คำสั่ง INSERT ใช้สำหรับเพิ่มแถวใหม่ลงในตารางโดยใช้ SQL Lessเนื้อหาครอบคลุมไวยากรณ์ การแทรกข้อมูลแถวเดียวและหลายแถว ข้อกำหนด RETURNING ค่าเริ่มต้น และการเพิ่มระเบียนผ่านอินเทอร์เฟซ pgAdmin ด้วยวิธีแบบเห็นภาพ

  • 📥 ไวยากรณ์พื้นฐาน: INSERT INTO table (cols) VALUES (vals) — รูปแบบมาตรฐาน
  • 📋 หลายแถว: ใช้ทูเปิลค่าที่คั่นด้วยเครื่องหมายจุลภาคเพื่อแทรกหลายแถว
  • 🔄 กลับมาอีกครั้ง: ดึงข้อมูลแถวที่แทรกเข้าไปในการเรียกใช้ครั้งเดียวกัน
  • 💡 ค่าเริ่มต้น: คอลัมน์ที่ไม่ได้ระบุจะได้รับค่า DEFAULT หรือ NULL
  • 🖥️ ส่วนติดต่อผู้ใช้แบบกราฟิก (GUI) ของ pgAdmin: เพิ่มแถวด้วยภาพโดยไม่ต้องเขียนคำสั่ง SQL
  • 🤖 AI SQL: Copilot สร้างคำสั่ง INSERT ที่มีพารามิเตอร์

PostgreSQL INSERT

PostgreSQL คำสั่ง INSERT

In PostgreSQLคำสั่งแทรกจะช่วยแทรกแถวหรือแถวใหม่ลงในตาราง คุณสามารถแทรกแถวที่ระบุด้วยนิพจน์ค่า ศูนย์ หรือหลายแถวที่เป็นผลจากการสืบค้น

ไวยากรณ์ของ PostgreSQL ใส่ลงใน

INSERT INTO TABLE_NAME (column1, column2, ...columnN)
VALUES (value1, value2,...valueN);

คุณสามารถดูได้ในไวยากรณ์ด้านบน คอลัมน์ 1 ถึง N คือชื่อของคอลัมน์ในตารางที่คุณต้องการแทรกข้อมูลลงไป คอลัมน์เป้าหมายต้องแสดงรายการตามลำดับที่เฉพาะเจาะจง ค่าที่ระบุโดยแบบสอบถามหรือส่วนคำสั่งค่าอาจเป็นค่าที่สอดคล้องกันสำหรับคอลัมน์

เมื่อดำเนินการแบบสอบถามแล้ว คุณจะเห็นข้อความเอาต์พุต

Insert oid 1

ข้อความเอาต์พุตนี้จะปรากฏขึ้นหากมีการแทรกเพียงแถวเดียว โดยที่ oid คือ OID ตัวเลขที่กำหนดให้กับแถวที่แทรก

ตัวอย่างของการ PostgreSQL แทรกลงในตาราง

พิจารณาตาราง "บทช่วยสอน" ต่อไปนี้ที่มีสองคอลัมน์

“id” จำนวนเต็มค่าเริ่มต้น 1
“tutorial_name” ข้อความค่าเริ่มต้น postgre
และไม่มีข้อจำกัด

PostgreSQL แทรกลงในตาราง

นี่คือขั้นตอนสำหรับ PostgreSQL แทรกลงในตาราง:

ขั้นตอน 1) การแทรกแถวเข้าไป

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');

PostgreSQL แทรกลงในตาราง

หมายเหตุ: เฉพาะอักขระหรือค่าวันที่เท่านั้นที่ต้องอยู่ในเครื่องหมายคำพูดเดี่ยวเมื่อแทรกแถว

ขั้นตอน 2) อย่างไรก็ตาม หากคุณแทรกข้อมูลลงในคอลัมน์ทั้งหมด คุณสามารถละชื่อคอลัมน์ได้ คำสั่งแทรกเดียวกันยังสามารถเขียนเป็น

INSERT INTO tutorials VALUES (1, 'postgre');

PostgreSQL แทรกลงในตาราง

ขั้นตอน 3) ค่าข้อมูลจะแสดงตามลำดับตามคอลัมน์ที่ปรากฏในตาราง คั่นด้วยเครื่องหมายจุลภาค

ไวยากรณ์ข้างต้นมีปัญหาซึ่งคุณจำเป็นต้องทราบลำดับของคอลัมน์ในตาราง เพื่อแก้ไขปัญหานี้ คุณยังสามารถแสดงรายการคอลัมน์ได้อย่างชัดเจน

ตัวอย่างเช่น คำสั่งทั้งสองที่ระบุไว้ด้านล่างมีผลเหมือนกันดังที่แสดงด้านล่าง:

INSERT INTO tutorials(id, tutorial_name) VALUES (1, 'postgre');
INSERT INTO tutorials(tutorial_name, id) VALUES ('postgre',1);

PostgreSQL แทรกลงในตาราง

ขั้นตอน 4) ในตัวอย่างนี้ คุณจะเห็นว่าถ้าคุณไม่มีค่าสำหรับคอลัมน์ทั้งหมด คุณสามารถละเว้นบางคอลัมน์ได้

ในกรณีดังกล่าว คอลัมน์ต่างๆ จะถูกเติมด้วยค่าเริ่มต้นโดยอัตโนมัติ หากมีการระบุ

INSERT INTO tutorials(id) VALUES (5);

PostgreSQL แทรกลงในตาราง

ขั้นตอน 5) คุณยังสามารถขอค่าเริ่มต้นสำหรับแต่ละคอลัมน์หรือทั้งแถวได้:

INSERT INTO tutorials(id, tutorial_name) VALUES (1, DEFAULT);
INSERT INTO tutorials DEFAULT VALUES;

PostgreSQL แทรกลงในตาราง

ขั้นตอน 6) คุณสามารถหลายแถวได้ด้วยคำสั่งเดียว:

INSERT INTO tutorials(id, tutorial_name) VALUES
(1, 'postgre'),
(2, 'oracle'),
(3, 'mysql'),
(4, 'mongo');

PostgreSQL แทรกลงในตาราง

ขั้นตอน 7) In PostgreSQLนอกจากนี้ยังเป็นการแทรกผลลัพธ์ของการสืบค้นซึ่งอาจไม่มีแถว แถวเดียว หรือหลายแถว:

INSERT INTO tutorials (id, tutorial_name)
SELECT id, tutorial_name FROM tutorials
WHERE tutorial_name = 'mysql';

PostgreSQL แทรกลงในตาราง

PostgreSQL แทรกคำสั่งโดยใช้ pgAdmin

ต่อไปนี้เป็นขั้นตอนในการแทรกคำสั่งโดยใช้ pgAdmin ใน Postgre SQL

ขั้นตอน 1) ในแผนผังวัตถุ

  1. คลิกขวาที่ตารางที่คุณต้องการแทรกข้อมูล
  2. เลือกสคริปต์
  3. แทรกสคริปต์

PostgreSQL แทรกคำสั่งโดยใช้ pgAdmin

ขั้นตอน 2) ในแผงแทรก

  1. แก้ไขแบบสอบถาม
  2. คลิกปุ่มไฟ
  3. สังเกตผลลัพธ์

PostgreSQL แทรกคำสั่งโดยใช้ pgAdmin

ขั้นตอน 3) คุณยังสามารถไปที่เครื่องมือ > เครื่องมือสืบค้นข้อมูล เพื่อเปิดตัวแก้ไขแบบสอบถามได้ แต่คุณจะไม่ได้รับข้อความค้นหาแบบแทรกเริ่มต้น

PostgreSQL แทรกคำสั่งโดยใช้ pgAdmin

คำถามที่พบบ่อย

ใช้คำสั่ง INSERT เดียวโดยคั่นทูเปิลด้วยเครื่องหมายจุลภาค: INSERT INTO t (a,b) VALUES (1,2), (3,4) เร็วกว่าการแทรกข้อมูลทีละแถวหลายครั้งมาก

เครื่องมือ AI สร้างคำสั่ง INSERT แบบมีพารามิเตอร์เพื่อป้องกันการโจมตี SQL injection แนะนำเงื่อนไข RETURNING และแปลงข้อมูลจากสเปรดชีตให้เป็นคำสั่ง INSERT แบบหลายแถว

ใช่ AI สร้างข้อมูลต้นแบบที่สมจริง อนุมานประเภทคอลัมน์จากสคีมา และเขียนข้อมูลลงไป Python หรือใช้สคริปต์เชลล์เพื่อทำการ INSERT แบบกลุ่ม

คำสั่ง RETURNING จะดึงคอลัมน์จากแถวที่เพิ่งแทรกเข้าไปในคำสั่งเดียวกัน ใช้ RETURNING * สำหรับทุกคอลัมน์ หรือระบุคอลัมน์ที่ต้องการก็ได้

PostgreSQL ไม่มีข้อจำกัดจำนวนแถวที่ตายตัว แต่คำสั่งขนาดใหญ่มากอาจทำให้เกินขีดจำกัดหน่วยความจำ ควรใช้คำสั่ง COPY สำหรับการโหลดข้อมูลจำนวนมาก

ควรใช้คำสั่ง SQL แบบมีพารามิเตอร์ โดยใช้ตัวแปร $1 และ $2 แทนเสมอ ห้ามนำข้อมูลที่ผู้ใช้ป้อนมาต่อเข้ากับสตริงคำสั่ง INSERT เด็ดขาด

ใช่แล้ว เปิดตาราง เลือก ดู/แก้ไขข้อมูล เพิ่มแถวใหม่ในตาราง pgAdmin จะสร้างคำสั่ง INSERT ให้คุณโดยอัตโนมัติ

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

สรุปโพสต์นี้ด้วย: