डेटा परिभाषा भाषा: Difference between revisions

From Vigyanwiki
No edit summary
No edit summary
 
(14 intermediate revisions by 4 users not shown)
Line 1: Line 1:
{{short description|Syntax for defining data structures}}[[SQL|एसक्यूएल]] के संदर्भ में, डेटा डेफिनिशन या डेटा डिस्क्रिप्शन लैंग्वेज (डीडीएल) डेटाबेस ऑब्जेक्ट्स जैसे टेबल, इंडेक्स और यूजर्स को बनाने और संशोधित करने के लिए सिंटैक्स है। डीडीएल स्टेटमेंट [[डेटा संरचना|डेटा संरचनाओं]], विशेष रूप से [[डेटाबेस स्कीमा]] को परिभाषित करने के लिए कंप्यूटर [[प्रोग्रामिंग भाषा]] के समान हैं। डीडीएल स्टेटमेंट के सामान्य उदाहरणों में शामिल हैं <code>CREATE</code>, <code>ALTER</code>, और <code>DROP</code> शामिल हैं |                                                                                                                                                                                                                 '''<big>इतिहास</big>'''
{{short description|Syntax for defining data structures}}[[SQL|एसक्यूएल]] के संदर्भ में, '''डेटा परिभाषा (डेफिनिशन लैंग्वेज)''' या '''डेटा विवरण भाषा (डीडीएल''') डेटाबेस ऑब्जेक्ट्स जैसे टेबल, इंडेक्स और यूजर्स को बनाने और संशोधित करने के लिए सिंटैक्स है। डीडीएल कथन [[डेटा संरचना|डेटा संरचनाओं]], विशेष रूप से [[डेटाबेस स्कीमा]] को परिभाषित करने के लिए कंप्यूटर [[प्रोग्रामिंग भाषा]] के समान हैं। डीडीएल कथन के सामान्य उदाहरणों में <code>CREATE</code>, <code>ALTER</code>, और <code>DROP</code> सम्मिलित हैं |                                                                                                        


डेटा डेफिनिशन लैंग्वेज और उसके नाम की अवधारणा [[कोडासिल]] [[डेटाबेस]] मॉडल के संबंध में प्रथम बार प्रस्तुत किया गया था, जहां डेटाबेस की स्कीमा [[सिंटेक्स (प्रोग्रामिंग भाषाएं)]] में प्रत्याशी [[डेटा मॉडल]] का [[सेट (सार डेटा प्रकार)]] रिकॉर्ड (कंप्यूटर साइंस), फील्ड (कंप्यूटर साइंस) का वर्णन करते हुए लिखी गई थी पश्चात में इसका उपयोग टेबल में इसे [[तालिका (डेटाबेस)]], कॉलम, डेटा प्रकार और इंटीग्रिटी बाधाओं की घोषणा के लिए [[स्ट्रक्चर्ड क्वेरी लैंग्वेज]] (एसक्यूएल) के सबसेट को संदर्भित करने के लिए उपयोग किया गया था। [[SQL-92|एसक्यूएल-92]] ने स्कीमा हेरफेर भाषा और स्कीमा सूचना तालिकाओं को क्वेरी स्कीमा में प्रस्तुत किया।<ref name="SQL92">{{cite web |title=Information Technology - Database Language SQL |url=http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt |website=SQL92 |publisher=Carnegie Mellon |access-date=12 November 2018}}</ref> इन सूचना तालिकाओं को एसक्यूएल:2003 में एसक्यूएल/स्कीमाटा के रूप में निर्दिष्ट किया गया था। डेटा या सूचना संरचनाओं का वर्णन करने के लिए किसी भी [[औपचारिक भाषा]] को संदर्भित करने के लिए डीडीएल शब्द का उपयोग सामान्य अर्थ में भी किया जाता है।
== '''<small>इतिहास</small>''' ==
डेटा परिभाषा भाषा और उसके नाम की अवधारणा [[कोडासिल]] [[डेटाबेस]] मॉडल के संबंध में प्रथम बार प्रस्तुत किया गया था, जहां डेटाबेस की स्कीमा [[सिंटेक्स (प्रोग्रामिंग भाषाएं)]] में प्रत्याशी [[डेटा मॉडल]] का [[सेट (सार डेटा प्रकार)]] रिकॉर्ड (कंप्यूटर साइंस), फील्ड (कंप्यूटर साइंस) का वर्णन करते हुए लिखी गई थी अंत में इसका उपयोग टेबल में इसे [[तालिका (डेटाबेस)|सारणी    (डेटाबेस)]], कॉलम, डेटा प्रकार और इंटीग्रिटी बाधाओं की घोषणा के लिए [[स्ट्रक्चर्ड क्वेरी लैंग्वेज|स्ट्रक्चर्ड क्वेरी भाषा]] (एसक्यूएल) के सबसेट को संदर्भित करने के लिए उपयोग किया गया था। [[SQL-92|एसक्यूएल-92]] ने स्कीमा परिवर्तन भाषा और स्कीमा सूचना सारणी  को क्वेरी स्कीमा में प्रस्तुत किया।<ref name="SQL92">{{cite web |title=Information Technology - Database Language SQL |url=http://www.contrib.andrew.cmu.edu/~shadow/sql/sql1992.txt |website=SQL92 |publisher=Carnegie Mellon |access-date=12 November 2018}}</ref> इन सूचना सारणी  को एसक्यूएल: 2003 में एसक्यूएल/स्कीमाटा के रूप में निर्दिष्ट किया गया था। डेटा या सूचना संरचनाओं का वर्णन करने के लिए किसी भी [[औपचारिक भाषा]] को संदर्भित करने के लिए डीडीएल शब्द का उपयोग सामान्य अर्थ में भी किया जाता है।


== संरचित क्वेरी भाषा (एसक्यूएल) ==
== संरचित क्वेरी भाषा (एसक्यूएल) ==
कई डेटा विवरण भाषाएँ कॉलम और डेटा प्रकारों को परिभाषित करने के लिए घोषणात्मक सिंटैक्स का उपयोग करती हैं। संरचित क्वेरी भाषा (एसक्यूएल), यद्यपि, अनिवार्य क्रियाओं के संग्रह का उपयोग करती है जिसका प्रभाव तालिकाओं या अन्य तत्वों की परिभाषाओं को जोड़कर, परिवर्तित या हटाकर डेटाबेस की स्कीमा को संशोधित करना है। इन कथनों को अन्य एसक्यूएल कथनों के साथ स्वतंत्र रूप से मिलाया जा सकता है, जिससे डीडीएल भिन्न भाषा नहीं है।
अनेक डेटा विवरण भाषाएँ कॉलम और डेटा प्रकारों को परिभाषित करने के लिए घोषणात्मक सिंटैक्स का उपयोग करती हैं। संरचित क्वेरी भाषा (एसक्यूएल), यद्यपि, अनिवार्य क्रियाओं के संग्रह का उपयोग करती है जिसका प्रभाव सारणी  या अन्य तत्वों की परिभाषाओं को जोड़कर, परिवर्तित या विस्थापित डेटाबेस की स्कीमा को संशोधित करना है। इन कथनों को अन्य एसक्यूएल कथनों के साथ स्वतंत्र रूप से युग्मित किया जा सकता है, जिससे डीडीएल भिन्न भाषा नहीं है।


=== क्रिएट स्टेटमेंट ===
=== क्रिएट कथन ===
क्रिएट कमांड का उपयोग नया डेटाबेस, टेबल, इंडेक्स या [[संग्रहीत प्रक्रिया]] स्थापित करने के लिए किया जाता है।
क्रिएट कमांड का उपयोग नया डेटाबेस, टेबल, इंडेक्स या [[संग्रहीत प्रक्रिया]] स्थापित करने के लिए किया जाता है।


एसक्यूएल में क्रिएट स्टेटमेंट [[संबंधपरक डेटाबेस प्रबंधन प्रणाली]] (आरडीबीएमएस) में घटक बनाता है। एसक्यूएल 1992 विनिर्देश में, बनाए जा सकने वाले घटकों के प्रकार स्कीमा, तालिका (डेटाबेस), दृश्य (डेटाबेस), डोमेन, वर्ण सेट, संयोजन, अनुवाद और अभिकथन हैं।<ref name="SQL92" />कई कार्यान्वयन अतिरिक्त तत्वों के निर्माण की अनुमति देने के लिए सिंटैक्स का विस्तार करते हैं, जैसे [[डाटाबेस इंडेक्स]] और उपयोगकर्ता प्रोफाइल। कुछ प्रणालियाँ, जैसे कि [[PostgreSQL|Postgreएसक्यूएल]] और माइक्रोसॉफ्ट एसक्यूएल सर्वर, [[डेटाबेस लेनदेन]] के अंदर CREATE और अन्य डीडीएल कमांड की अनुमति देती हैं और इस प्रकार वे [[रोलबैक (डेटा प्रबंधन)]] हो सकते हैं।<ref>{{cite web |last1=Laudenschlager |first1=Douglas |last2=Milener |first2=Gene |last3=Guyer |first3=Craig |last4=Byham |first4=Rick |title=Transactions (Transact-SQL) |url=https://docs.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-2017 |website=Microsoft Docs |publisher=Microsoft |access-date=12 November 2018}}</ref><ref>{{cite web |title=PostgreSQL Transactions |url=https://www.postgresql.org/docs/8.3/tutorial-transactions.html |website=PostgreSQL 8.3 Documentation |date=7 February 2013 |publisher=PostgreSQL |access-date=12 November 2018}}</ref>
एसक्यूएल में क्रिएट कथन [[संबंधपरक डेटाबेस प्रबंधन प्रणाली]] (आरडीबीएमएस) में घटक बनाता है। एसक्यूएल 1992 विनिर्देश में, बनाए जा सकने वाले घटकों के प्रकार स्कीमा, सारणी    (डेटाबेस), दृश्य (डेटाबेस), डोमेन, वर्ण सेट, संयोजन, अनुवाद और अभिकथन हैं।<ref name="SQL92" />अनेक कार्यान्वयन अतिरिक्त तत्वों के निर्माण की अनुमति देने के लिए सिंटैक्स का विस्तार करते हैं, जैसे [[डाटाबेस इंडेक्स]] और उपयोगकर्ता प्रोफाइल हैं। कुछ प्रणालियाँ, जैसे कि [[PostgreSQL|पोस्टग्रेएसक्यूएल]] और माइक्रोसॉफ्ट एसक्यूएल सर्वर, [[डेटाबेस लेनदेन|डेटाबेस आदान प्रदान]] के अंदर क्रिएट और अन्य डीडीएल कमांड की अनुमति देती हैं और इस प्रकार वे [[रोलबैक (डेटा प्रबंधन)]] हो सकते हैं।<ref>{{cite web |last1=Laudenschlager |first1=Douglas |last2=Milener |first2=Gene |last3=Guyer |first3=Craig |last4=Byham |first4=Rick |title=Transactions (Transact-SQL) |url=https://docs.microsoft.com/en-us/sql/t-sql/language-elements/transactions-transact-sql?view=sql-server-2017 |website=Microsoft Docs |publisher=Microsoft |access-date=12 November 2018}}</ref><ref>{{cite web |title=PostgreSQL Transactions |url=https://www.postgresql.org/docs/8.3/tutorial-transactions.html |website=PostgreSQL 8.3 Documentation |date=7 February 2013 |publisher=PostgreSQL |access-date=12 November 2018}}</ref>
==== क्रिएट टेबल कथन ====
सामान्यतः उपयोग किया जाने वाला क्रिएट कमांड क्रिएट टेबल कमांड है। सामान्य उपयोग है:


 
  CREATE TABLE ''[table name]'' ( ''[column definitions]'' ) ''[table parameters]''
==== क्रिएट टेबल स्टेटमेंट ====
आमतौर पर उपयोग किया जाने वाला क्रिएट कमांड क्रिएट टेबल कमांड है। सामान्य उपयोग है:
 
तालिका बनाएँ [तालिका का नाम] ([स्तंभ परिभाषाएँ]) [तालिका पैरामीटर]


स्तंभ परिभाषाएँ हैं:
स्तंभ परिभाषाएँ हैं:
*अल्पविराम से अलग की गई सूची जिसमें निम्न में से कोई भी हो
*अल्पविराम से भिन्न की गई सूची जिसमें निम्न में से कोई भी हो।
*कॉलम परिभाषा: [कॉलम नाम] [डेटा प्रकार] नल | नल नहीं} {कॉलम विकल्प}
*कॉलम परिभाषा: [कॉलम नाम] [डेटा प्रकार] शून्य | अशून्य} {कॉलम विकल्प}
* [[प्राथमिक कुंजी]] परिभाषा: प्राथमिक कुंजी ( [अल्पविराम से अलग कॉलम सूची])
* [[प्राथमिक कुंजी]] परिभाषा: प्राथमिक कुंजी ( [अल्पविराम से भिन्न  कॉलम सूची])
*बाधाएं: [बाधा परिभाषा]
*बाधाएं: [बाधा परिभाषा]
* संबंधपरक डेटाबेस प्रणाली विशिष्ट कार्यक्षमता
* संबंधपरक डेटाबेस प्रणाली विशिष्ट कार्यक्षमता


कुछ कॉलम वाले कर्मचारियों के नाम वाली तालिका बनाने के लिए उदाहरण है:
कुछ कॉलम वाले कर्मचारियों के नाम वाली सारणी बनाने के लिए उदाहरण है:
    आईडी पूर्णांक प्राथमिक कुंजी,
  CREATE TABLE employees ( id  INTEGER  PRIMARY KEY,
    first_name VARCHAR(50) शून्य नहीं है,
  first_name VARCHAR(50) not null,
    last_name VARCHAR(75) शून्य नहीं,
  last_name VARCHAR(75) not null,
    mid_name VARCHAR(50) शून्य नहीं है,
  mid_name VARCHAR(50) not null,
    dateofbirth DATE शून्य नहीं है
  dateofbirth DATE   not null
 
);


क्रिएट टेबल डीडीएल के कुछ रूपों में डीएमएल ([[डेटा हेरफेर भाषा]]) जैसी रचनाएँ शामिल हो सकती हैं, जैसे कि एसक्यूएल के CREATE TABLE AS SELECT (CTaS) सिंटैक्स।<ref>
क्रिएट टेबल डीडीएल के कुछ रूपों में डीएमएल ([[डेटा हेरफेर भाषा]]) जैसी रचनाएँ सम्मिलित हो सकती हैं, जैसे कि एसक्यूएल के CREATE TABLE AS SELECT (CTaS) सिंटैक्स हैं।<ref>
{{cite book
{{cite book
| last                  = Allen
| last                  = Allen
Line 49: Line 48:
}}
}}
</ref>
</ref>
=== ड्रॉप कथन ===
ड्रॉप कथन उपस्थित डेटाबेस, टेबल, इंडेक्स या व्यू को समाप्त कर देता है।


एसक्यूएल में ड्रॉप कथन रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) से घटक को विस्थापित कर देता है। किस प्रकार की वस्तुओं को विस्थापित कियाजा सकता है यह निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है, किन्तु अधिकांश सारणी    (डेटाबेस), [[उपयोगकर्ता (डेटाबेस)]] और डेटाबेस को त्याग करने का समर्थन करते हैं। कुछ प्रणालियाँ (जैसे कि पोस्टग्रेएसक्यूएल) ड्रॉप और अन्य डीडीएल कमांड को डेटाबेस लेनदेन के अंदर होने देती हैं और इस प्रकार रोलबैक (डेटा प्रबंधन) हो जाती हैं। सामान्य उपयोग है:


=== ड्रॉप स्टेटमेंट ===
  DROP ''objecttype objectname.''
ड्रॉप स्टेटमेंट मौजूदा डेटाबेस, टेबल, इंडेक्स या व्यू को नष्ट कर देता है।
 
एसक्यूएल में ड्रॉप स्टेटमेंट रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) से घटक को हटा देता है। किस प्रकार की वस्तुओं को गिराया जा सकता है यह निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है, लेकिन अधिकांश तालिका (डेटाबेस), [[उपयोगकर्ता (डेटाबेस)]] और डेटाबेस को छोड़ने का समर्थन करते हैं। कुछ प्रणालियाँ (जैसे कि Postgreएसक्यूएल) ड्रॉप और अन्य डीडीएल कमांड को डेटाबेस लेनदेन के अंदर होने देती हैं और इस प्रकार रोलबैक (डेटा प्रबंधन) हो जाती हैं। सामान्य उपयोग बस है:
 
ड्रॉप ऑब्जेक्ट टाइप ऑब्जेक्टनाम।
 
उदाहरण के लिए, 'कर्मचारी' नामक तालिका को छोड़ने का आदेश है:
 
<वाक्यविन्यास लैंग = एसक्यूएल>
ड्रॉप टेबल कर्मचारी;
</वाक्यविन्यास हाइलाइट>


ड्रॉप स्टेटमेंट डिलीट (एसक्यूएल) और ट्रंकेट (एसक्यूएल) स्टेटमेंट से अलग है, जिसमें डिलीट और  ट्रंकेट टेबल को ही नहीं हटाते हैं। उदाहरण के लिए,डिलीट स्टेटमेंट डेटाबेस में टेबल को छोड़ते समय टेबल से कुछ (या सभी) डेटा को हटा सकता है, जबकि ड्रॉप  स्टेटमेंट डेटाबेस से पूरी टेबल को हटा देता है।
उदाहरण के लिए, 'कर्मचारियों' के नाम वाली सारणी को त्याग करने का आदेश है:


ड्रॉप कथन डिलीट (एसक्यूएल) और ट्रंकेट (एसक्यूएल) कथनों से भिन्न है, जिसमें डिलीट एवं ट्रंकेट टेबल को ही नहीं विस्थापित करते हैं। उदाहरण के लिए, डिलीट कथन डेटाबेस में टेबल को त्याग करते समय टेबल से कुछ (या सभी) डेटा को विस्थापित कर सकता है, जबकि ड्रॉप कथन डेटाबेस को पूर्ण रूप से टेबल को विस्थापित कर देता है।
=== परिवर्तन कथन ===
=== परिवर्तन कथन ===
आल्टर कथन मौजूदा डेटाबेस ऑब्जेक्ट को संशोधित करता है।
परिवर्तन कथन उपस्थित डेटाबेस ऑब्जेक्ट को संशोधित करता है।
 
एसक्यूएल में आल्टर स्टेटमेंट रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) के अंदर किसी ऑब्जेक्ट के गुणों को बदल देता है। किस प्रकार की वस्तुओं को बदला जा सकता है यह इस बात पर निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है। सामान्य उपयोग है:
 
ऑब्जेक्ट टाइप ऑब्जेक्टनाम पैरामीटर बदलें।


उदाहरण के लिए, 'सिंक' नामक मौजूदा तालिका के लिए 'बबल्स' नामक कॉलम जोड़ने (फिर हटाने) का आदेश है:
एसक्यूएल में परिवर्तन कथन रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) के अंदर किसी ऑब्जेक्ट के गुणों को परिवर्तित कर देता है। किस प्रकार की वस्तुओं को परिवर्तित किया जा सकता है यह इस विषय पर निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है। सामान्य उपयोग है:


<वाक्यविन्यास लैंग = एसक्यूएल>
ALTER ''objectype objectname'' ''parameters.''
आल्टर टेबल सिंक बबल्स पूर्णांक जोड़ें;
आल्टर टेबल सिंक ड्रॉप कॉलम बबल्स;
</वाक्यविन्यास हाइलाइट>


=== ट्रंकेट स्टेटमेंट ===
उदाहरण के लिए, 'सिंक' नामक उपस्थित सारणी के लिए 'बबल्स' नामक कॉलम जोड़ने का आदेश है:
ट्रंकेट स्टेटमेंट का प्रयोग Table से सभी Data को हटाने के लिए किया जाता है। यह डिलीट से बहुत तेज है।


<वाक्यविन्यास लैंग = एसक्यूएल>
=== ट्रंकेट कथन ===
ट्रंकेट टेबल टेबल_नाम;
ट्रंकेट कथन का प्रयोग टेबल से सभी डेटा को विस्थापित करने के लिए किया जाता है। यह डिलीट से अधिक तीव्र है।
</वाक्यविन्यास हाइलाइट>


=== संदर्भात्मक सत्यनिष्ठा कथन ===
=== संदर्भात्मक सत्यनिष्ठा कथन ===
एसक्यूएल में एक अन्य प्रकार के डीडीएल वाक्य का उपयोग संदर्भित अखंडता संबंधों को परिभाषित करने के लिए किया जाता है, जिसे आमतौर पर तालिकाओं के कुछ स्तंभों में प्राथमिक कुंजी और [[विदेशी कुंजी]] टैग के रूप में लागू किया जाता है। इन दो कथनों को क्रिएट टेबल या अल्टर टेबल वाक्य में शामिल किया जा सकता है |
एसक्यूएल में अन्य प्रकार के डीडीएल वाक्य का उपयोग संदर्भित अखंडता संबंधों को परिभाषित करने के लिए किया जाता है, जिसे सामान्यतः सारणी  के कुछ स्तंभों में प्राथमिक कुंजी और [[विदेशी कुंजी]] टैग के रूप में प्रारम्भ किया जाता है। इन दो कथनों को क्रिएट टेबल या अल्टर टेबल वाक्य में सम्मिलित किया जा सकता है |


== अन्य भाषाएँ ==
== अन्य भाषाएँ ==
* [[[[XML]] स्कीमा (W3C)]] एक्सएमएल के लिए डीडीएल का उदाहरण है।
* [[[[XML]] स्कीमा]] एक्सएमएल (XML) के लिए डीडीएल का उदाहरण है।
* [[JSON]]<nowiki/>schema JSON के लिए डीडीएल का उदाहरण है।
* [[JSON]]<nowiki/> स्कीमा JSON के लिए डीडीएल का उदाहरण है।
* Data_Format_Description_Language डीडीएल का उदाहरण है जो कई पाठ और बाइनरी स्वरूपों का वर्णन कर सकता है।
* डाटा फॉर्मेट डिस्क्रिप्शन भाषा डीडीएल का उदाहरण है जो अनेक पाठ और बाइनरी स्वरूपों का वर्णन कर सकता है।


== यह भी देखें ==
== यह भी देखें ==
* [[डेटा नियंत्रण भाषा]]
* [[डेटा नियंत्रण भाषा]]
*डेटा हेरफेर भाषा
*डेटा परिवर्तन भाषा
* [[डेटा क्वेरी भाषा]]
* [[डेटा क्वेरी भाषा]]
*चुनें (एसक्यूएल)
*चयनित (एसक्यूएल)
* डालें (एसक्यूएल)
* डालें (एसक्यूएल)
* [[अद्यतन (एसक्यूएल)]]
* [[अद्यतन (एसक्यूएल)]]
* हटाएं (एसक्यूएल)
* विस्थापित (एसक्यूएल)
* ट्रंकेट (एसक्यूएल)
* ट्रंकेट (एसक्यूएल)


Line 113: Line 96:
* [https://oracletutorial.net/dml-ddl-commands-in-oracle.html#ddl-commands-in-oracle डीडीएल Commands In Oracle] {{Webarchive|url=https://web.archive.org/web/20210421203338/https://oracletutorial.net/dml-ddl-commands-in-oracle.html#ddl-commands-in-oracle |date=2021-04-21 }}
* [https://oracletutorial.net/dml-ddl-commands-in-oracle.html#ddl-commands-in-oracle डीडीएल Commands In Oracle] {{Webarchive|url=https://web.archive.org/web/20210421203338/https://oracletutorial.net/dml-ddl-commands-in-oracle.html#ddl-commands-in-oracle |date=2021-04-21 }}


{{Database}}
[[Category:Collapse templates]]
[[Category: SQL कोड उदाहरण के साथ लेख]] [[Category: डेटा मॉडलिंग भाषाएँ]] [[Category: एसक्यूएल]]
 
 
 
[[Category: Machine Translated Page]]
[[Category:Created On 16/02/2023]]
[[Category:Created On 16/02/2023]]
[[Category:Lua-based templates]]
[[Category:Machine Translated Page]]
[[Category:Navigational boxes| ]]
[[Category:Navigational boxes without horizontal lists]]
[[Category:Pages with script errors]]
[[Category:SQL कोड उदाहरण के साथ लेख]]
[[Category:Short description with empty Wikidata description]]
[[Category:Sidebars with styles needing conversion]]
[[Category:Template documentation pages|Documentation/doc]]
[[Category:Templates Vigyan Ready]]
[[Category:Templates generating microformats]]
[[Category:Templates that add a tracking category]]
[[Category:Templates that are not mobile friendly]]
[[Category:Templates that generate short descriptions]]
[[Category:Templates using TemplateData]]
[[Category:Webarchive template wayback links]]
[[Category:Wikipedia metatemplates]]
[[Category:एसक्यूएल]]
[[Category:डेटा मॉडलिंग भाषाएँ]]

Latest revision as of 15:20, 27 October 2023

एसक्यूएल के संदर्भ में, डेटा परिभाषा (डेफिनिशन लैंग्वेज) या डेटा विवरण भाषा (डीडीएल) डेटाबेस ऑब्जेक्ट्स जैसे टेबल, इंडेक्स और यूजर्स को बनाने और संशोधित करने के लिए सिंटैक्स है। डीडीएल कथन डेटा संरचनाओं, विशेष रूप से डेटाबेस स्कीमा को परिभाषित करने के लिए कंप्यूटर प्रोग्रामिंग भाषा के समान हैं। डीडीएल कथन के सामान्य उदाहरणों में CREATE, ALTER, और DROP सम्मिलित हैं |

इतिहास

डेटा परिभाषा भाषा और उसके नाम की अवधारणा कोडासिल डेटाबेस मॉडल के संबंध में प्रथम बार प्रस्तुत किया गया था, जहां डेटाबेस की स्कीमा सिंटेक्स (प्रोग्रामिंग भाषाएं) में प्रत्याशी डेटा मॉडल का सेट (सार डेटा प्रकार) रिकॉर्ड (कंप्यूटर साइंस), फील्ड (कंप्यूटर साइंस) का वर्णन करते हुए लिखी गई थी अंत में इसका उपयोग टेबल में इसे सारणी (डेटाबेस), कॉलम, डेटा प्रकार और इंटीग्रिटी बाधाओं की घोषणा के लिए स्ट्रक्चर्ड क्वेरी भाषा (एसक्यूएल) के सबसेट को संदर्भित करने के लिए उपयोग किया गया था। एसक्यूएल-92 ने स्कीमा परिवर्तन भाषा और स्कीमा सूचना सारणी को क्वेरी स्कीमा में प्रस्तुत किया।[1] इन सूचना सारणी को एसक्यूएल: 2003 में एसक्यूएल/स्कीमाटा के रूप में निर्दिष्ट किया गया था। डेटा या सूचना संरचनाओं का वर्णन करने के लिए किसी भी औपचारिक भाषा को संदर्भित करने के लिए डीडीएल शब्द का उपयोग सामान्य अर्थ में भी किया जाता है।

संरचित क्वेरी भाषा (एसक्यूएल)

अनेक डेटा विवरण भाषाएँ कॉलम और डेटा प्रकारों को परिभाषित करने के लिए घोषणात्मक सिंटैक्स का उपयोग करती हैं। संरचित क्वेरी भाषा (एसक्यूएल), यद्यपि, अनिवार्य क्रियाओं के संग्रह का उपयोग करती है जिसका प्रभाव सारणी या अन्य तत्वों की परिभाषाओं को जोड़कर, परिवर्तित या विस्थापित डेटाबेस की स्कीमा को संशोधित करना है। इन कथनों को अन्य एसक्यूएल कथनों के साथ स्वतंत्र रूप से युग्मित किया जा सकता है, जिससे डीडीएल भिन्न भाषा नहीं है।

क्रिएट कथन

क्रिएट कमांड का उपयोग नया डेटाबेस, टेबल, इंडेक्स या संग्रहीत प्रक्रिया स्थापित करने के लिए किया जाता है।

एसक्यूएल में क्रिएट कथन संबंधपरक डेटाबेस प्रबंधन प्रणाली (आरडीबीएमएस) में घटक बनाता है। एसक्यूएल 1992 विनिर्देश में, बनाए जा सकने वाले घटकों के प्रकार स्कीमा, सारणी (डेटाबेस), दृश्य (डेटाबेस), डोमेन, वर्ण सेट, संयोजन, अनुवाद और अभिकथन हैं।[1]अनेक कार्यान्वयन अतिरिक्त तत्वों के निर्माण की अनुमति देने के लिए सिंटैक्स का विस्तार करते हैं, जैसे डाटाबेस इंडेक्स और उपयोगकर्ता प्रोफाइल हैं। कुछ प्रणालियाँ, जैसे कि पोस्टग्रेएसक्यूएल और माइक्रोसॉफ्ट एसक्यूएल सर्वर, डेटाबेस आदान प्रदान के अंदर क्रिएट और अन्य डीडीएल कमांड की अनुमति देती हैं और इस प्रकार वे रोलबैक (डेटा प्रबंधन) हो सकते हैं।[2][3]

क्रिएट टेबल कथन

सामान्यतः उपयोग किया जाने वाला क्रिएट कमांड क्रिएट टेबल कमांड है। सामान्य उपयोग है:

CREATE TABLE [table name] ( [column definitions] ) [table parameters]

स्तंभ परिभाषाएँ हैं:

  • अल्पविराम से भिन्न की गई सूची जिसमें निम्न में से कोई भी हो।
  • कॉलम परिभाषा: [कॉलम नाम] [डेटा प्रकार] शून्य | अशून्य} {कॉलम विकल्प}
  • प्राथमिक कुंजी परिभाषा: प्राथमिक कुंजी ( [अल्पविराम से भिन्न कॉलम सूची])
  • बाधाएं: [बाधा परिभाषा]
  • संबंधपरक डेटाबेस प्रणाली विशिष्ट कार्यक्षमता

कुछ कॉलम वाले कर्मचारियों के नाम वाली सारणी बनाने के लिए उदाहरण है:

 CREATE TABLE employees ( id   INTEGER  PRIMARY KEY,
 first_name VARCHAR(50) not null,
 last_name  VARCHAR(75) not null,
 mid_name  VARCHAR(50) not null,
 dateofbirth DATE   not null
);

क्रिएट टेबल डीडीएल के कुछ रूपों में डीएमएल (डेटा हेरफेर भाषा) जैसी रचनाएँ सम्मिलित हो सकती हैं, जैसे कि एसक्यूएल के CREATE TABLE AS SELECT (CTaS) सिंटैक्स हैं।[4]

ड्रॉप कथन

ड्रॉप कथन उपस्थित डेटाबेस, टेबल, इंडेक्स या व्यू को समाप्त कर देता है।

एसक्यूएल में ड्रॉप कथन रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) से घटक को विस्थापित कर देता है। किस प्रकार की वस्तुओं को विस्थापित कियाजा सकता है यह निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है, किन्तु अधिकांश सारणी (डेटाबेस), उपयोगकर्ता (डेटाबेस) और डेटाबेस को त्याग करने का समर्थन करते हैं। कुछ प्रणालियाँ (जैसे कि पोस्टग्रेएसक्यूएल) ड्रॉप और अन्य डीडीएल कमांड को डेटाबेस लेनदेन के अंदर होने देती हैं और इस प्रकार रोलबैक (डेटा प्रबंधन) हो जाती हैं। सामान्य उपयोग है:

DROP objecttype objectname.

उदाहरण के लिए, 'कर्मचारियों' के नाम वाली सारणी को त्याग करने का आदेश है:

ड्रॉप कथन डिलीट (एसक्यूएल) और ट्रंकेट (एसक्यूएल) कथनों से भिन्न है, जिसमें डिलीट एवं ट्रंकेट टेबल को ही नहीं विस्थापित करते हैं। उदाहरण के लिए, डिलीट कथन डेटाबेस में टेबल को त्याग करते समय टेबल से कुछ (या सभी) डेटा को विस्थापित कर सकता है, जबकि ड्रॉप कथन डेटाबेस को पूर्ण रूप से टेबल को विस्थापित कर देता है।

परिवर्तन कथन

परिवर्तन कथन उपस्थित डेटाबेस ऑब्जेक्ट को संशोधित करता है।

एसक्यूएल में परिवर्तन कथन रिलेशनल डेटाबेस मैनेजमेंट प्रणाली (आरडीबीएमएस) के अंदर किसी ऑब्जेक्ट के गुणों को परिवर्तित कर देता है। किस प्रकार की वस्तुओं को परिवर्तित किया जा सकता है यह इस विषय पर निर्भर करता है कि किस आरडीबीएमएस का उपयोग किया जा रहा है। सामान्य उपयोग है:

ALTER objectype objectname parameters.

उदाहरण के लिए, 'सिंक' नामक उपस्थित सारणी के लिए 'बबल्स' नामक कॉलम जोड़ने का आदेश है:

ट्रंकेट कथन

ट्रंकेट कथन का प्रयोग टेबल से सभी डेटा को विस्थापित करने के लिए किया जाता है। यह डिलीट से अधिक तीव्र है।

संदर्भात्मक सत्यनिष्ठा कथन

एसक्यूएल में अन्य प्रकार के डीडीएल वाक्य का उपयोग संदर्भित अखंडता संबंधों को परिभाषित करने के लिए किया जाता है, जिसे सामान्यतः सारणी के कुछ स्तंभों में प्राथमिक कुंजी और विदेशी कुंजी टैग के रूप में प्रारम्भ किया जाता है। इन दो कथनों को क्रिएट टेबल या अल्टर टेबल वाक्य में सम्मिलित किया जा सकता है |

अन्य भाषाएँ

  • [[XML स्कीमा]] एक्सएमएल (XML) के लिए डीडीएल का उदाहरण है।
  • JSON स्कीमा JSON के लिए डीडीएल का उदाहरण है।
  • डाटा फॉर्मेट डिस्क्रिप्शन भाषा डीडीएल का उदाहरण है जो अनेक पाठ और बाइनरी स्वरूपों का वर्णन कर सकता है।

यह भी देखें

संदर्भ

  1. 1.0 1.1 "Information Technology - Database Language SQL". SQL92. Carnegie Mellon. Retrieved 12 November 2018.
  2. Laudenschlager, Douglas; Milener, Gene; Guyer, Craig; Byham, Rick. "Transactions (Transact-SQL)". Microsoft Docs. Microsoft. Retrieved 12 November 2018.
  3. "PostgreSQL Transactions". PostgreSQL 8.3 Documentation. PostgreSQL. 7 February 2013. Retrieved 12 November 2018.
  4. Allen, Grant (2010). The Definitive Guide to SQLite. Apresspod. Mike Owens (2 ed.). Apress. pp. 90–91. ISBN 9781430232254. Retrieved 2012-10-02. The create table statement has a special syntax for creating tables from select statements. [...]: [...] create table foods2 as select * from foods; [...] Many other databases refer to this approach as CTaS, which stands for Create Table as Select, and that phrase is not uncommon among SQLite users.


बाहरी संबंध