Apa itu Array PostgreSQL?
Dalam PostgreSQL, kita dapat menentukan lajur sebagai susunan jenis data yang sah. Jenis data boleh dibuat dalam bentuk, ditentukan pengguna, atau jenis yang dihitung. Selain daripada ini, tatasusunan memainkan peranan penting dalam PostgreSQL.
Setiap jenis data PostgreSQL yang sesuai dilengkapi dengan jenis array yang berkaitan. Sebagai contoh, jenis data integer mempunyai jenis array integer [], jenis data watak mempunyai jenis array watak], dll.
Dalam tutorial PostgreSQL ini, anda akan belajar:
- Apa itu Array PostgreSQL?
- Membuat Susunan PostgreSQL
- Memasukkan Nilai Array PostgreSQL
- Menanya Data Array
- Mengubah Array PostgreSQL
- Mencari dalam Array PostgreSQL
- Memperluas Susunan
- Menggunakan pgAdmin
Membuat Susunan PostgreSQL
Dalam contoh berikut, kami akan membuat jadual bernama Karyawan dengan lajur kenalan yang ditakrifkan sebagai susunan teks:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Perintah harus berjalan dengan jayanya.
Memasukkan Nilai Array PostgreSQL
Mari kita masukkan nilai ke dalam jadual di atas:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Penyisipan harus berjaya dijalankan.
Nilai lajur ketiga, yaitu, kontak, telah dimasukkan sebagai larik. Ini dapat dicapai dengan menggunakan konstruktor ARRAY.
Dalam contoh ini, kami telah memasukkannya dalam tanda kurung persegi []. Kami mempunyai dua kenalan untuk pekerja Alice John.
Masih mungkin kita menggunakan pendakap keriting {} seperti gambar di bawah:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Perintah harus berjaya dijalankan.
Pernyataan di atas akan memasukkan dua baris ke dalam jadual Pekerja. Apabila menggunakan pendakap keriting, susunan dibungkus dalam tanda kutip tunggal (') sementara item susunan teks dibungkus dalam tanda petik ganda (").
Menanya Data Array
Untuk bertanya elemen array, kami menggunakan pernyataan SELECT.
Untuk melihat kandungan jadual Karyawan kami, kami menjalankan perintah berikut:
SELECT * FROM Employees;
Ini mengembalikan perkara berikut:
Unsur-unsur lajur susunan, iaitu, kontak, telah dilampirkan dalam pendakap kerinting {}.
Untuk mengakses elemen array itu sendiri, kami menambah langganan dalam tanda kurung persegi []. Elemen pertama dalam array berada pada kedudukan 1.
Sebagai contoh, kita perlu mendapatkan nama pekerja dan hanya kenalan pertama mereka untuk pekerja yang mempunyai lebih daripada satu kenalan. Kami boleh mengaksesnya sebagai kenalan [1].
Mari kita lihat ini:
SELECT name, contact[1]FROM Employees;
Ini akan mengembalikan perkara berikut:
Kita boleh menggunakan pernyataan SELECT bersama dengan klausa WHERE untuk menapis baris berdasarkan lajur array.
Sebagai contoh, untuk melihat pekerja dengan (408) -567-78234 sebagai kenalan kedua, kita boleh menjalankan perintah berikut:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
Ini akan mengembalikan perkara berikut:
Mengubah Array PostgreSQL
Anda boleh mengemas kini semua atau satu elemen array.
Berikut adalah kandungan jadual Pekerja:
Mari kita kemas kini nombor telefon kedua pekerja James Bush, yang idnya adalah 3:
Jalankan arahan berikut:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Perintah harus berjaya dijalankan:
Mari kita tanyakan jadual untuk memeriksa apakah perubahan itu berjaya:
Perubahan itu berjaya.
Mencari dalam Array PostgreSQL
Pada masa ini, jadual Karyawan kami adalah seperti berikut:
Andaikan kita perlu mengetahui siapa yang memiliki kenalan (408) -783-5731 tanpa mengira kedudukan dalam larik kenalan, kita dapat menggunakan fungsi SETIAP () seperti yang ditunjukkan di bawah:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Ini akan mengembalikan perkara berikut:
Memperluas Susunan
Kita boleh membahagikan nilai array menjadi baris. Proses ini dikenali sebagai pengembangan array.
Dalam contoh jadual Pekerja, terdapat beberapa pekerja dengan dua kenalan dalam tatasusunan kenalan. Kita boleh membahagikannya menjadi baris yang berasingan.
PostgreSQL menyediakan fungsi paling tidak () yang dapat digunakan untuk ini.
Sebagai contoh:
SELECTname,unnest(contact)FROMEmployees;
Ini akan mengembalikan perkara berikut:
Pekerja Alice John dan James Bush, mempunyai dua orang kenalan. Kita boleh dibahagikan kepada baris yang berasingan.
Menggunakan pgAdmin
Membuat Susunan PostgreSQL
Untuk mencapai perkara yang sama melalui pgAdmin, lakukan ini:
Langkah 1) Log masuk ke akaun pgAdmin anda.
Langkah 2)
- Dari bar navigasi di sebelah kiri- Klik rbases.
- Klik pada butang Demo
Langkah 3) Taipkan pertanyaan di editor pertanyaan untuk membuat jadual Pekerja:
CREATE TABLE Employees (id int PRIMARY KEY,name VARCHAR (100),contact TEXT []);
Langkah 4) Klik butang Laksanakan.
Memasukkan Nilai Array PostgreSQL
Langkah 1) Taipkan pertanyaan berikut dalam editor pertanyaan:
INSERT INTO EmployeesVALUES(1,'Alice John',ARRAY [ '(408)-743-9045','(408)-567-7834' ]);
Langkah 2) Klik butang Laksanakan:
Langkah 3)
Untuk menggunakan pendakap kerinting dalam pertanyaan
Langkah 1) Taipkan pertanyaan berikut dalam editor pertanyaan:
INSERT INTO EmployeesVALUES(2,'Kate Joel','{"(408)-783-5731"}'),(3,'James Bush','{"(408)-745-8965","(408)-567-78234"}');
Langkah 2) Klik butang Laksanakan:
Menanya Data Array
Langkah 1) Untuk melihat kandungan jadual Pekerja, ketik pertanyaan berikut pada penyunting pertanyaan:
SELECT * FROM Employees;
Langkah 2) Klik butang Laksanakan:
Ia harus mengembalikan yang berikut:
Langkah 3) Untuk melihat kenalan pertama pekerja:
- Taipkan pertanyaan berikut dalam editor pertanyaan:
SELECT name, contact[1]FROM Employees;
- Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Langkah 4) Untuk menggabungkan pernyataan SELECT dengan klausa DI MANA:
- Ketik perintah berikut pada editor pertanyaan:
SELECTnameFROMEmployeesWHEREcontact [ 2 ] = '(408)-567-78234';
- Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Mengubah Array PostgreSQL
Langkah 1) Untuk mengemas kini kenalan kedua pengguna dengan id 3, jalankan arahan berikut:
UPDATE EmployeesSET contact [ 2 ] = '(408)-589-89347'WHEREid = 3;
Langkah 2) Klik butang Laksanakan.
Langkah 3)
1. Ketik perintah berikut pada editor pertanyaan untuk memeriksa sama ada perubahan itu berjaya:
SELECT * FROM Employees;
2. Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Mencari dalam Array PostgreSQL
Langkah 1) Taipkan pertanyaan berikut dalam editor pertanyaan:
SELECTname,contactFROMEmployeesWHERE'(408)-783-5731' = ANY (contact);
Langkah 2) Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Memperluas Susunan
Langkah 1) Taipkan pertanyaan berikut dalam editor pertanyaan:
SELECTname,unnest(contact)FROMEmployees;
Langkah 2) Klik butang Laksanakan.
Ia harus mengembalikan yang berikut:
Ringkasan:
- PostgreSQL membolehkan kita menentukan lajur jadual sebagai jenis array.
- Susunan mestilah jenis data yang sah seperti bilangan bulat, watak, atau jenis yang ditentukan pengguna.
- Untuk memasukkan nilai ke dalam lajur larik, kami menggunakan pembina ARRAY.
- Sekiranya terdapat lebih daripada satu elemen dalam baris lajur array yang sama, elemen pertama berada di kedudukan 1.
- Setiap nilai dapat diakses dengan melewati langganan dalam tanda kurung siku [].
- Unsur-unsur array boleh diambil menggunakan pernyataan SELECT.
- Nilai lajur susunan dapat ditutup dalam kurungan siku [] atau pendakap kerinting {}.
- Kita boleh mencari nilai lajur array menggunakan fungsi SETIAP ().
Muat turun Pangkalan Data yang digunakan dalam Tutorial ini