Apa itu PostgreSQL Array?
Di PostgreSQL, kita dapat mendefinisikan kolom sebagai array tipe data yang valid. Tipe data dapat berupa tipe built-in, ditentukan pengguna, atau enumerasi. Selain itu, array memainkan peran penting dalam PostgreSQL.
Setiap tipe data PostgreSQL yang sesuai hadir dengan tipe array yang relevan. Misalnya, tipe data integer memiliki tipe array integer [], tipe data karakter memiliki tipe array karakter [], dll.
Dalam tutorial PostgreSQL ini, Anda akan belajar:
- Apa itu PostgreSQL Array?
- Membuat Array PostgreSQL
- Memasukkan Nilai Array PostgreSQL
- Mengkueri Data Array
- Memodifikasi Array PostgreSQL
- Mencari di Array PostgreSQL
- Memperluas Array
- Menggunakan pgAdmin
Membuat Array PostgreSQL
Dalam contoh berikut, kami akan membuat tabel bernama Karyawan dengan kolom kontak yang ditentukan sebagai array teks:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Perintah harus berjalan dengan sukses.
Memasukkan Nilai Array PostgreSQL
Sekarang mari kita masukkan nilai ke dalam tabel di atas:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Penyisipan harus berjalan dengan sukses.
Nilai dari kolom ketiga, yaitu, kontak, telah disisipkan sebagai larik. Ini telah dicapai dengan menggunakan konstruktor ARRAY.
Dalam contoh ini, kami telah memasukkannya ke dalam tanda kurung siku []. Kami memiliki dua kontak untuk karyawan Alice John.
Itu masih mungkin bagi kita untuk menggunakan kurung kurawal {} seperti yang ditunjukkan di bawah ini:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Perintah harus berjalan dengan sukses.
Pernyataan di atas akan memasukkan dua baris ke dalam tabel Karyawan. Saat menggunakan tanda kurung kurawal, larik dibungkus di dalam tanda kutip tunggal (') sementara item larik teks dibungkus dalam tanda kutip ganda (").
Mengkueri Data Array
Untuk menanyakan elemen array, kita menggunakan pernyataan SELECT.
Untuk melihat isi tabel Karyawan kami, kami menjalankan perintah berikut:
SELECT * FROM Employees;
Ini mengembalikan yang berikut:
Elemen kolom larik, yaitu, kontak, telah diapit dalam tanda kurung kurawal {}.
Untuk mengakses elemen array itu sendiri, kami menambahkan subskrip dalam tanda kurung siku []. Elemen pertama dalam sebuah array berada di posisi 1.
Misalnya, kita perlu mendapatkan nama karyawan dan hanya kontak pertama mereka untuk karyawan dengan lebih dari satu kontak. Kami dapat mengakses ini sebagai kontak [1].
Mari kita lihat ini:
SELECT name, contact[1]FROM Employees;
Ini akan mengembalikan yang berikut:
Kita dapat menggunakan pernyataan SELECT bersama dengan klausa WHERE untuk memfilter baris berdasarkan kolom array.
Misalnya, untuk melihat karyawan dengan (408) -567-78234 sebagai kontak kedua, kita dapat menjalankan perintah berikut:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Ini akan mengembalikan yang berikut:
Memodifikasi Array PostgreSQL
Anda dapat memperbarui semua atau satu elemen dari sebuah array.
Berikut isi tabel Karyawan:
Mari kita perbarui nomor telepon kedua dari karyawan James Bush, yang id-nya 3:
Jalankan perintah berikut:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Perintah harus berjalan dengan sukses:
Mari kita query tabel untuk memeriksa apakah perubahan itu berhasil:
Perubahan itu berhasil.
Mencari di Array PostgreSQL
Saat ini, tabel Karyawan kami adalah sebagai berikut:
Misalkan kita perlu mengetahui siapa yang memiliki kontak (408) -783-5731 terlepas dari posisinya dalam array kontak, kita dapat menggunakan fungsi ANY () seperti yang ditunjukkan di bawah ini:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Ini akan mengembalikan yang berikut:
Memperluas Array
Kita dapat membagi nilai array menjadi beberapa baris. Proses ini dikenal sebagai ekspansi array.
Dalam contoh tabel Karyawan, ada beberapa karyawan dengan dua kontak dalam larik kontak. Kami dapat membaginya menjadi baris terpisah.
PostgreSQL menyediakan fungsi unest () yang dapat digunakan untuk ini.
Sebagai contoh:
SELECTname,unnest(contact)FROMEmployees;
Ini akan mengembalikan yang berikut:
Karyawan Alice John dan James Bush, memiliki dua kontak. Kami dapat membagi menjadi beberapa baris terpisah.
Menggunakan pgAdmin
Membuat Array PostgreSQL
Untuk mencapai hal yang sama melalui pgAdmin, lakukan ini:
Langkah 1) Masuk ke akun pgAdmin Anda.
Langkah 2)
- Dari bilah navigasi di sebelah kiri- Klik rbases.
- Klik tombol Demo
Langkah 3) Ketik kueri di editor kueri untuk membuat tabel Karyawan:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Langkah 4) Klik tombol Execute.
Memasukkan Nilai Array PostgreSQL
Langkah 1) Ketikkan kueri berikut di editor kueri:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Langkah 2) Klik tombol Execute:
Langkah 3)
Untuk menggunakan tanda kurung kurawal di kueri
Langkah 1) Ketikkan kueri berikut di editor kueri:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Langkah 2) Klik tombol Execute:
Mengkueri Data Array
Langkah 1) Untuk melihat konten tabel Karyawan, ketikkan kueri berikut di editor kueri:
SELECT * FROM Employees;
Langkah 2) Klik tombol Execute:
Ini harus mengembalikan yang berikut:
Langkah 3) Untuk melihat kontak pertama karyawan:
- Ketik kueri berikut di editor kueri:
SELECT name, contact[1]FROM Employees;
- Klik tombol Jalankan.
Ini harus mengembalikan yang berikut:
Langkah 4) Untuk menggabungkan pernyataan SELECT dengan klausa WHERE:
- Ketik perintah berikut di editor kueri:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Klik tombol Jalankan.
Ini harus mengembalikan yang berikut:
Memodifikasi Array PostgreSQL
Langkah 1) Untuk memperbarui kontak kedua pengguna dengan id 3, jalankan perintah berikut:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Langkah 2) Klik tombol Execute.
Langkah 3)
1. Ketik perintah berikut pada editor kueri untuk memeriksa apakah perubahan berhasil:
SELECT * FROM Employees;
2. Klik tombol Jalankan.
Ini harus mengembalikan yang berikut:
Mencari di Array PostgreSQL
Langkah 1) Ketikkan kueri berikut di editor kueri:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Langkah 2) Klik tombol Execute.
Ini harus mengembalikan yang berikut:
Memperluas Array
Langkah 1) Ketikkan kueri berikut di editor kueri:
SELECTname,unnest(contact)FROMEmployees;
Langkah 2) Klik tombol Execute.
Ini harus mengembalikan yang berikut:
Ringkasan:
- PostgreSQL memungkinkan kita untuk mendefinisikan kolom tabel sebagai tipe array.
- Array harus dari tipe data yang valid seperti integer, karakter, atau tipe yang ditentukan pengguna.
- Untuk memasukkan nilai ke dalam kolom array, kami menggunakan konstruktor ARRAY.
- Jika ada lebih dari satu elemen dalam baris yang sama dari kolom array, elemen pertama berada di posisi 1.
- Setiap nilai dapat diakses dengan melewatkan subskrip dalam tanda kurung siku [].
- Elemen-elemen array dapat diambil menggunakan pernyataan SELECT.
- Nilai-nilai kolom larik bisa diapit dalam tanda kurung siku [] atau tanda kurung kurawal {}.
- Kita dapat mencari nilai kolom array menggunakan fungsi ANY ().
Unduh Basis Data yang digunakan dalam Tutorial ini