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

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


डेटा डेफिनिशन लैंग्वेज और उसके नाम की अवधारणा [[कोडासिल]] [[डेटाबेस]] मॉडल के संबंध में प्रथम बार पेश किया गया था, जहां डेटाबेस की स्कीमा [[सिंटेक्स (प्रोग्रामिंग भाषाएं)]] में रिकॉर्ड (कंप्यूटर साइंस), फील्ड (कंप्यूटर साइंस) का वर्णन करते हुए लिखी गई थी। और उपयोगकर्ता [[डेटा मॉडल]] का [[सेट (सार डेटा प्रकार)]]।<ref>{{cite book|last=Olle|first=T. William|title=The Codasyl Approach to Data Base Management|year=1978|publisher=Wiley|isbn=0-471-99579-7|url-access=registration|url=https://archive.org/details/codasylapproacht00olle}}</ref> बाद में इसे [[तालिका (डेटाबेस)]], कॉलम, डेटा प्रकार और इंटीग्रिटी बाधाओं की घोषणा के लिए [[स्ट्रक्चर्ड क्वेरी लैंग्वेज]] (एसक्यूएल) के सबसेट को संदर्भित करने के लिए इस्तेमाल किया गया था। [[SQL-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 में एसक्यूएल/स्कीमाटा के रूप में निर्दिष्ट किया गया था। डेटा या सूचना संरचनाओं का वर्णन करने के लिए किसी भी [[औपचारिक भाषा]] को संदर्भित करने के लिए डीडीएल शब्द का उपयोग सामान्य अर्थ में भी किया जाता है।


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


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


SQL में CREATE स्टेटमेंट [[संबंधपरक डेटाबेस प्रबंधन प्रणाली]] (RDBMS) में एक घटक बनाता है। SQL 1992 विनिर्देश में, बनाए जा सकने वाले घटकों के प्रकार स्कीमा, तालिका (डेटाबेस), दृश्य (डेटाबेस), डोमेन, वर्ण सेट, संयोजन, अनुवाद और अभिकथन हैं।<ref name="SQL92" />कई कार्यान्वयन अतिरिक्त तत्वों के निर्माण की अनुमति देने के लिए सिंटैक्स का विस्तार करते हैं, जैसे [[डाटाबेस इंडेक्स]] और उपयोगकर्ता प्रोफाइल। कुछ प्रणालियाँ, जैसे कि [[PostgreSQL]] और Microsoft SQL सर्वर, [[डेटाबेस लेनदेन]] के अंदर CREATE और अन्य DDL कमांड की अनुमति देती हैं और इस प्रकार वे [[रोलबैक (डेटा प्रबंधन)]] हो सकते हैं।<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]''
==== क्रिएट टेबल स्टेटमेंट ====
आमतौर पर इस्तेमाल किया जाने वाला क्रिएट कमांड क्रिएट टेबल कमांड है। सामान्य उपयोग है:
 
  तालिका बनाएँ [तालिका का नाम] ([स्तंभ परिभाषाएँ]) [तालिका पैरामीटर]


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


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


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


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


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


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


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


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


  ऑब्जेक्ट टाइप ऑब्जेक्टनाम पैरामीटर बदलें।
  ALTER ''objectype objectname'' ''parameters.''


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


<वाक्यविन्यास लैंग = एसक्यूएल>
=== ट्रंकेट कथन ===
आल्टर टेबल सिंक बुलबुले पूर्णांक जोड़ें;
ट्रंकेट कथन का प्रयोग टेबल से सभी डेटा को विस्थापित करने के लिए किया जाता है। यह डिलीट से अधिक तीव्र है।
आल्टर टेबल सिंक ड्रॉप कॉलम बुलबुले;
</वाक्यविन्यास हाइलाइट>
 
=== ट्रंकेट स्टेटमेंट ===
TRUNCATE Statement का प्रयोग Table से सभी Data को हटाने के लिए किया जाता है। यह DELETE से बहुत तेज है।
 
<वाक्यविन्यास लैंग = एसक्यूएल>
ट्रंकेट टेबल टेबल_नाम;
</वाक्यविन्यास हाइलाइट>


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


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


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


Line 115: Line 94:
==बाहरी संबंध==
==बाहरी संबंध==
* [https://oracletutorial.net/alter-table-modify-column-oracle.html Oracle ALTER TABLE MODIFY column] {{Webarchive|url=https://web.archive.org/web/20210421200756/https://oracletutorial.net/alter-table-modify-column-oracle.html |date=2021-04-21 }}
* [https://oracletutorial.net/alter-table-modify-column-oracle.html Oracle ALTER TABLE MODIFY column] {{Webarchive|url=https://web.archive.org/web/20210421200756/https://oracletutorial.net/alter-table-modify-column-oracle.html |date=2021-04-21 }}
* [https://oracletutorial.net/dml-ddl-commands-in-oracle.html#ddl-commands-in-oracle DDL 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: SQL कोड उदाहरण के साथ लेख]] [[Category: डेटा मॉडलिंग भाषाएँ]] [[Category: एसक्यूएल]]
 
 


[[Category: Machine Translated Page]]
[[Category:Collapse templates]]
[[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.


बाहरी संबंध