Postgresql menyisipkan beberapa baris pernyataan yang disiapkan

PostgreSQL adalah jenis database relasional (RDBMS) yang mirip dengan MySQL. Relational Database menyimpan data dalam bentuk tabel dimana setiap baris adalah record dan setiap kolom adalah satu atribut. Pada artikel ini, kita akan membahas proses penyisipan beberapa baris dalam database PostgreSQL. Secara umum, kami menggunakan pernyataan INSERT untuk memasukkan nilai dalam database. Hanya versi improvisasi dari pernyataan yang sama yang dapat digunakan untuk menyisipkan banyak nilai dalam berbagai baris database seperti yang ditunjukkan dalam sintaks di bawah ini

Sintaksis

##When specifying Column Names
Insert into tableName (col1, col2) values (value,value),(value,value),(value,value);

## when not specifying Column Names
Insert into tableName  values (value,value),(value,value),(value,value);

Mendekati

  • Nama database kita adalah geeksforgeeks dan nama tabelnya adalah gfg pada awalnya tidak ada data di dalam tabel. Untuk memilih database kita akan menggunakan query  \c databaseName
  • Untuk mengecek data di dalam tabel kita akan menggunakan query select *from tableName
  • Sekarang untuk memasukkan nilai, kita akan menggunakan nama tabel dan nama kolom dan catatan yang akan dimasukkan akan dipisahkan dengan koma ("'")
  • Kueri akan dimasukkan ke dalam tableName (col1, col2) nilai (nilai,nilai),(nilai,nilai),(nilai,nilai)
  • Jika Anda ingin menyisipkan tanpa nama kolom maka kueri akan berbeda dari kueri di atas
  • Sisipkan ke dalam tableName  nilai (nilai,nilai),(nilai,nilai),(nilai,nilai). Tetapi satu hal yang harus diingat di sini bahwa dalam hal ini, urutan nilai yang dimasukkan harus sama dengan yang ada di database dan semua kolom wajib harus dimasukkan.
  • Sekarang sekali lagi kita akan memeriksa record di dalam tabel menggunakan select*from tableName

Contoh 1

Dalam contoh ini, pertama-tama kita memilih database menggunakan perintah \c geeksforgeeks, lalu kita melihat catatan tabel database, lalu memasukkan catatan kelipatan ke dalam tabel, lalu melihat lagi ke dalam tabel database. Langkah-langkah yang diikuti adalah untuk memilih database dan kemudian melihat ke dalam catatan tabel kemudian memasukkan beberapa nilai dan sekali lagi melihat ke dalam catatan tabel

Contoh 2

Di sini, dalam contoh ini, kami akan menyisipkan baris tanpa menggunakan nama kolom tetapi satu hal yang perlu diperhatikan tentang pendekatan ini adalah jika Anda tidak memberikan nama kolom, urutan nilai yang dimasukkan akan sama dengan yang ada di tabel dan semua . Setelah memasukkan data kita akan kembali melihat ke dalam tabel database

Dalam tutorial PostgreSQL ini, kita akan membahas, bagaimana PostgreSQL INSERT Multiple Rows dalam satu pernyataan tunggal dan akan mencakup topik berikut

  • PostgreSQL INSERT Beberapa Baris
  • PostgreSQL INSERT Multiple Rows RETURNING
  • Batas PostgreSQL INSERT Banyak Baris
  • PostgreSQL INSERT Multiple Rows ON CONFLICT
  • PostgreSQL INSERT Beberapa Baris JIKA TIDAK ADA
  • PostgreSQL INSERT Beberapa Baris dari array
  • PostgreSQL INSERT Banyak Baris dari kueri SELECT
  • PostgreSQL INSERT Banyak Baris dari tabel lain

Daftar isi

PostgreSQL INSERT Beberapa Baris

Anda dapat menyisipkan lebih dari satu baris sekaligus dalam satu pernyataan di PostgreSQL dengan menentukan beberapa nilai baris yang dipisahkan koma dalam bentuk daftar nilai sebagai NILAI dalam pernyataan INSERT INTO. Sintaksnya adalah sebagai berikut

INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),

...
...
...
(value_list_n);
_

Dalam sintaks di atas

  • table_name ditentukan setelah kata kunci INSERT INTO, yang merupakan nama tabel yang ingin Anda sisipkan baris
  • column_list adalah daftar kolom yang harus ditentukan yang nilainya ingin Anda masukkan ke dalam tabel dalam tanda kurung
  • beberapa daftar nilai yang dipisahkan koma harus diberikan setelah kata kunci VALUES
  • Pernyataan di atas akan menampilkan tag perintah dalam bentuk – INSERT OID COUNT
  • CATATAN – Kolom dan nilai dalam daftar kolom dan daftar_nilai masing-masing harus dalam urutan yang sama

Di tag perintah,

  • OID adalah pengidentifikasi objek. PostgreSQL menggunakan OID sebagai PRIMARY KEY untuk tabel di sistem. Pernyataan INSERT menampilkan 0 sebagai nilai OID
  • Dan COUNT adalah jumlah baris yang berhasil disisipkan oleh pernyataan INSERT

Contoh

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
TABEL BUAT PostgreSQL

INSERT INTO device_data (first_name, last_name, email, gender, ip_address)
VALUES
('Bonnibelle', 'Keefe', '[email protected]', 'Female', '150.100.165.158'),
('Davin', 'Sandercroft', '[email protected]', 'Male', '37.70.16.47'),
('Maximo', 'Barks', '[email protected]', 'Female', '136.28.227.120'),
('Didi', 'Diver', '[email protected]', 'Male', '187.115.101.3'),
('Sully', 'Rodge', '[email protected]', 'Female', '186.74.37.211'),
('Aguste', 'Mouser', '[email protected]', 'Male', '57.27.254.99'),
('Adrianna', 'Bowler', '[email protected]', 'Female', '43.124.224.115');

SELECT * FROM device_data;

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Beberapa Baris

Baca PostgreSQL ALTER TABLE + 19 Contoh

PostgreSQL INSERT Multiple Rows RETURNING

Anda juga dapat mengembalikan informasi baris yang disisipkan di PostgreSQL dengan menggunakan klausa RETURNING dalam pernyataan INSERT INTO. Sintaksnya adalah sebagai berikut

INSERT INTO table_name (column_list)
VALUES
(value_list_1),
(value_list_2),

...
...
...
(value_list_n)
RETURNING output_expression [AS output_name];
_

Dalam sintaks di atas,

  • output_expression setelah kata kunci RETURNING adalah ekspresi yang menentukan kolom yang akan dikembalikan sebagai output
  • jika Anda meletakkan tanda bintang (*) sebagai ekspresi keluaran, itu akan mengembalikan semua kolom dari baris yang disisipkan sebagai keluaran
  • Anda juga dapat mengganti nama nilai yang dikembalikan dalam klausa RETURNING dengan menggunakan kata kunci AS diikuti dengan nama output, di sini output_name

Contoh

INSERT INTO device_data (first_name, last_name, email, gender, ip_address)
VALUES
('Terrence', 'Mathen', '[email protected]', 'Male', '123.172.105.139'),
('Bar', 'Raubenheim', '[email protected]', 'Female', '189.175.233.255'),
('Teena', 'Billam', '[email protected]', 'Male', '93.211.102.195'),
('Chester', 'Champagne', '[email protected]', 'Male', '103.95.239.132')
RETURNING first_name, email, ip_address;

INSERT INTO device_data (first_name, last_name, email, gender, ip_address)
VALUES
('Kev', 'Stanistreet', '[email protected]', 'Female', '145.182.171.234'),
('Karina', 'Jochens', '[email protected]', 'Male', '105.165.36.142'),
('Leeland', 'Carwithen', '[email protected]', 'Female', '188.125.13.65')
RETURNING *;

SELECT * FROM device_data;

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Multiple Rows RETURNING

Baca Fungsi DATE PostgreSQL dengan Contoh

Batas PostgreSQL INSERT Banyak Baris

Anda dapat menyisipkan maksimal 1000 baris dalam satu pernyataan di PostgreSQL. Jika Anda ingin memasukkan lebih dari 1000 record, Anda perlu menjalankan pernyataan INSERT INTO beberapa kali

PostgreSQL INSERT Multiple Rows ON CONFLICT

ON CONFLICT adalah kata kunci yang digunakan untuk menerapkan fitur UPSERT di PostgreSQL. Sintaksnya adalah sebagai berikut

INSERT INTO table_name(column_list) 
VALUES
(value_list_1),
(value_list_2),
...
...
...
(value_list_n)
ON CONFLICT target
action;
_

Dalam sintaks di atas,

  • Mari mengenal tentang fitur UPSERT
    •  UPSERT disebut sebagai penggabungan dalam database relasional, sebagai UP – perbarui, dan SERT – sisipkan. Saat Anda memasukkan baris baru ke dalam tabel, PostgreSQL akan MEMPERBARUI baris jika sudah ada, jika tidak, baris baru akan disisipkan
  • target dapat berupa kolom apa pun, batasan UNIK, atau pernyataan predikat WHERE. Ini menentukan di mana ia akan memeriksa keunikan baris yang disisipkan dengan baris yang ada
(column_name)     -- A column name where unique constraint is specified


-- Here, constraint_name can be the name of the UNIQUE constraint

ON CONSTRAINT constraint_name


WHERE predicate   -- It is a WHERE clause with a predicate
  • Jika baris yang disisipkan sudah ada, baris yang sudah ada akan diperbarui sesuai dengan tindakan, tindakan tersebut dapat berupa pernyataan UPDATE atau kata kunci DO NOTHING, pernyataan UPDATE akan memperbarui baris yang ada dan yang berikutnya tidak akan melakukan apa pun, yaitu
DO NOTHING       -- It means do nothing, if the row already exists


-- The following statement means update some fields in the table

DO UPDATE SET column1 = value1, column2 = value2, ...
WHERE condition
_

Contoh

\d device_data

INSERT INTO device_data (first_name, last_name, email, gender, ip_address)
VALUES
('Terrence', 'Mathen', '[email protected]', 'Male', '123.172.105.139'),
('Carola', 'Mc Caghan', '[email protected]', 'Female', '129.74.4.91'),
('Chrystel', 'Cavolini', '[email protected]', 'Female', '55.230.53.60'),
('Kev', 'Stanistreet', '[email protected]', 'Female', '145.182.171.234')
ON CONFLICT (email)
DO NOTHING
RETURNING *;

INSERT INTO device_data (first_name, last_name, email, gender, ip_address)
VALUES
('Terrence', 'Mathen', '[email protected]', 'Male', '123.172.105.139'),
('Rolland', 'Penke', '[email protected]', 'Female', '175.49.210.144'),
('Vernor', 'Downse', '[email protected]', 'Female', '207.227.255.171')
ON CONFLICT (email)
DO
UPDATE SET email = EXCLUDED.email || ';' || device_data.email
RETURNING *;
_

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Multiple Rows ON CONFLICT

Baca PostgreSQL DROP COLUMN

PostgreSQL INSERT Beberapa Baris JIKA TIDAK ADA

Anda dapat menyisipkan banyak baris dalam sebuah tabel jika belum ada di PostgreSQL, dengan menerapkan fitur UPSERT dalam pernyataan INSERT INTO dengan menggunakan klausa ON CONFLICT dan menggunakan DO NOTHING sebagai tindakannya, seperti yang dijelaskan di atas. Sintaksnya adalah sebagai berikut

INSERT INTO table_name(column_list) 
VALUES
(value_list_1),
(value_list_2),
...
...
...
(value_list_n)
ON CONFLICT target
DO NOTHING;

Sintaks di atas dijelaskan pada topik sebelumnya. Jadi, mari kita lakukan contoh untuk latihan

Contoh

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
0

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Beberapa Baris JIKA TIDAK ADA

Ada satu cara lagi, di mana Anda dapat menyisipkan banyak baris dalam sebuah tabel jika tidak ada di PostgreSQL dengan menggunakan kueri NESTED SELECT. Sintaksnya adalah sebagai berikut

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
1

Dalam sintaks di atas,

  • DENGAN kata kunci digunakan untuk membuat tabel sementara dengan data nama, di mana Anda mengisi baris yang ingin Anda sisipkan di tabel nama_tabel
  • Kemudian, pernyataan INSERT INTO digunakan untuk menyisipkan baris terpilih ke dalam tabel nama_tabel dari data tabel sementara
  • Di sini, pernyataan Nested SELECT digunakan untuk memilih data yang tidak ada dalam table table_name

Contoh

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
2

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Beberapa Baris JIKA TIDAK ADA menggunakan SELECT

PostgreSQL INSERT Beberapa Baris dari array

Anda tidak dapat menyisipkan banyak baris dari sebuah array di PostgreSQL, karena sebuah array adalah daftar bernama dari objek data yang sama. Artinya, ia dapat menampung data dengan tipe yang sama (homogen) sedangkan kolom tabel dapat heterogen dari tipe yang berbeda. Jadi tidak ada cara untuk menyisipkan baris dari array

Baca tabel PostgreSQL INSERT INTO + 9 Contoh

PostgreSQL INSERT Banyak Baris dari kueri SELECT

Anda dapat menyisipkan banyak baris dalam tabel di PostgreSQL menggunakan kueri SELECT juga. Sintaksnya adalah sebagai berikut

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
_3

Dalam sintaks di atas,

  • table_name1 adalah nama tabel tempat Anda ingin menyisipkan baris
  • column_list1 adalah daftar kolom dari table_name1 yang nilainya ingin Anda masukkan
  • table_name2 dalam kueri SELECT adalah nama tabel dari mana Anda ingin mengekspor baris (data) ke table_name1
  • column_list2 adalah daftar kolom yang akan dipilih oleh kueri SELECT dari tabel table_name2
  • Anda juga dapat memfilter baris yang dipilih dengan menambahkan klausa WHERE diikuti dengan kondisi
  • CATATAN – Daftar_kolom dalam kueri SELECT harus cocok dengan daftar_kolom yang ditentukan dalam pernyataan INSERT INTO

Contoh

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
_4

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Banyak Baris dari kueri SELECT

Baca permintaan Pembaruan di PostgreSQL

PostgreSQL INSERT Banyak Baris dari tabel lain

Anda dapat menyisipkan banyak baris ke dalam tabel dari tabel lain di PostgreSQL dengan metode di atas, menggunakan kueri SELECT. Sintaksnya sama dengan yang di atas

Jadi, mari kita praktikkan beberapa contoh untuk mendapatkan konsep yang lebih baik

Contoh

CREATE TABLE device_data (
id SERIAL PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
email VARCHAR(50) UNIQUE,
gender VARCHAR(20),
ip_address VARCHAR(20) NOT NULL);

\d

\d device_data
5

Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
Postgresql menyisipkan beberapa baris pernyataan yang disiapkan
PostgreSQL INSERT Banyak Baris dari tabel lain

Anda mungkin menyukai tutorial berikut

  • PostgreSQL vs SQL Server. Perbandingan Rinci
  • PostgreSQL ADD COLUMN + 17 Contoh
  • Format TANGGAL PostgreSQL + Contoh
  • RegEx Postgres
  • PostgreSQL menambahkan kunci utama

Tonton video YouTube saya untuk pemahaman yang lebih baik tentang topik ini

Dalam tutorial PostgreSQL ini, kita telah mempelajari tentang bagaimana PostgreSQL INSERT Multiple Rows dalam satu pernyataan tunggal dan telah membahas topik berikut

  • PostgreSQL INSERT Beberapa Baris
  • PostgreSQL INSERT Multiple Rows RETURNING
  • Batas PostgreSQL INSERT Banyak Baris
  • PostgreSQL INSERT Multiple Rows ON CONFLICT
  • PostgreSQL INSERT Beberapa Baris JIKA TIDAK ADA
  • PostgreSQL INSERT Beberapa Baris dari array
  • PostgreSQL INSERT Banyak Baris dari kueri SELECT
  • PostgreSQL INSERT Banyak Baris dari tabel lain

Bijay

Saya Bijay memiliki pengalaman lebih dari 15 tahun di Industri Perangkat Lunak. Selama ini, saya telah mengerjakan MariaDB dan menggunakannya di banyak proyek. Sebagian besar pembaca kami berasal dari Amerika Serikat, Kanada, Inggris, Australia, Selandia Baru, dll

Ingin belajar MariaDB? . Juga, saya adalah Microsoft MVP

Bagaimana cara menyisipkan beberapa baris di PreparedStatement?

Anda kemudian menyetel parameter menggunakan metode khusus tipe data pada objek PreparedStatement, seperti setString() dan setInt(). Setelah parameter Anda disetel, panggil metode addBatch() untuk menambahkan baris ke kumpulan . Saat Anda memiliki sekumpulan data yang lengkap, panggil metode executionBatch() untuk mengeksekusi kumpulan data yang disisipkan.

Bagaimana cara memasukkan banyak baris sekaligus di PostgreSQL?

Anda dapat menyisipkan lebih dari satu baris sekaligus dalam satu pernyataan di PostgreSQL dengan menetapkan beberapa nilai baris yang dipisahkan koma dalam bentuk daftar nilai sebagai VALUES dalam pernyataan INSERT INTO. The syntax is as follow: INSERT INTO table_name (column_list) VALUES (value_list_1), (value_list_2), .. .. .. (value_list_n);

Bagaimana cara memasukkan banyak baris di MySQL menggunakan PreparedStatement?

Anda dapat membuat kumpulan dengan PreparedStatement#addBatch() dan menjalankannya dengan PreparedStatement#executeBatch() . Berikut adalah contoh awal. public void save(List

Apakah mungkin memasukkan banyak baris secara bersamaan?

Sisipkan baris . Pilih jumlah baris yang sama seperti yang ingin Anda sisipkan . Misalnya, untuk menyisipkan lima baris kosong, pilih lima baris. Tidak apa-apa jika baris tersebut berisi data, karena baris tersebut akan disisipkan di atas baris tersebut. Tahan CONTROL, klik baris yang dipilih, lalu pada menu pop-up, klik Sisipkan.