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.

membuat PostgreSQL Array

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.

Memasukkan PostgreSQL Nilai Array

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.

Memasukkan PostgreSQL Nilai Array

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:

Meminta Data Array

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:

Meminta Data Array

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:

Meminta Data Array

Memodifikasi PostgreSQL susunan

Anda dapat memperbarui semua atau satu elemen array.

Berikut isi tabel Karyawan:

Memodifikasi PostgreSQL susunan

Mari kita perbarui nomor telepon kedua karyawan James Bush, yang idnya 3:

Memodifikasi PostgreSQL susunan

Jalankan perintah berikut:

UPDATE Employees
SET contact [ 2 ] = '(408)-589-89347'
WHERE
   id = 3;

Perintah harus dijalankan dengan sukses:

Memodifikasi PostgreSQL susunan

Mari kita menanyakan tabel untuk memeriksa apakah perubahan berhasil:

Memodifikasi PostgreSQL susunan

Perubahan itu berhasil.

Mencari di PostgreSQL susunan

Saat ini, tabel Karyawan kami adalah sebagai berikut:

Mencari di PostgreSQL susunan

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:

Mencari di PostgreSQL susunan

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:

Memperluas Array

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)

  1. Dari bilah navigasi di sebelah kiri- Klik rbases.
  2. Klik tombol Demo

membuat PostgreSQL Array Menggunakan pgAdmin

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.

membuat PostgreSQL Array Menggunakan pgAdmin

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:

Memasukkan PostgreSQL Nilai Array

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:

Memasukkan PostgreSQL Nilai Array

Meminta Data Array

Langkah 1) Untuk melihat isi tabel Karyawan, ketikkan kueri berikut pada editor kueri:

SELECT * FROM Employees;

Langkah 2) Klik tombol Jalankan:

Meminta Data Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Meminta Data Array Menggunakan pgAdmin

Langkah 3) Untuk melihat kontak pertama karyawan:

  1. Ketik pertanyaan berikut di editor pertanyaan:
    SELECT name, contact[1]
    FROM Employees;
    
  2. Klik tombol Jalankan.

Meminta Data Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Meminta Data Array Menggunakan pgAdmin

Langkah 4) Untuk menggabungkan pernyataan SELECT dengan klausa WHERE:

  1. Ketik perintah berikut pada editor kueri:
    SELECT
       name
    FROM
       Employees
    WHERE
       contact [ 2 ] = '(408)-567-78234';
    
  2. Klik tombol Jalankan.

Meminta Data Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Meminta Data Array Menggunakan pgAdmin

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.

Memodifikasi PostgreSQL Array Menggunakan pgAdmin

Langkah 3)

1.Ketik perintah berikut pada editor kueri untuk memeriksa apakah perubahan berhasil:

SELECT * FROM Employees;

2.Klik tombol Jalankan.

Memodifikasi PostgreSQL Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Memodifikasi PostgreSQL Array Menggunakan pgAdmin

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.

Mencari di PostgreSQL Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Mencari di PostgreSQL Array Menggunakan pgAdmin

Memperluas Array

Langkah 1) Ketik pertanyaan berikut di editor pertanyaan:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Langkah 2) Klik tombol Jalankan.

Memperluas Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Memperluas Array Menggunakan pgAdmin

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