कोर्स
एक डेटाबेस, प्रोफेसर और विश्वविद्यालय जैसे वास्तविक जीवन के एंटिटी (इकाइयों) को तालिकाओं में संग्रहीत करके मॉडल करता है। प्रत्येक तालिका में एक ही प्रकार की एंटिटी का डेटा होता है। इससे एंटिटियों को केवल एक बार संग्रहीत करके अनावश्यक दोहराव कम होता है। उदाहरण के लिए, किसी कंपनी का विवरण केवल एक ही पंक्ति में होना पर्याप्त है। अंत में, एक डेटाबेस एंटिटियों के बीच संबंधों को भी मॉडल करने के लिए उपयोग किया जा सकता है।
SQL का अर्थ है Structured Query Language, जो एक कंप्यूटर भाषा है जिसका उपयोग रिलेशनल डेटाबेस में संग्रहीत डेटा को स्टोर करने, संशोधित करने और प्राप्त करने के लिए किया जाता है।
SQL रिलेशनल डेटाबेस सिस्टम की मानक भाषा है। सभी रिलेशनल डेटाबेस मैनेजमेंट सिस्टम (RDMS) जैसे MySQL, MS Access, Oracle, Sybase, Informix, Postgres और SQL Server अपनी मानक डेटाबेस भाषा के रूप में SQL का उपयोग करते हैं।
PostgreSQL डेटाबेस
information_schema एक मेटा-डेटाबेस है जो आपके मौजूदा डेटाबेस के बारे में जानकारी रखता है। यह केवल PostgreSQL के लिए विशिष्ट नहीं है, बल्कि MySQL या SQL Server जैसे अन्य डेटाबेस मैनेजमेंट सिस्टम में भी उपलब्ध है। information_schema में कई तालिकाएँ होती हैं जिन्हें आप परिचित SELECT * FROM सिंटैक्स के साथ क्वेरी कर सकते हैं:
- tables: आपके मौजूदा डेटाबेस की सभी तालिकाओं के बारे में जानकारी
- columns: आपके मौजूदा डेटाबेस की सभी तालिकाओं की सभी कॉलम के बारे में जानकारी
SELECT table_schema, table_name
FROM information_schema.tables;
table_schema | table_name
-------------------+------------------------------
pg_catalog | pg_statistic
pg_catalog | pg_type
pg_catalog | pg_policy
pg_catalog | pg_authid
pg_catalog | pg_shadow
public | university_professors
pg_catalog | pg_settings
...
SQL में कमांड
डेटा डेफिनिशन लैंग्वेज (DDL)
- CREATE: यह एक नई तालिका या तालिका का व्यू बनाता है।
- ALTER: यह मौजूदा तालिका को संशोधित करता है।
- DROP: यह पूरी तालिका या डेटाबेस में अन्य ऑब्जेक्ट्स को हटा देता है।
डेटा मैनिपुलेशन लैंग्वेज (DML)
- SELECT: यह एक या अधिक तालिकाओं से विशिष्ट रिकॉर्ड निकालता है।
- INSERT: यह मौजूदा तालिका में एक रिकॉर्ड बनाता है।
- UPDATE: यह तालिका के मौजूदा रिकॉर्ड को संशोधित करता है।
- DELETE: यह तालिका के रिकॉर्ड को हटाता है और आवश्यकता पड़ने पर पूरी तालिका भी हटा सकता है।
किसी विशेष तालिका के कॉलम देखना
information_schema में "columns" तालिका में कॉलम से संबंधित जानकारी भी होती है। एक बार जब आपको किसी तालिका का नाम पता चल जाए, तो आप "columns" तालिका तक पहुँचकर उसके कॉलम की क्वेरी कर सकते हैं।
SELECT table_name, column_name, data_type FROM information_schema.columns WHERE table_name = 'pg_config';
table_name | column_name | data_type
-----------+-------------+-----------
pg_config | name | text
pg_config | setting | text
यहाँ आप देखते हैं कि सिस्टम तालिका pg_config में केवल दो कॉलम हैं — संभवतः नाम-मूल्य (name-value) युग्म संग्रहीत करने के लिए।
इंटरैक्टिव उदाहरण
इस अभ्यास में, आपको केवल 'public' स्कीमा से जानकारी की आवश्यकता होगी, जिसे tables और columns तालिकाओं के कॉलम table_schema के रूप में निर्दिष्ट किया गया है। 'public' स्कीमा उपयोगकर्ता-परिभाषित तालिकाओं और डेटाबेस के बारे में जानकारी रखता है। table_schema के अन्य प्रकार सिस्टम जानकारी रखते हैं — यहाँ, हमें केवल उपयोगकर्ता-परिभाषित चीज़ों में रुचि है।
आप मौजूदा डेटाबेस में सभी तालिका नामों की जानकारी प्राप्त करेंगे, जबकि अपनी क्वेरी को 'public' table_schema तक सीमित रखेंगे।
## Query the right table in information_schema
SELECT table_name
FROM information_schema.tables
## Specify the correct table_schema value
WHERE table_schema = 'public';
जब हम ऊपर दिया गया कोड चलाते हैं, तो यह निम्नलिखित परिणाम देता है:

SQL में रिलेशनल डेटाबेस के बारे में और जानने के लिए, हमारे पाठ्यक्रम Introduction to Relational Databases in SQL में यह वीडियो देखें।
यह सामग्री DataCamp के Introduction to Relational Databases in SQL पाठ्यक्रम से ली गई है, लेखक: Timo Grossenbacher।
हमारा Introduction to Indexing in SQL ट्यूटोरियल देखें।