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

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

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

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

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

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

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

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