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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

अन्य भाषाएँ

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

यह भी देखें

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

बाहरी संबंध

 * Oracle ALTER TABLE MODIFY column
 * DDL Commands In Oracle