डेटा परिभाषा भाषा

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

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

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

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

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

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

तालिका बनाएँ [तालिका का नाम] ([स्तंभ परिभाषाएँ]) [तालिका पैरामीटर]

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

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

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

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

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

ड्रॉप ऑब्जेक्ट टाइप ऑब्जेक्टनाम।

उदाहरण के लिए, 'कर्मचारी' नामक तालिका को छोड़ने का आदेश है:

<वाक्यविन्यास लैंग = एसक्यूएल> ड्रॉप टेबल कर्मचारी; 

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

परिवर्तन कथन
आल्टर कथन मौजूदा डेटाबेस ऑब्जेक्ट को संशोधित करता है।

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

ऑब्जेक्ट टाइप ऑब्जेक्टनाम पैरामीटर बदलें।

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

<वाक्यविन्यास लैंग = एसक्यूएल> आल्टर टेबल सिंक बबल्स पूर्णांक जोड़ें; आल्टर टेबल सिंक ड्रॉप कॉलम बबल्स; 

ट्रंकेट स्टेटमेंट
ट्रंकेट स्टेटमेंट का प्रयोग Table से सभी Data को हटाने के लिए किया जाता है। यह डिलीट से बहुत तेज है।

<वाक्यविन्यास लैंग = एसक्यूएल> ट्रंकेट टेबल टेबल_नाम; 

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

अन्य भाषाएँ

 * [[XML स्कीमा (W3C)]] एक्सएमएल के लिए डीडीएल का उदाहरण है।
 * JSON schema JSON के लिए डीडीएल का उदाहरण है।
 * Data_Format_Description_Language डीडीएल का उदाहरण है जो कई पाठ और बाइनरी स्वरूपों का वर्णन कर सकता है।

यह भी देखें

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

बाहरी संबंध

 * Oracle ALTER TABLE MODIFY column
 * डीडीएल Commands In Oracle