संरचित क्वेरी भाषा (एसक्यूएल) डेटाबेस को क्वेरी करने के लिए एक भाषा है। प्रश्नों में कोड उदाहरण, तालिका संरचना, नमूना डेटा और DBMS कार्यान्वयन के लिए एक टैग (जैसे MySQL, PostgreSQL, Oracle, MS SQL Server, IBM DB2, आदि) का उपयोग किया जाना चाहिए। यदि आपका प्रश्न केवल एक विशिष्ट DBMS (विशिष्ट एक्सटेंशन / सुविधाओं का उपयोग करता है) से संबंधित है, तो इसके बजाय उस DBMS के टैग का उपयोग करें। एसक्यूएल के साथ टैग किए गए सवालों के जवाब में आईएसओ / आईईसी मानक एसक्यूएल का उपयोग करना चाहिए।

एक अच्छा एसक्यूएल प्रश्न कैसे लिखें?
इस रेसिपी में पाँच सामग्रियां हैं:

  1. हाथ में समस्या का एक स्पष्ट पाठ विवरण प्रदान करें।
  2. DDLके रूप में उचित नमूना डेटा प्रदान करें (तालिका विवरण बनाएं) और DML(विवरण सम्मिलित करें)। नमूना डेटा समस्या को प्रदर्शित करने के लिए पर्याप्त होना चाहिए, जिसमें किनारे के मामले भी शामिल हैं। आमतौर पर, कुछ प्रासंगिक पंक्तियाँ पर्याप्त होती हैं।
  3. आपके द्वारा पोस्ट किए गए नमूना डेटा के लिए अपेक्षित आउटपुट प्रदान करें।
  4. समस्या को हल करने के लिए अपने प्रयास दिखाएं।
  5. ठीक से टैग करें। sqlके अलावा, प्रासंगिक rdbms टैग भी प्रदान करें (यानी sql-server, < a href = "/ tags / oracle">oracle, postgresql), और सबसे कम संस्करण जिसे आपको समाधान की आवश्यकता है (यानी sql-server-2012, oracle10g)।
    याद रखें - विभिन्न उत्पाद विभिन्न बोलियों की विभिन्न बोलियों का उपयोग करते हैं। एसक्यूएल, और इससे आपके द्वारा प्राप्त किए जा सकने वाले उत्तरों पर एक कठोर प्रभाव पड़ सकता है।
    एक ही उत्पाद के विभिन्न संस्करणों में बिल्ट-इन फ़ंक्शन और क्षमताओं का एक अलग सेट होता है, जो उत्तर पर भी कठोर प्रभाव डाल सकते हैं।

डेटा या कोड की छवियां शामिल न करें!

एक ऑनलाइन SQL परीक्षण वातावरण जैसे कि SQL फ़ेल्ड, Rextester />का लिंक a>, या DB Fiddle मदद कर सकता है, लेकिन यह प्रश्न के अंदर सभी डेटा रखने के लिए एक प्रतिस्थापन नहीं है।
अधिक जानकारी के लिए। , पढ़ें मुझे जो बहुत साधारण SQL क्वेरी लगती है उसके लिए MCVE क्यों प्रदान करना चाहिए?और इस क्वेरी को SQL SQL में लिखने में मेरी मदद करें

सामान्य जानकारी
विकिपीडियासे:

SQL संरचित क्वेरी भाषा (अनौपचारिक रूप से) के लिए खड़ा है और आमतौर पर सीक्वल के रूप में उच्चारित किया जाता है।

SQL संबंधपरक बीजगणितपर आधारित है। संबंधपरक बीजगणित में, शब्द का संबंध शब्द तालिका का पर्याय है। एसक्यूएल एक तकनीकी वातावरण में रिलेशनल बीजगणित का उपयोग करने के लिए एक मानक है।

SQL मानक का एक सबसेट DDL (डेटा डेफिनिशन लैंग्वेज) है, जिसका उपयोग तालिकाओं और बाधाओं को बनाने के लिए किया जाता है। इसमें शामिल है:

  • CREATE
  • DROP
  • ALTER

एक अन्य सबसेट डीएमएल (डेटा मैनिप्युलेशन लैंग्वेज) है, जिसका उपयोग डेटाबेस के भीतर डेटा को संशोधित करने और देखने के लिए किया जाता है:

  • SELECT
  • INSERT
  • UPDATE
  • DELETE

कमांड का अंतिम "मानक" सबसेट DCL (डाटा कंट्रोल लैंग्वेज) है:

  • GRANT
  • REVOKE

कई डेटाबेस कार्यान्वयनों को SQL के उपयोग की आवश्यकता होती है, और वर्षों से, विक्रेताओं ने अधिक कार्यक्षमता प्रदान करने के साथ-साथ सरल बनाने के लिए SQL की बोलियों को लागू किया है। मानक से इन विचलन के कारण, एसक्यूएल फ्रैक्चर है - सिंटैक्स जो एक कार्यान्वयन पर काम करता है जरूरी नहीं कि दूसरे पर काम करता है।

आईएसओ / आईईसी (पूर्व में एएनएसआई) मानक ऐसी स्थितियों को हल करने में फायदेमंद रहे हैं, लेकिन दत्तक चयनात्मक है। इन मानकों के अनुरूप क्वेरी अन्य डेटाबेस के लिए पोर्टेबल होनी चाहिए, हालांकि प्रदर्शन भिन्न हो सकते हैं।

अधिकांश DBMS में संग्रहीत कार्यविधियाँ लिखने के लिए अतिरिक्त भाषाएँ हैं। Oracle में यह PL / SQL (Procedural Language / संरचित क्वेरी भाषा) है, PostgreSQL में यह PL / pgSQL (प्रक्रियात्मक भाषा / PostgreSQL) है। संग्रहीत प्रक्रियाओं या कार्यों के बाहर, Oracle और PostgreSQL SQL का उपयोग करते हैं। इस प्रकार टैग plsqlऔर plpgsqlका उपयोग केवल संग्रहीत कार्यविधियों को लिखने से संबंधित समस्याओं के लिए किया जाना चाहिए। Microsoft SQL सर्वर T-SQL (Transact-SQL) (tsql) शब्द का उपयोग "सादा" SQL (क्वेरी, DML, ..) और प्रयुक्त भाषा दोनों के लिए करता है। संग्रहीत प्रक्रियाओं के लिए।

प्रक्रियात्मक विस्तार की सूची

  • ANSI / ISO मानक: SQL / PSM (SQL / स्थायी संग्रहित मॉड्यूल)
  • इंटरबेस / फायरबर्ड: PSQL (प्रक्रियात्मक एसक्यूएल)
  • IBM DB2 SQL: PL / SQL (प्रक्रियात्मक भाषा, SQL / PSM लागू करता है)
  • IBM Informix: SPL (संग्रहीत प्रक्रियात्मक भाषा)
  • IBM Netezza: NZPLSQL (Postgres PL / pgSQL पर आधारित)
  • Microsoft / Sybase: T-SQL (Transact-SQL)
  • Mimer SQL: SQL / PSM (SQL / Persistent Stored Module, SQL / PSM को लागू करता है)
  • MySQL: SQL / PSM (SQL / Persistent Stored Module, SQL / PSM को लागू करता है)
  • MonetDB: SQL / PSM (SQL / लगातार संग्रहीत मॉड्यूल, SQL / PSM को लागू करता है)
  • NuoDB: एसएसपी (स्टार्की संग्रहित प्रक्रियाएं)
  • Oracle: PL / SQL (प्रक्रियात्मक भाषा / SQL, Ada पर आधारित)
  • PostgreSQL: PL / pgSQL (प्रक्रियात्मक भाषा / PostgreSQL संरचित क्वेरी भाषा, SQL / PSM लागू करता है)
  • Sybase: Watcom-SQL (SQL कहीं भी Watcom-SQL बोली)
  • Teradata: SPL (संग्रहीत कार्यविधि भाषा)
  • SAP: SAP हाना (SQL स्क्रिप्ट)

अनुशंसा को टैग करना

इस टैग का उपयोग विशिष्ट उत्पादों के लिए टैग के अलावा सामान्य SQL प्रोग्रामिंग भाषा के प्रश्नों के लिए किया जाना चाहिए। उदाहरण के लिए, Microsoft SQL सर्वर के बारे में प्रश्न sql-serverटैग का उपयोग करना चाहिए, जबकि MySQL से संबंधित प्रश्न mysqlटैग। एसक्यूएल वह छाता है जिसके तहत ये उत्पाद मौजूद हैं; उत्पाद द्वारा उन्हें टैग करना (संस्करण सहित, जैसे oracle11g, sql-server-2008hana) यह जानने का सबसे आसान तरीका है कि कार्य के लिए क्या कार्यक्षमता उपलब्ध है। यह इस टैग को छोड़ने के लिए mysqlप्रश्नों के लिए बहुत सामान्य है क्योंकि MySQL पर क्वेरी चर्चाओं को सामान्य रूप से SQL के बजाय MySQL के रूप में अधिक बार कहा जाता है।

SQL मानक के बारे में इस सारांशको पढ़ें (1992 में इस मामले में एक, मोटे तौर पर लागू) और यदि आप कर सकते हैं, स्वयं बुक करेंका संदर्भ लें।

अधिक विशिष्ट टैग

जब आप एसक्यूएल के बारे में एक सवाल पूछ रहे हैं तो आप अधिक विशिष्ट टैग भी जोड़ सकते हैं। यहाँ उपलब्ध टैग की सूची है:

कार्यान्वयन विशिष्ट टैग

आप टैग के रूप में उपयोग किए गए कार्यान्वयन को जोड़कर अपना प्रश्न निर्दिष्ट कर सकते हैं।

अन्य संसाधन

नि: शुल्क एसक्यूएल प्रोग्रामिंग किताबें

नि: शुल्क एसक्यूएल / डेटाबेस ऑनलाइन पाठ्यक्रम

SQL / डेटाबेस ऑनलाइन ट्यूटोरियल

ऑनलाइन परीक्षण

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