PostgreSQL Array: Fungsi, Jenis, Contoh
Apa itu PostgreSQL Himpunan?
In PostgreSQL, kita bisa mendefinisikan kolom sebagai array tipe data yang valid. Tipe data dapat berupa tipe bawaan, ditentukan pengguna, atau disebutkan. Selain itu, array memainkan peran penting dalam PostgreSQL.
Setiap yang sesuai PostgreSQL tipe data dilengkapi dengan tipe array yang relevan. Misalnya, tipe data integer memiliki tipe array integer[], tipe data karakter memiliki tipe array karakter[], dan seterusnya.
membuat PostgreSQL Array
Dalam contoh berikut, kita akan membuat tabel bernama Karyawan dengan kolom kontak yang didefinisikan sebagai array teks:
CREATE TABLE Employees ( id int PRIMARY KEY, name VARCHAR (100), contact TEXT [] );
Perintah harus dijalankan dengan sukses.
Memasukkan PostgreSQL Nilai Array
Mari kita sekarang menyisipkan nilai ke dalam tabel di atas:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Penyisipan akan berjalan dengan sukses.
Nilai kolom ketiga, yaitu kontak, telah dimasukkan sebagai array. Hal ini dicapai dengan menggunakan konstruktor ARRAY.
Dalam contoh ini, kami telah melampirkannya dalam tanda kurung siku []. Kami memiliki dua kontak untuk karyawan Alice John.
Kita masih bisa menggunakan kurung kurawal {} seperti yang ditunjukkan di bawah ini:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Perintah harus dijalankan dengan sukses.
Pernyataan di atas akan memasukkan dua baris ke dalam tabel Karyawan. Saat menggunakan kurung kurawal, array dibungkus dalam tanda kutip tunggal (') sedangkan item array teks dibungkus dalam tanda kutip ganda (“).
Meminta Data Array
Untuk menanyakan elemen array, kami menggunakan pernyataan SELECT.
Untuk melihat isi tabel Karyawan kita, jalankan perintah berikut:
SELECT * FROM Employees;
Ini mengembalikan yang berikut:
Elemen kolom array, yaitu kontak, diapit kurung kurawal {}.
Untuk mengakses elemen array itu sendiri, kita menambahkan subskrip di dalam tanda kurung siku []. Elemen pertama dalam array berada di posisi 1.
Misalnya, kita perlu mendapatkan nama karyawan dan hanya kontak pertama mereka untuk karyawan yang memiliki lebih dari satu kontak. Kita dapat mengakses ini sebagai kontak[1].
Mari kita lihat ini:
SELECT name, contact[1] FROM Employees;
Ini akan mengembalikan hal 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:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
Ini akan mengembalikan hal berikut:
Memodifikasi PostgreSQL susunan
Anda dapat memperbarui semua atau satu elemen array.
Berikut isi tabel Karyawan:
Mari kita perbarui nomor telepon kedua karyawan James Bush, yang idnya 3:
Jalankan perintah berikut:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Perintah harus dijalankan dengan sukses:
Mari kita menanyakan tabel untuk memeriksa apakah perubahan berhasil:
Perubahan itu berhasil.
Mencari di PostgreSQL susunan
Saat ini, tabel Karyawan kami adalah sebagai berikut:
Misalkan kita perlu mengetahui siapa pemilik kontak (408)-783-5731 terlepas dari posisi dalam array kontak, kita dapat menggunakan fungsi ANY() seperti yang ditunjukkan di bawah ini:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Ini akan mengembalikan hal berikut:
Memperluas Array
Kita dapat membagi nilai array menjadi beberapa baris. Proses ini dikenal sebagai ekspansi array.
Pada contoh tabel Karyawan, terdapat beberapa karyawan dengan dua kontak dalam array kontak. Kita dapat membaginya menjadi beberapa baris terpisah.
PostgreSQL menyediakan fungsi unnest() yang dapat digunakan untuk ini.
Sebagai contoh:
SELECT name, unnest(contact) FROM Employees;
Ini akan mengembalikan hal berikut:
Karyawan Alice John dan James Bush, memiliki dua kontak. Kita dapat membaginya menjadi beberapa baris terpisah.
Menggunakan pgAdmin
membuat PostgreSQL Array
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 Jalankan.
Memasukkan PostgreSQL Nilai Array
Langkah 1) Ketik pertanyaan berikut di editor pertanyaan:
INSERT INTO Employees VALUES ( 1, 'Alice John', ARRAY [ '(408)-743-9045', '(408)-567-7834' ] );
Langkah 2) Klik tombol Jalankan:
Langkah 3)
Untuk menggunakan kurung kurawal dalam kueri
Langkah 1) Ketik pertanyaan berikut di editor pertanyaan:
INSERT INTO Employees VALUES ( 2, 'Kate Joel', '{"(408)-783-5731"}' ), ( 3, 'James Bush', '{"(408)-745-8965","(408)-567-78234"}' );
Langkah 2) Klik tombol Jalankan:
Meminta Data Array
Langkah 1) Untuk melihat isi tabel Karyawan, ketikkan kueri berikut pada editor kueri:
SELECT * FROM Employees;
Langkah 2) Klik tombol Jalankan:
Seharusnya mengembalikan hal berikut:
Langkah 3) Untuk melihat kontak pertama karyawan:
- Ketik pertanyaan berikut di editor pertanyaan:
SELECT name, contact[1] FROM Employees;
- Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Langkah 4) Untuk menggabungkan pernyataan SELECT dengan klausa WHERE:
- Ketik perintah berikut pada editor kueri:
SELECT name FROM Employees WHERE contact [ 2 ] = '(408)-567-78234';
- Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Memodifikasi PostgreSQL susunan
Langkah 1) Untuk memperbarui kontak kedua pengguna dengan id 3, jalankan perintah berikut:
UPDATE Employees SET contact [ 2 ] = '(408)-589-89347' WHERE id = 3;
Langkah 2) Klik tombol Jalankan.
Langkah 3)
1.Ketik perintah berikut pada editor kueri untuk memeriksa apakah perubahan berhasil:
SELECT * FROM Employees;
2.Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Mencari di PostgreSQL susunan
Langkah 1) Ketik pertanyaan berikut di editor pertanyaan:
SELECT name, contact FROM Employees WHERE '(408)-783-5731' = ANY (contact);
Langkah 2) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Memperluas Array
Langkah 1) Ketik pertanyaan berikut di editor pertanyaan:
SELECT name, unnest(contact) FROM Employees;
Langkah 2) Klik tombol Jalankan.
Seharusnya mengembalikan hal berikut:
Kesimpulan
- PostgreSQL memungkinkan kita untuk mendefinisikan kolom tabel sebagai tipe array.
- Array harus valid tipe data seperti bilangan bulat, karakter, atau tipe yang ditentukan pengguna.
- Untuk memasukkan nilai ke dalam kolom array, kita menggunakan konstruktor ARRAY.
- Jika terdapat lebih dari satu elemen pada baris yang sama pada kolom array, elemen pertama berada pada posisi 1.
- Setiap nilai dapat diakses dengan melewatkan subskrip dalam tanda kurung siku [].
- Elemen array dapat diambil menggunakan pernyataan SELECT.
- Nilai kolom array dapat diapit tanda kurung siku [] atau kurung kurawal {}.
- Kita dapat mencari nilai kolom array menggunakan fungsi ANY().
Unduh Database yang digunakan dalam Tutorial ini