PostgreSQL - ใส่แบบสอบถาม

PostgreSQL INSERT INTOคำสั่งอนุญาตให้แทรกแถวใหม่ลงในตาราง หนึ่งสามารถแทรกทีละแถวหรือหลายแถวอันเป็นผลมาจากแบบสอบถาม

ไวยากรณ์

ไวยากรณ์พื้นฐานของคำสั่ง INSERT INTO มีดังนี้ -

INSERT INTO TABLE_NAME (column1, column2, column3,...columnN)
VALUES (value1, value2, value3,...valueN);
  • ที่นี่ column1, column2, ... columnN คือชื่อของคอลัมน์ในตารางที่คุณต้องการแทรกข้อมูล

  • ชื่อคอลัมน์เป้าหมายสามารถแสดงในลำดับใดก็ได้ ค่าที่กำหนดโดยส่วนคำสั่งหรือแบบสอบถาม VALUES เชื่อมโยงกับรายการคอลัมน์ที่ชัดเจนหรือโดยนัยจากซ้ายไปขวา

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

INSERT INTO TABLE_NAME VALUES (value1,value2,value3,...valueN);

เอาต์พุต

ตารางต่อไปนี้สรุปข้อความที่ส่งออกและความหมาย -

ส. เลขที่ ข้อความแสดงผลและคำอธิบาย
1

INSERT oid 1

ข้อความจะส่งคืนหากมีการแทรกเพียงแถวเดียว oid คือ OID ที่เป็นตัวเลขของแถวที่แทรก

2

INSERT 0 #

ข้อความจะส่งคืนหากมีการแทรกมากกว่าหนึ่งแถว # คือจำนวนแถวที่แทรก

ตัวอย่าง

ให้เราสร้างตาราง COMPANY ใน testdb ดังต่อไปนี้ -

CREATE TABLE COMPANY(
   ID INT PRIMARY KEY     NOT NULL,
   NAME           TEXT    NOT NULL,
   AGE            INT     NOT NULL,
   ADDRESS        CHAR(50),
   SALARY         REAL,
   JOIN_DATE	  DATE
);

ตัวอย่างต่อไปนี้แทรกแถวในตาราง COMPANY -

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (1, 'Paul', 32, 'California', 20000.00,'2001-07-13');

ตัวอย่างต่อไปนี้คือการแทรกแถว คอลัมน์เงินเดือนที่นี่จะถูกละเว้นดังนั้นจึงมีค่าเริ่มต้น -

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,JOIN_DATE) VALUES (2, 'Allen', 25, 'Texas', '2007-12-13');

ตัวอย่างต่อไปนี้ใช้คำสั่ง DEFAULT สำหรับคอลัมน์ JOIN_DATE แทนที่จะระบุค่า -

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (3, 'Teddy', 23, 'Norway', 20000.00, DEFAULT );

ตัวอย่างต่อไปนี้แทรกหลายแถวโดยใช้ไวยากรณ์ multirow VALUES -

INSERT INTO COMPANY (ID,NAME,AGE,ADDRESS,SALARY,JOIN_DATE) VALUES (4, 'Mark', 25, 'Rich-Mond ', 65000.00, '2007-12-13' ), (5, 'David', 27, 'Texas', 85000.00, '2007-12-13');

ข้อความข้างต้นทั้งหมดจะสร้างบันทึกต่อไปนี้ในตาราง COMPANY บทต่อไปจะสอนวิธีแสดงบันทึกเหล่านี้ทั้งหมดจากตาราง

ID        NAME        AGE        ADDRESS     SALARY	  JOIN_DATE
----      ----------  -----      ----------  -------      --------
1         Paul        32         California  20000.0      2001-07-13
2         Allen       25         Texas                    2007-12-13
3         Teddy       23         Norway      20000.0
4         Mark        25         Rich-Mond   65000.0      2007-12-13
5         David       27         Texas       85000.0      2007-12-13