PostgreSQL
 sql >> डेटाबेस >  >> RDS >> PostgreSQL

PostgreSQL VALUES कमांड समझाया गया

PostgreSQL में, VALUES कमांड तालिका के रूप में एक या अधिक पंक्तियों का एक सेट देता है। यह एक टेबल वैल्यू कंस्ट्रक्टर है जिसे बड़े कमांड के हिस्से के रूप में या स्टैंडअलोन एसक्यूएल स्टेटमेंट के रूप में इस्तेमाल किया जा सकता है।

सिंटैक्स

आधिकारिक वाक्य रचना इस प्रकार है:

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

उदाहरण

यह कैसे काम करता है यह दिखाने के लिए यहां एक सरल उदाहरण दिया गया है:

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

परिणाम:

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

परिणामी स्तंभों को परोक्ष रूप से column1 . नाम दिया गया है , column2 , column3 और इसी तरह (हालाँकि, इसे बदला जा सकता है - देखें SELECT इस लेख में बाद में स्टेटमेंट विकल्प)।

प्रत्येक पंक्ति को कोष्ठक में संलग्न एक या अधिक मानों द्वारा परिभाषित किया गया है। जब एक से अधिक पंक्तियों को निर्दिष्ट किया जाता है, तो सभी पंक्तियों में समान तत्वों की संख्या होनी चाहिए

यहां एक और उदाहरण दिया गया है:

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

परिणाम:

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

ORDER BY खंड

सिंटैक्स ORDER BY . के उपयोग की अनुमति देता है परिणाम आदेश देने के लिए खंड।

उदाहरण:

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

परिणाम:

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

LIMIT खंड

हम LIMIT . का उपयोग कर सकते हैं आउटपुट वाली पंक्तियों की संख्या को सीमित करने के लिए क्लॉज:

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

परिणाम:

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

OFFSET खंड

यहां OFFSET . का उपयोग करने का एक उदाहरण दिया गया है VALUES . के साथ क्लॉज आदेश:

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

परिणाम:

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

FETCH खंड

यहां FETCH . का उपयोग करने का एक उदाहरण दिया गया है खंड:

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

परिणाम:

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

एक SELECT के भीतर कथन

हम VALUES . का भी उपयोग कर सकते हैं SELECT . के अंदर स्टेटमेंट कथन, मानो VALUES टेबल कंस्ट्रक्टर एक वास्तविक टेबल थे:

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

परिणाम:

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

हर रो कंस्ट्रक्टर में मानों की संख्या समान होनी चाहिए

प्रत्येक पंक्ति निर्माता एक ही VALUES . में स्टेटमेंट की वैल्यू लिस्ट में मानों की संख्या समान होनी चाहिए।

इसलिए, हम ऐसा नहीं कर सकते:

VALUES (1, 2), (3);

परिणाम:

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

VALUES का उपयोग करना डेटा डालने के लिए

हम VALUES . का उपयोग कर सकते हैं INSERT . के संयोजन में कथन तालिका में डेटा सम्मिलित करने के लिए कथन।

उदाहरण:

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

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

इसने Idiots . नाम की एक टेबल बनाई और उसमें तीन पंक्तियाँ डालीं।

अब हम SELECT . का उपयोग कर सकते हैं तालिका में नए मान देखने के लिए कथन:

SELECT * FROM Idiots;

परिणाम:

+---------+-----------+----------+
| 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. PostgreSQL:क्वेरी का परिणाम डेटा के लिए कोई गंतव्य नहीं है

  2. सम्मिलित नहीं किया जा सकता:त्रुटि:सरणी मान { या आयाम जानकारी . से प्रारंभ होना चाहिए

  3. Oracle से PostgreSQL:माइग्रेट करने के कारण

  4. SQL, OID को पोस्टग्रेज करता है, वे क्या हैं और वे क्यों उपयोगी हैं?

  5. Psql सभी तालिकाओं को सूचीबद्ध करें