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

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

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

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

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

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

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

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) सिंटैक्स।

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

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

DROP objecttype objectname.

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

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

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

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

ALTER objectype objectname parameters.

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

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

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

अन्य भाषाएँ

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

यह भी देखें

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

बाहरी संबंध

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