INSERT INTO VALUES() statement

We figured metu carane nggawe tabel, ayo saiki njupuk dipikir rinci babagan carane nambah data menyang tabel nggunakake query SQL.

Nyatane, iku gampang banget kanggo nindakake iki, nanging ana sawetara nuansa. Opsi paling gampang kanggo nglebokake data menyang tabel mbutuhake nemtokake rong perkara:

  • jeneng kolom
  • nilai kolom (data)

Jeneng kolom kudu ditemtokake, amarga asring banget kolom duwe nilai standar sing ora ditemtokake nalika nglebokake data. Lan biasane saben tabel duwe paling ora siji kolom, contone id baris.

Bentuk umum query kanggo nglebokake data menyang tabel katon kaya iki:

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

Contone, yen sampeyan pengin nglebokake rekaman anyar menyang tabel pangguna, kaya mangkene pitakon kasebut:

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

INSERT INTO SELECT statement

Skenario umum liyane kanggo nglebokake data menyang tabel yaiku njupuk saka tabel, skema, utawa malah DBMS liyane.

Kanggo nindakake iki, ana format pitakon INSERT INTO liyane, sing, tinimbang bagean VALUES, sampeyan bisa nemtokake pitakon kanggo milih data.

Bentuk umum panyuwunan kasebut yaiku:

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

Ayo nulis pitakon sing bakal nambah kabeh pangguna saka tabel karyawan menyang tabel pangguna:

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

Kita duwe macem-macem data ing tabel karyawan, nanging saka wong-wong mau mung milih rong lapangan - jeneng lan wektu rawuh ing perusahaan.

Uga, tabel pangguna mbutuhake sampeyan nemtokake level pangguna - level. Karyawan ora duwe tingkat ing meja pegawe, supaya kita bakal nggunakake kasunyatan sing tabel pangguna wis Nilai standar kanggo lapangan tingkat. Kita mung ora nemtokake level lan SQL bakal nyetel nilai standar.

Upaminipun kita ora wareg karo nilai gawan, lan kita pengin tingkat dadi 99, lan ngganti user.created_time karo tanggal dina, banjur kita bisa nulis iki:

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

Ana akeh liyane sing bisa ditindakake, nanging aku mikir iki bakal cukup kanggo saiki. Sampeyan bisa maca liyane ing kaca MySQL resmi.