คำสั่ง INSERT INTO VALUES()

เราทราบวิธีสร้างตารางแล้ว เรามาดูรายละเอียดเกี่ยวกับวิธีเพิ่มข้อมูลลงในตารางโดยใช้คิวรี SQL

ในความเป็นจริงมันง่ายมากที่จะทำเช่นนี้ แต่มีความแตกต่างหลายประการ ตัวเลือกที่ง่ายที่สุดสำหรับการแทรกข้อมูลลงในตารางจำเป็นต้องระบุสองสิ่ง:

  • ชื่อคอลัมน์
  • ค่าคอลัมน์ (ข้อมูล)

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

รูปแบบทั่วไปของแบบสอบถามสำหรับการแทรกข้อมูลลงในตารางมีลักษณะดังนี้:

INSERT INTO table (column1, column2, column3) VALUES
    (value1, value2, value3),
    (value1, value2, value3),
    (value1, value2, value3);

ตัวอย่างเช่น หากคุณต้องการแทรกระเบียนใหม่ลงในตารางผู้ใช้ คิวรีจะมีลักษณะดังนี้:

INSERT INTO user (name, level, created_time) VALUES
	('Rabinovich', 5, ‘2022-06-06’);

INSERT INTO คำสั่งเลือก

อีกสถานการณ์ทั่วไปสำหรับการแทรกข้อมูลลงในตารางคือการดึงข้อมูลจากตาราง สกีมา หรือแม้แต่ DBMS อื่น

ในการทำเช่นนี้ มีรูปแบบคิวรี INSERT INTO อีกรูปแบบหนึ่ง ซึ่งคุณสามารถระบุคิวรีเพื่อเลือกข้อมูลแทนส่วน VALUES ได้

รูปแบบทั่วไปของคำขอดังกล่าวคือ:

INSERT INTO table (column1, column2, column3)
SELECT-request;

ลองเขียนแบบสอบถามที่จะเพิ่มผู้ใช้ทั้งหมดจากตารางพนักงานไปยังตารางผู้ใช้:

INSERT INTO user (name, created_time)
   SELECT employee.name, employee.join_date
   FROM employee;

เรามีข้อมูลต่าง ๆ ในตารางพนักงาน แต่จากข้อมูลเหล่านี้ เราเลือกเพียงสองฟิลด์ - ชื่อและเวลาที่มาถึงบริษัท

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

สมมติว่าเราไม่พอใจกับค่าดีฟอลต์ และเราต้องการให้ระดับเป็น 99 และแทนที่ user.created_time ด้วยวันที่ของวันนี้ เราก็เขียนสิ่งนี้ได้:

INSERT INTO user (name, level, created_time)
   SELECT employee.name, 99, CURDATE()
   FROM employee;

มีอีกมากที่สามารถทำได้ แต่ฉันคิดว่านี่จะเพียงพอสำหรับตอนนี้ คุณสามารถอ่านเพิ่มเติมได้ที่หน้า MySQL อย่างเป็นทางการ