PostgreSQL Array: Fungsi, Jenis, Contoh

โšก Ringkasan Cerdas

PostgreSQL Array memungkinkan Anda mendefinisikan kolom tabel sebagai array dari tipe data valid apa pun. Ini mencakup pembuatan kolom array, penyisipan nilai dengan konstruktor ARRAY atau kurung kurawal, kueri dan modifikasi elemen, serta pencarian dengan ANY().

  • ๐Ÿ“ฆ Definisi: Apa saja PostgreSQL tipe data memiliki tipe array yang sesuai, seperti integer[].
  • ๐Ÿงฑ Buat dan Sisipkan: Gunakan kolom TEXT[] dan konstruktor ARRAY atau kurung kurawal.
  • ๐Ÿ”Ž Query: Akses elemen dengan indeks bawah; elemen pertama berada di posisi 1.
  • ๏ธ Ubah dan Cari: Perbarui elemen tunggal dan nilai pencarian dengan ANY().
  • โž— Memperluas: Fungsi unnest() memisahkan nilai-nilai array ke dalam baris-baris terpisah.

PostgreSQL susunan

Apa itu PostgreSQL Himpunan?

In PostgreSQLKita dapat mendefinisikan kolom sebagai larik tipe data yang valid. Tipe data tersebut dapat berupa tipe bawaan, tipe yang ditentukan pengguna, atau tipe enumerasi. Selain itu, larik memainkan peran penting dalam PostgreSQL.

Setiap yang sesuai PostgreSQL Tipe data integer memiliki tipe array yang sesuai. Misalnya, tipe data integer memiliki tipe array integer[], tipe data character memiliki tipe array character[], 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-nilai pada kolom ketiga, yaitu kontak, telah dimasukkan sebagai sebuah array. Hal ini dicapai dengan menggunakan konstruktor ARRAY. Dalam contoh ini, kita telah membungkusnya dalam tanda kurung siku []. Kita 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-elemen dalam sebuah array, kita menggunakan pernyataan SELECT. Untuk melihat isi tabel Karyawan kita, kita menjalankan perintah berikut:

SELECT * FROM Employees;

Ini mengembalikan yang berikut:

Meminta Data Array

Elemen-elemen kolom array, yaitu kontak, telah dikurung dalam tanda kurung kurawal {}. Untuk mengakses elemen-elemen array itu sendiri, kita menambahkan indeks dalam tanda kurung siku []. Elemen pertama dalam array berada pada 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 seluruh atau satu elemen dari sebuah array. Berikut adalah isi dari 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 posisinya 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 memisahkan nilai-nilai dalam sebuah array menjadi beberapa baris. Proses ini dikenal sebagai perluasan array. Dalam contoh tabel Karyawan, terdapat beberapa karyawan dengan dua kontak dalam array kontak. Kita dapat memisahkan ini menjadi baris-baris terpisah. PostgreSQL menyediakan fungsi unnest() yang dapat digunakan untuk ini. Misalnya:

SELECT
   name,
   unnest(contact)
FROM
   Employees;

Ini akan mengembalikan hal berikut:

Memperluas Array

Karyawan Alice John dan James Bush memiliki dua kontak. Kita dapat memisahkan ini ke dalam 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 Database.
  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 tanda kurung kurawal dalam kueri, ketik kueri berikut di editor kueri:

INSERT INTO Employees
VALUES
   (
    2,
      'Kate Joel',
      '{"(408)-783-5731"}'
   ),
   (
      3,
      'James Bush',
      '{"(408)-745-8965","(408)-567-78234"}'
   );

Kemudian klik tombol Eksekusi:

Memasukkan PostgreSQL Nilai Array

Meminta Data Array

Langkah 1) Untuk melihat isi tabel Karyawan, ketik kueri berikut di 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, ketik kueri berikut di editor kueri dan klik tombol Eksekusi:

SELECT name, contact[1]
FROM Employees;

Meminta Data Array Menggunakan pgAdmin

Seharusnya mengembalikan hal berikut:

Meminta Data Array Menggunakan pgAdmin

Langkah 4) Untuk menggabungkan pernyataan SELECT dengan klausa WHERE, ketik perintah berikut di editor kueri dan klik tombol Eksekusi:

SELECT
   name
FROM
   Employees
WHERE
   contact [ 2 ] = '(408)-567-78234';

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) Ketik perintah berikut di editor kueri untuk memeriksa apakah perubahan berhasil, lalu klik tombol Eksekusi:

SELECT * FROM Employees;

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

Unduh Database yang digunakan dalam Tutorial ini

Pertanyaan Umum Demo Slot

Ya. Asisten AI dapat menulis pernyataan CREATE TABLE dengan kolom array, perintah INSERT menggunakan ARRAY atau kurung kurawal, dan fungsi seperti unnest() atau ANY(). Uji SQL yang dihasilkan pada skema Anda sebelum menjalankannya.

Ya. Alat AI dapat memberi saran apakah kolom array atau tabel anak yang dinormalisasi sesuai dengan data Anda. Array cocok untuk daftar kecil dan tetap, sedangkan tabel terpisah cocok untuk relasi besar atau yang sering dikueri. Validasi dengan pola kueri Anda.

Gunakan fungsi array_length(array, dimension). Misalnya, array_length(contact, 1) mengembalikan jumlah elemen pada dimensi pertama dari array contact.

Ya. Gunakan fungsi array_append(array, value) atau operator penggabungan ||. Misalnya, UPDATE Employees SET contact = array_append(contact, '(408)-000-0000') menambahkan elemen baru.

Ringkaslah postingan ini dengan: