การรู้และจัดการระบบการจัดการฐานข้อมูลทำให้เราคุ้นเคยกับการเปลี่ยนแปลงเกี่ยวกับฐานข้อมูล ซึ่งโดยทั่วไปจะเกี่ยวข้องกับการสร้าง แทรก อัปเดต และลบฟังก์ชันที่ใช้กับตารางเฉพาะ ในบทความปัจจุบัน เราจะมาดูกันว่าข้อมูลถูกจัดการโดยวิธีการแทรกอย่างไร เราต้องสร้างตารางที่เราต้องการแทรก คำสั่ง Insert ใช้สำหรับเพิ่มข้อมูลใหม่ในแถวของตาราง คำสั่งแทรก PostgreSQL ครอบคลุมกฎบางอย่างสำหรับการดำเนินการค้นหาที่ประสบความสำเร็จ อันดับแรก เราต้องพูดถึงชื่อตารางตามด้วยชื่อคอลัมน์ (แอตทริบิวต์) ที่เราต้องการแทรกแถว ประการที่สอง เราต้องป้อนค่า โดยคั่นด้วยเครื่องหมายจุลภาคหลังส่วนคำสั่ง VALUE สุดท้าย ทุกค่าต้องอยู่ในลำดับเดียวกัน เนื่องจากมีการจัดลำดับของรายการแอตทริบิวต์ในขณะที่สร้างตารางเฉพาะ
ไวยากรณ์
>> แทรก เข้าไปข้างในชื่อตาราง(คอลัมน์ 1,คอลัมน์) ค่า ('value1', 'value2');ในที่นี้ คอลัมน์คือแอตทริบิวต์ของตาราง คำหลัก VALUE ใช้เพื่อป้อนค่า 'ค่า' คือข้อมูลของตารางที่จะป้อน
การแทรกฟังก์ชันแถวในเชลล์ PostgreSQL (psql)
หลังจากติดตั้ง postgresql สำเร็จ เราจะป้อนชื่อฐานข้อมูล หมายเลขพอร์ต และรหัสผ่าน Psql จะถูกเริ่มต้น จากนั้นเราจะดำเนินการค้นหาตามลำดับ
ตัวอย่างที่ 1: การใช้ INSERT เพื่อเพิ่มระเบียนใหม่ลงในตาราง
ตามไวยากรณ์ เราจะสร้างแบบสอบถามต่อไปนี้ ในการแทรกแถวในตาราง เราจะสร้างตารางชื่อลูกค้า ตารางที่เกี่ยวข้องมี 3 คอลัมน์ ควรกล่าวถึงชนิดข้อมูลของคอลัมน์เฉพาะเพื่อป้อนข้อมูลในคอลัมน์นั้นและเพื่อหลีกเลี่ยงความซ้ำซ้อน แบบสอบถามเพื่อสร้างตารางคือ:
>> สร้าง ตารางลูกค้า(NSint,ชื่อ วาร์ชาร์ (40), ประเทศวาร์ชาร์ (40));
หลังจากสร้างตารางแล้ว เราจะป้อนข้อมูลด้วยการแทรกแถวด้วยตนเองในการสืบค้นแยกกัน ประการแรก เราพูดถึงชื่อคอลัมน์เพื่อรักษาความถูกต้องของข้อมูลในคอลัมน์เฉพาะเกี่ยวกับแอตทริบิวต์ จากนั้นจะป้อนค่า ค่าจะถูกเข้ารหัสโดยโคม่าเดี่ยว เนื่องจากจะต้องแทรกค่าเหล่านี้โดยไม่มีการเปลี่ยนแปลงใดๆ
>> แทรก เข้าไปข้างในลูกค้า(NS,ชื่อ, ประเทศ) ค่า ('1','Alia', 'ปากีสถาน');
หลังจากการแทรกสำเร็จทุกครั้ง ผลลัพธ์จะเป็น 0 1 ซึ่งหมายความว่าจะมีการแทรก 1 แถวในแต่ละครั้ง ในแบบสอบถามดังที่กล่าวไว้ก่อนหน้านี้ เราได้แทรกข้อมูล 4 ครั้ง เพื่อดูผลลัพธ์ เราจะใช้แบบสอบถามต่อไปนี้:
>> เลือก*จากลูกค้า;
ตัวอย่างที่ 2: การใช้คำสั่ง INSERT ในการเพิ่มหลายแถวในแบบสอบถามเดียว
วิธีการเดียวกันนี้ใช้ในการแทรกข้อมูล แต่ไม่แนะนำคำสั่งแทรกหลายครั้ง เราจะป้อนข้อมูลในครั้งเดียวโดยใช้แบบสอบถามบางอย่าง ค่าทั้งหมดของหนึ่งแถวจะถูกคั่นด้วย โดยใช้แบบสอบถามต่อไปนี้ เราจะได้ผลลัพธ์ที่ต้องการ
ตัวอย่างที่ 3: INSERT หลายแถวในตารางเดียวตามตัวเลขในอีกตารางหนึ่ง
ตัวอย่างนี้เกี่ยวข้องกับการแทรกข้อมูลจากตารางหนึ่งไปยังอีกตารางหนึ่ง พิจารณาสองตาราง a และ b ตาราง a มี 2 แอตทริบิวต์ คือ ชื่อและคลาส โดยการใช้แบบสอบถาม CREATE เราจะแนะนำตาราง หลังจากสร้างตารางแล้ว ข้อมูลจะถูกป้อนโดยใช้คิวรีแบบแทรก
>> แทรก เข้าไปข้างในถึงค่า ('อาม่า'1),('ภีสมะ','2'),('จาเวด','3'),('ลง',4');
ค่าสี่ค่าถูกแทรกลงในตารางโดยใช้ทฤษฎีเกิน เราตรวจสอบได้โดยใช้คำสั่ง select
ในทำนองเดียวกัน เราจะสร้างตาราง b โดยมีแอตทริบิวต์ของชื่อและหัวเรื่องทั้งหมด แบบสอบถาม 2 รายการเดียวกันจะถูกนำมาใช้เพื่อแทรกและดึงข้อมูลบันทึกจากตารางที่เกี่ยวข้อง
>> สร้าง ตารางNS(ชื่อทั้งหมด varchar(30), เรื่อง varchar(70));
ดึงบันทึกโดยทฤษฎีการเลือก
>> เลือก*จากNS;
การใส่ค่าของ table NS ในตารางเราจะใช้แบบสอบถามต่อไปนี้ แบบสอบถามนี้จะทำงานในลักษณะที่ชื่อทั้งหมดใน table NS จะถูกแทรกลงในตาราง ถึง ด้วยการนับตัวเลขที่แสดงจำนวนครั้งของจำนวนเฉพาะในคอลัมน์ที่เกี่ยวข้องของตาราง NS . b.allnames แสดงถึงฟังก์ชันวัตถุเพื่อระบุตาราง ฟังก์ชัน Count (b.allnames) ทำงานเพื่อนับจำนวนการเกิดขึ้นทั้งหมด เนื่องจากทุกชื่อเกิดขึ้นพร้อมกัน คอลัมน์ผลลัพธ์จะมี 1 หมายเลข
>> แทรก เข้าไปข้างในถึง(ชื่อ,ระดับ) เลือกb.allnames, นับ(b.allnames) จากNSกลุ่ม โดยb.allnames;
ตัวอย่างที่ 4: INSERT ข้อมูลในแถวหากไม่มีอยู่
แบบสอบถามนี้ใช้เพื่อป้อนแถวหากไม่มีอยู่ ประการแรก แบบสอบถามที่ให้มาจะตรวจสอบว่าแถวนั้นมีอยู่แล้วหรือไม่ หากมีอยู่แล้ว ข้อมูลจะไม่ถูกเพิ่ม และหากไม่มีข้อมูลในแถว การแทรกใหม่จะถูกระงับ ที่นี่ tmp เป็นตัวแปรชั่วคราวที่ใช้เก็บข้อมูลในบางครั้ง
ตัวอย่างที่ 5: PostgreSQL Upsert โดยใช้คำสั่ง INSERT
ฟังก์ชั่นนี้มีสองแบบ:
- อัปเดต: หากเกิดความขัดแย้งขึ้น หากระเบียนตรงกับข้อมูลที่มีอยู่ในตาราง จะมีการอัปเดตด้วยข้อมูลใหม่
- หากเกิดความขัดแย้งอย่าทำอะไรเลย : หากเรกคอร์ดตรงกับข้อมูลที่มีอยู่ในตาราง เรกคอร์ดจะข้ามเรกคอร์ด หรือหากเกิดข้อผิดพลาดขึ้น ก็จะถูกละเว้นไปด้วย
เริ่มแรกเราจะสร้างตารางที่มีข้อมูลตัวอย่าง
>> สร้าง ตารางtbl2(NSINT หลัก กุญแจ,ชื่อ ตัวละครที่แตกต่างกัน);หลังจากสร้างตาราง เราจะแทรกข้อมูลใน tbl2 โดยใช้แบบสอบถาม:
>> แทรก เข้าไปข้างในtbl2ค่า (1,'อุซมา'),(2,'อับดุล'),(3,'แฮมนา'),(4,'ฟาติมา'),(5,'ชิซ่า'),(6,'จาเวเรีย');
หากเกิดข้อขัดแย้ง ให้อัปเดต:
>>แทรก เข้าไปข้างในtbl2ค่า (8,'ขี่') บนขัดแย้ง(NS) ทำ อัปเดต ชุด ชื่อ=ไม่รวมชื่อ;
ตอนแรกเราจะป้อนข้อมูลโดยใช้ข้อความค้นหาข้อขัดแย้งของ id 8 และชื่อ Rida แบบสอบถามเดียวกันจะถูกใช้ตามรหัสเดียวกัน จะเปลี่ยนชื่อ ตอนนี้คุณจะสังเกตเห็นว่าชื่อจะเปลี่ยนไปอย่างไรใน id เดียวกันในตาราง
>> แทรก เข้าไปข้างในtbl2ค่า (8,'ทำงาน') บนขัดแย้ง(NS) ทำ อัปเดต ชุด ชื่อ =ไม่รวมชื่อ;
เราพบว่ามีความขัดแย้งใน id 8 ดังนั้นจึงมีการอัปเดตแถวที่ระบุ
หากเกิดความขัดแย้งอย่าทำอะไรเลย
>> แทรก เข้าไปข้างในtbl2ค่า (9,'ฮิระ') บนขัดแย้ง(NS) ทำ ไม่มีอะไร;การใช้แบบสอบถามนี้ แถวใหม่จะถูกแทรก หลังจากนั้นเราจะใช้ if แบบสอบถามเดียวกันเพื่อดูข้อขัดแย้งที่เกิดขึ้น
>>แทรก เข้าไปข้างในtbl2ค่า (9,'ฮิระ') บนขัดแย้ง(NS) ทำ ไม่มีอะไร;
ตามภาพด้านบน คุณจะเห็นว่าหลังจากดำเนินการค้นหา INSERT 0 0 แสดงว่าไม่มีการป้อนข้อมูล
บทสรุป
เราได้ดูแนวคิดความเข้าใจเกี่ยวกับการแทรกแถวในตารางโดยที่ไม่มีข้อมูลอยู่ หรือการแทรกไม่เสร็จสมบูรณ์ หากพบระเบียนใดๆ เพื่อลดความซ้ำซ้อนในความสัมพันธ์ของฐานข้อมูล