INSERT INTO VALUES() pernyataan

Kami menemukan cara membuat tabel, sekarang mari kita lihat secara mendetail cara menambahkan data ke tabel menggunakan kueri SQL.

Sebenarnya, ini sangat sederhana untuk dilakukan, tetapi ada beberapa nuansa. Opsi paling sederhana untuk memasukkan data ke dalam tabel memerlukan penetapan dua hal:

  • nama kolom
  • nilai kolom (data)

Nama kolom harus ditentukan, karena seringkali kolom memiliki nilai default yang tidak ditentukan saat memasukkan data. Dan biasanya setiap tabel memiliki setidaknya satu kolom seperti itu, misalnya id baris.

Bentuk umum kueri untuk memasukkan data ke dalam tabel terlihat seperti ini:

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

Misalnya, jika Anda ingin menyisipkan catatan baru ke dalam tabel pengguna, seperti inilah tampilan kueri:

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

INSERT INTO SELECT pernyataan

Skenario umum lainnya untuk memasukkan data ke dalam tabel adalah mengambilnya dari tabel lain, skema, atau bahkan DBMS.

Untuk melakukan ini, ada format kueri INSERT INTO lainnya, di mana, alih-alih bagian NILAI, Anda dapat menentukan kueri untuk memilih data.

Bentuk umum dari permintaan tersebut adalah:

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

Mari tulis kueri yang akan menambahkan semua pengguna dari tabel karyawan ke tabel pengguna:

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

Kami memiliki berbagai data di tabel karyawan, tetapi dari situ kami hanya memilih dua bidang - nama dan waktu kedatangan di perusahaan.

Juga, tabel pengguna mengharuskan Anda untuk menentukan level pengguna - level. Karyawan tidak memiliki level di tabel karyawan, jadi kita akan menggunakan fakta bahwa tabel pengguna memiliki nilai default untuk bidang level. Kami hanya tidak menentukan level dan SQL akan menetapkan nilai default.

Misalkan kita tidak puas dengan nilai default, dan kita ingin level menjadi 99, dan mengganti user.created_time dengan tanggal hari ini, maka kita dapat menulis ini:

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

Masih banyak lagi yang bisa dilakukan, tapi saya pikir ini sudah cukup untuk saat ini. Anda dapat membaca lebih lanjut di halaman resmi MySQL.