यह मूल sql मानकों से आता है, जो अप्रत्यक्ष रूप से कई परतों के माध्यम से अंततः एक पहचानकर्ता प्रारंभ तक पहुंच जाता है। ब्लॉक, जो कई चीजों में से एक है, लेकिन मुख्य रूप से यह "एक साधारण लैटिन अक्षर" है। अन्य चीजें भी हैं जिनका उपयोग किया जा सकता है, लेकिन यदि आप सभी विवरण देखना चाहते हैं, तो http://en.wikipedia.org/wiki/SQL-92 पर जाएं और वास्तविक मानक के लिंक का पालन करें (पृष्ठ 85)पी>
गैर-संख्यात्मक पहचानकर्ता परिचयकर्ता होने से निष्पादन को आसान और तेज़ करने के लिए एसक्यूएल को डीकोड करने के लिए एक पार्सर लिखना आसान हो जाता है, लेकिन एक उद्धृत फॉर्म भी ठीक है।
संपादित करें:पार्सर के लिए यह आसान क्यों है?
एक पार्सर के लिए समस्या SELECT
. में अधिक है FROM
. से सूची खंड खंड। चयन-सूची अभिव्यक्तियों की सूची है जो तालिकाओं से चुने गए हैं, और यह बहुत लचीला है, सरल कॉलम नामों और संख्यात्मक अभिव्यक्तियों की अनुमति देता है। निम्नलिखित पर विचार करें:
SELECT 2e2 + 3.4 FROM ...
यदि तालिका के नाम और स्तंभ नाम अंकों से शुरू हो सकते हैं, तो 2e2
. है कॉलम नाम या मान्य संख्या (e
प्रारूप आमतौर पर संख्यात्मक अक्षरों में अनुमत है) और 3.4
. है तालिका "3
" और कॉलम "4
" या यह संख्यात्मक मान है 3.4
?
नियम है कि पहचानकर्ता सरल लैटिन अक्षरों से शुरू करें (और कुछ अन्य विशिष्ट चीजें) का अर्थ है कि एक पार्सर जो 2e2
देखता है जल्दी से समझ सकता है कि यह एक संख्यात्मक अभिव्यक्ति होगी, 3.4
. के साथ एक ही सौदा
हालांकि संख्यात्मक प्रमुख पात्रों को अनुमति देने के लिए एक योजना तैयार करना संभव होगा, इससे और भी अस्पष्ट नियम (राय) हो सकते हैं, इसलिए यह नियम एक अच्छा समाधान है। यदि आप पहले अंकों की अनुमति देते हैं, तो इसे हमेशा उद्धरण की आवश्यकता होगी, जो यकीनन 'साफ' नहीं है।
<ब्लॉककोट>अस्वीकरण , मैंने इसे छोटा रखने के लिए कोरलेशन नामों को अनदेखा करते हुए, उपरोक्त को थोड़ा सरल बनाया है। मैं पोस्टग्रेज से पूरी तरह परिचित नहीं हूं, लेकिन ओरेकल आरडीबी दस्तावेज और एसक्यूएल स्पेक के खिलाफ उपरोक्त उत्तर को दोबारा जांच लिया है