PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

Perintah PostgreSQL VALUES Dijelaskan

Di PostgreSQL, VALUES perintah mengembalikan satu set satu atau lebih baris sebagai tabel. Ini adalah konstruktor nilai tabel yang dapat digunakan sebagai bagian dari perintah yang lebih besar, atau sebagai pernyataan SQL mandiri.

Sintaks

Sintaks resminya seperti ini:

VALUES ( expression [, ...] ) [, ...]
    [ ORDER BY sort_expression [ ASC | DESC | USING operator ] [, ...] ]
    [ LIMIT { count | ALL } ]
    [ OFFSET start [ ROW | ROWS ] ]
    [ FETCH { FIRST | NEXT } [ count ] { ROW | ROWS } ONLY ]

Contoh

Berikut adalah contoh sederhana untuk mendemonstrasikan cara kerjanya:

VALUES (1, 2, 3), (4, 5, 6);

Hasil:

+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
|       1 |       2 |       3 |
|       4 |       5 |       6 |
+---------+---------+---------+

Kolom yang dihasilkan secara implisit bernama column1 , column2 , column3 dan seterusnya (walaupun, ini dapat diubah – lihat SELECT opsi pernyataan nanti di artikel ini).

Setiap baris didefinisikan oleh satu atau lebih nilai yang diapit dalam tanda kurung. Ketika lebih dari satu baris ditentukan, semua baris harus memiliki jumlah elemen yang sama

Ini contoh lain:

VALUES ('Peter', 'Griffin'), ('Bart', 'Simpson');

Hasil:

+---------+---------+
| column1 | column2 |
+---------+---------+
| Peter   | Griffin |
| Bart    | Simpson |
+---------+---------+

The ORDER BY Klausa

Sintaksnya memungkinkan penggunaan ORDER BY klausa untuk mengurutkan hasil.

Contoh:

VALUES (1, 2, 3), (4, 5, 6), (7, 8, 9) ORDER BY column1 DESC;

Hasil:

+---------+---------+---------+
| column1 | column2 | column3 |
+---------+---------+---------+
|       7 |       8 |       9 |
|       4 |       5 |       6 |
|       1 |       2 |       3 |
+---------+---------+---------+

LIMIT Klausa

Kita dapat menggunakan LIMIT klausa untuk membatasi jumlah baris yang dihasilkan:

VALUES 
    ('Peter', 'Griffin'), 
    ('Homer', 'Simpson'), 
    ('Ned', 'Flanders')
LIMIT 2;

Hasil:

+---------+---------+
| column1 | column2 |
+---------+---------+
| Peter   | Griffin |
| Homer   | Simpson |
+---------+---------+

OFFSET Klausa

Berikut adalah contoh penggunaan OFFSET klausa dengan VALUES perintah:

VALUES 
    (1, 'Peter', 'Griffin'), 
    (2, 'Homer', 'Simpson'), 
    (3, 'Ned', 'Flanders'), 
    (4, 'Barney', 'Rubble'), 
    (5, 'George', 'Costanza')
OFFSET 3;

Hasil:

+---------+---------+----------+
| column1 | column2 | column3  |
+---------+---------+----------+
|       4 | Barney  | Rubble   |
|       5 | George  | Costanza |
+---------+---------+----------+

FETCH Klausa

Berikut ini contoh penggunaan FETCH klausa:

VALUES 
    (1, 'Peter', 'Griffin'), 
    (2, 'Homer', 'Simpson'), 
    (3, 'Ned', 'Flanders'), 
    (4, 'Barney', 'Rubble'), 
    (5, 'George', 'Costanza')
FETCH FIRST 3 ROWS ONLY; 

Hasil:

+---------+---------+----------+
| column1 | column2 | column3  |
+---------+---------+----------+
|       1 | Peter   | Griffin  |
|       2 | Homer   | Simpson  |
|       3 | Ned     | Flanders |
+---------+---------+----------+

Dalam SELECT Pernyataan

Kami juga dapat menggunakan VALUES pernyataan dalam SELECT pernyataan, seolah-olah VALUES konstruktor tabel adalah tabel yang sebenarnya:

SELECT
   FirstName,
   LastName
FROM
   (VALUES 
        (1, 'Peter', 'Griffin'), 
        (2, 'Homer', 'Simpson'), 
        (3, 'Ned', 'Flanders')
   ) AS Idiots(IdiotId, FirstName, LastName)
WHERE IdiotId = 2;

Hasil:

+-----------+----------+
| firstname | lastname |
+-----------+----------+
| Homer     | Simpson  |
+-----------+----------+

Setiap Konstruktor Baris Harus Berisi Jumlah Nilai yang Sama

Setiap konstruktor baris dalam VALUES yang sama pernyataan harus memiliki jumlah nilai yang sama dalam daftar nilainya.

Oleh karena itu, kami tidak dapat melakukan ini:

VALUES (1, 2), (3);

Hasil:

ERROR:  VALUES lists must all be the same length
LINE 1: VALUES (1, 2), (3);
                        ^

Menggunakan VALUES untuk Memasukkan Data

Kita dapat menggunakan VALUES pernyataan bersama dengan INSERT pernyataan untuk menyisipkan data ke dalam tabel.

Contoh:

CREATE TABLE Idiots (
    IdiotId int,
    FirstName varchar(50),
    LastName varchar(50)
    );

INSERT INTO Idiots VALUES 
    (1, 'Peter', 'Griffin'), 
    (2, 'Homer', 'Simpson'), 
    (3, 'Ned', 'Flanders');

Itu membuat tabel bernama Idiots dan memasukkan tiga baris ke dalamnya.

Sekarang kita dapat menggunakan SELECT pernyataan untuk melihat nilai baru dalam tabel:

SELECT * FROM Idiots;

Hasil:

+---------+-----------+----------+
| idiotid | firstname | lastname |
+---------+-----------+----------+
|       1 | Peter     | Griffin  |
|       2 | Homer     | Simpson  |
|       3 | Ned       | Flanders |
+---------+-----------+----------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara Mendapatkan Tanggal Kemarin di PostgreSQL

  2. [Video] Kekuatan Pengindeksan di PostgreSQL

  3. Array agregat Postgresql

  4. Pilih catatan pertama jika tidak ada yang cocok

  5. pgAdmin III Mengapa hasil kueri dipersingkat?