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

PostgreSQL में डेटा कैसे डालें और हटाएं


परिचय

तालिकाओं से रिकॉर्ड जोड़ना और हटाना कुछ सबसे सामान्य ऑपरेशन हैं जो डेटाबेस करते हैं। डेटा जोड़ने में तालिका और कॉलम नाम निर्दिष्ट करना शामिल है जिसमें आप मान जोड़ना चाहते हैं और साथ ही वे मान जो आप प्रत्येक फ़ील्ड में दर्ज करना चाहते हैं। रिकॉर्ड को हटाने में सही पंक्ति या पंक्तियों की पहचान करना और उन्हें तालिका से हटाना शामिल है।

इस गाइड में, हम कवर करेंगे कि SQL INSERT . का उपयोग कैसे करें और DELETE PostgreSQL के साथ कमांड। इसमें मूल सिंटैक्स, संसाधित किए गए डेटा के बारे में डेटा जानकारी कैसे लौटाएं, और एक ही कथन में एकाधिक पंक्तियों को कैसे जोड़ें या निकालें शामिल हैं।



तालिका की संरचना की समीक्षा करना

INSERT . का उपयोग करने से पहले आदेश, आपको तालिका की संरचना को जानना चाहिए ताकि आप तालिका के कॉलम, डेटा प्रकार और बाधाओं द्वारा लगाई गई आवश्यकताओं को समायोजित कर सकें। आपके डेटाबेस क्लाइंट के आधार पर ऐसा करने के कुछ अलग तरीके हैं।

यदि आप psql . का उपयोग कर रहे हैं कमांड लाइन क्लाइंट, इस जानकारी को खोजने का सबसे सीधा तरीका \d+ . का उपयोग करना है टूल में बनाया गया मेटा कमांड.

उदाहरण के लिए, employee called नामक तालिका की संरचना का पता लगाने के लिए , आप इसे टाइप करेंगे:

\d+ employee
                                                                Table "public.employee"   Column    | Type                        | Collation | Nullable | Default                                       | Storage  | Stats target | Description-------------+-----------------------------+-----------+----------+-----------------------------------------------+----------+--------------+------------- employee_id | integer                     |           | not null | nextval('employee_employee_id_seq'::regclass) | plain    |              | first_name  | character varying(45)       |           | not null |                                               | extended |              | last_name   | character varying(45)       |           | not null |                                               | extended |              | last_update | timestamp without time zone |           | not null | now()                                         | plain    |              |Indexes:    "employee_pkey" PRIMARY KEY, btree (employee_id)    "idx_employee_last_name" btree (last_name)Triggers:    last_updated BEFORE UPDATE ON employee FOR EACH ROW EXECUTE FUNCTION last_updated()Access method: heap

आउटपुट तालिका के कॉलम नाम, डेटा प्रकार और डिफ़ॉल्ट मान, दूसरों के बीच प्रदर्शित करता है।

\d+ मेटा कमांड केवल psql . के साथ उपलब्ध है क्लाइंट, इसलिए यदि आप किसी भिन्न क्लाइंट का उपयोग कर रहे हैं, तो आपको तालिका जानकारी को सीधे क्वेरी करना पड़ सकता है। आप इस तरह की क्वेरी के साथ अधिकांश प्रासंगिक जानकारी प्राप्त कर सकते हैं:

SELECT column_name, data_type, column_default, is_nullable, character_maximum_lengthFROM information_schema.columns WHERE table_name ='employee';
 column_name | data_type                   | column_default                                | is_nullable | character_maximum_length-------------+-----------------------------+-----------------------------------------------+-------------+-------------------------- employee_id | integer                     | nextval('employee_employee_id_seq'::regclass) | NO          | first_name  | character varying           |                                               | NO          | 45 last_name   | character varying           |                                               | NO          | 45 last_update | timestamp without time zone | now()                                         | NO          |(4 rows)

इनसे आपको तालिका की संरचना के बारे में अच्छी जानकारी मिलनी चाहिए ताकि आप मानों को सही ढंग से सम्मिलित कर सकें।



INSERT का उपयोग करना तालिकाओं में नए रिकॉर्ड जोड़ने के लिए

एसक्यूएल INSERT मौजूदा तालिका में डेटा की पंक्तियों को जोड़ने के लिए कमांड का उपयोग किया जाता है। एक बार जब आप तालिका की संरचना को जान लेते हैं, तो आप एक ऐसा कमांड बना सकते हैं जो तालिका के कॉलम से मेल खाने वाले संबंधित मानों के साथ नए रिकॉर्ड के लिए सम्मिलित हो।

कमांड का मूल सिंटैक्स इस तरह दिखता है:

INSERT INTO my_table(column1, column2)VALUES ('value1', 'value2');

कॉलम सूची में कॉलम सीधे मूल्य सूची में दिए गए मानों से मेल खाते हैं।

डिफ़ॉल्ट रूप से, INSERT कमांड ऑब्जेक्ट आईडी (आमतौर पर 0) और सफलतापूर्वक डाली गई पंक्तियों की संख्या देता है:

INSERT 0 1

उदाहरण के तौर पर, employee . में एक नया कर्मचारी डालने के लिए ऊपर सूचीबद्ध तालिका, हम टाइप कर सकते हैं:

INSERT INTO employee(first_name, last_name)VALUES ('Bob', 'Smith');
INSERT 0 1

यहां, हम first_name . के लिए मान प्रदान करते हैं और last_name अन्य स्तंभों को उनके डिफ़ॉल्ट मानों द्वारा पॉप्युलेट करने के लिए छोड़ते समय कॉलम। यदि आप तालिका को क्वेरी करते हैं, तो आप देख सकते हैं कि नया रिकॉर्ड जोड़ा गया है:

SELECT * FROM employee;
 employee_id | first_name | last_name |        last_update-------------+------------+-----------+----------------------------           1 | Bob        | Smith     | 2020-08-19 21:07:00.952454(1 row)


INSERT से डेटा लौटाना बयान

यदि आप तालिका में जोड़े गए डेटा के बारे में अतिरिक्त जानकारी चाहते हैं, तो आप RETURNING शामिल कर सकते हैं आपके कथन के अंत में खंड। RETURNING क्लॉज उन स्तंभों को निर्दिष्ट करता है जो अभी-अभी डाले गए रिकॉर्ड्स को प्रदर्शित करते हैं।

उदाहरण के लिए, अभी डाले गए रिकॉर्ड के सभी कॉलम प्रदर्शित करने के लिए, आप कुछ इस तरह टाइप कर सकते हैं:

INSERT INTO my_table(column_name, column_name_2)VALUES ('value', 'value2')RETURNING *;
 column_name | column_name_2-------------+--------------- value       | value2(1 row)INSERT 0 1

employee का उपयोग करना तालिका, यह कुछ इस तरह दिखाई देगी:

INSERT INTO employee(first_name, last_name)VALUES ('Sue', 'Berns')RETURNING *;
 employee_id | first_name | last_name |       last_update-------------+------------+-----------+--------------------------           2 | Sue        | Berns     | 2020-08-19 21:15:01.7622(1 row)INSERT 0 1

आप सम्मिलन से केवल विशिष्ट कॉलम लौटाना भी चुन सकते हैं। उदाहरण के लिए, यहां, हम केवल नए कर्मचारी की आईडी में रुचि रखते हैं:

INSERT INTO employee(first_name, last_name)VALUES ('Delores', 'Muniz')RETURNING employee_id;
 employee_id -------------           3(1 row)INSERT 0 1

हमेशा की तरह, आप आउटपुट में कॉलम नाम बदलने के लिए कॉलम एलियासेस का भी उपयोग कर सकते हैं:

INSERT INTO employee(first_name, last_name)VALUES ('Simone', 'Kohler')RETURNING employee_id AS "Employee ID";
 Employee ID-------------           4(1 row)INSERT 0 1


INSERT का उपयोग करना एक साथ कई पंक्तियाँ जोड़ने के लिए

एक बार में एक स्टेटमेंट को इंसर्ट करना एक बार में कई पंक्तियों को इंसर्ट करने की तुलना में अधिक समय लेने वाला और कम कुशल है। PostgreSQL आपको एक ही तालिका में जोड़ने के लिए कई पंक्तियों को निर्दिष्ट करने की अनुमति देता है। प्रत्येक नई पंक्ति को कोष्ठकों में समाहित किया गया है, कोष्ठकों के प्रत्येक सेट को अल्पविराम से अलग किया गया है।

बहु-रिकॉर्ड प्रविष्टि के लिए मूल सिंटैक्स इस तरह दिखता है:

INSERT INTO my_table(column_name, column_name_2)VALUES    ('value', 'value2'),    ('value3', 'value4'),    ('value5', 'value6');

employee . के लिए जिस तालिका का हम संदर्भ दे रहे हैं, आप एक ही कथन में चार नए कर्मचारियों को टाइप करके जोड़ सकते हैं:

INSERT INTO employee(first_name, last_name)VALUES    ('Abigail', 'Spencer'),    ('Tamal', 'Wayne'),    ('Katie', 'Singh'),    ('Felipe', 'Espinosa');
INSERT 0 4


DELETE का उपयोग करना टेबल से पंक्तियों को हटाने के लिए

एसक्यूएल DELETE कमांड का उपयोग टेबल से पंक्तियों को हटाने के लिए किया जाता है, जो INSERT . के पूरक क्रिया के रूप में कार्य करता है . किसी तालिका से पंक्तियों को निकालने के लिए, आपको WHERE के अंतर्गत मिलान मानदंड प्रदान करके उन पंक्तियों की पहचान करनी चाहिए जिन्हें आप लक्षित करना चाहते हैं खंड।

मूल सिंटैक्स इस तरह दिखता है:

DELETE FROM my_tableWHERE <condition>;

उदाहरण के लिए, हमारे employee . में प्रत्येक पंक्ति के लिए तालिका जिसका first_name . है Abigail . पर सेट करें , हम इसे टाइप कर सकते हैं:

DELETE FROM employeeWHERE first_name = 'Abigail';
DELETE 1

यहाँ वापसी मान इंगित करता है कि DELETE एक पंक्ति को हटाकर आदेश संसाधित किया गया था।



DELETE से डेटा लौटाना बयान

INSERT . की तरह आदेश, आप एक RETURNING जोड़कर हटाई गई पंक्तियों से प्रभावित पंक्तियों या विशिष्ट स्तंभों को वापस कर सकते हैं खंड:

DELETE FROM my_tableWHERE <condition>RETURNING *;

उदाहरण के लिए, हम यह सत्यापित कर सकते हैं कि हटाए गए employee से सभी कॉलम वापस करके सही रिकॉर्ड हटा दिया गया है यहाँ:

DELETE FROM employeeWHERE last_name = 'Smith'RETURNING *;
 employee_id | first_name | last_name |        last_update-------------+------------+-----------+----------------------------           1 | Bob        | Smith     | 2020-08-19 21:07:00.952454(1 row)DELETE 1


DELETE का उपयोग करना एक साथ कई पंक्तियों को हटाने के लिए

आप DELETE . से एक साथ कई आइटम हटा सकते हैं WHERE . में निर्दिष्ट चयन मानदंड में हेरफेर करके खंड।

उदाहरण के लिए, आईडी के आधार पर कई पंक्तियों को हटाने के लिए, आप कुछ इस तरह टाइप कर सकते हैं:

DELETE FROM employeeWHERE employee_id in (3,4)RETURNING *;
 employee_id | first_name | last_name |        last_update         -------------+------------+-----------+----------------------------           3 | Delores    | Muniz     | 2020-08-19 21:17:06.943608           4 | Simone     | Kohler    | 2020-08-19 21:19:19.298833(2 rows)DELETE 2

आप WHERE . को भी छोड़ सकते हैं दिए गए टेबल से सभी पंक्तियों को हटाने के लिए क्लॉज:

DELETE FROM employeeRETURNING *;
 employee_id | first_name | last_name |        last_update-------------+------------+-----------+----------------------------           2 | Sue        | Berns     | 2020-08-19 21:15:01.7622           6 | Tamal      | Wayne     | 2020-08-19 22:11:53.408531           7 | Katie      | Singh     | 2020-08-19 22:11:53.408531           8 | Filipe     | Espinosa  | 2020-08-19 22:11:53.408531(4 rows)DELETE 4

हालांकि, जागरूक रहें कि DELETE . का उपयोग करके डेटा की तालिका को खाली करना TRUNCATE . जितना कुशल नहीं है आदेश, जो तालिका को स्कैन किए बिना डेटा निकाल सकता है।



निष्कर्ष

इस लेख में, हमने आपके PostgreSQL टेबल में कौन सा डेटा है, इसे नियंत्रित करने के लिए कुछ सबसे महत्वपूर्ण कमांड पेश किए हैं। INSERT कमांड का उपयोग तालिकाओं में नया डेटा जोड़ने के लिए किया जा सकता है, जबकि DELETE कमांड निर्दिष्ट करता है कि किन पंक्तियों को हटाया जाना चाहिए। दोनों कमांड उन पंक्तियों को वापस करने में सक्षम हैं जो वे प्रभावित करते हैं और एक साथ कई पंक्तियों पर काम कर सकते हैं।

ये दो आदेश प्राथमिक तंत्र हैं जिनका उपयोग आपकी तालिका में रिकॉर्ड की संख्या में वृद्धि या कमी को प्रबंधित करने के लिए किया जाता है। उनके मूल वाक्य-विन्यास के साथ-साथ उन्हें अन्य खंडों के साथ संयोजित करने के तरीकों पर नियंत्रण प्राप्त करने से आप आवश्यकतानुसार अपनी तालिकाओं को भरने और साफ़ कर सकेंगे।




  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. PostgreSQL में INTERSECT कैसे काम करता है

  3. पोस्टग्रेज - पंक्तियों को कॉलम में स्थानांतरित करें

  4. Linux पर PostgreSQL डेटाबेस डिफ़ॉल्ट स्थान

  5. PostgreSQL में सिंगल कोट्स के साथ टेक्स्ट डालें