यह वास्तव में कोई फर्क नहीं पड़ता जहां स्तंभ भौतिक रूप से select
. के बाद से है आपको उस आदेश को निर्दिष्ट करने की अनुमति देगा (तार्किक रूप से) जिसमें उन्हें पुनर्प्राप्त किया गया है।
और, यदि आप select *
. का उपयोग कर रहे हैं जो आपको ऑर्डर निर्दिष्ट नहीं करने देता, आपको शायद नहीं होना चाहिए। ऐसी कुछ कीमती स्थितियां हैं जहां आपको ऐसा करना चाहिए (उदाहरण के लिए डीबी विश्लेषण उपकरण), ज्यादातर समय अपने इच्छित व्यक्तिगत कॉलम का चयन करना बेहतर होता है, भले ही आप उन सभी को चाहते हों। यह आपको स्कीमा परिवर्तनों को शीघ्रता से पकड़ने की अनुमति देता है ताकि आप अपने कार्यक्रमों को उनके अनुकूल बना सकें।
किसी भी स्थिति में, SQL स्वयं उस क्रम के बारे में कोई गारंटी नहीं देता है जिसमें कॉलम वापस किए जाते हैं जब तक कि आप स्पष्ट रूप से उनकी सूची बनाओ। select *
उन्हें आज के क्रम में और कल वर्णमाला के क्रम में आपको दे सकते हैं। भले ही कोई विशेष कार्यान्वयन आपको इसे करने की अनुमति देता है ("दाएं" स्थान पर कॉलम के साथ एक नई तालिका बनाकर और डेटा को कॉपी करके, या एक SQL एक्सटेंशन प्रदान करके alter table T insert column C1 before C2
कोड> ), मैं इसके खिलाफ सलाह दूंगा। यह अन्य कार्यान्वयनों के लिए पोर्टेबल नहीं होगा और मैं अपने कोड को यथासंभव पोर्टेबल रखना पसंद करता हूं।
इसके अलावा, एसक्यूएल में आप जो निर्दिष्ट कर सकते हैं, उससे परे, एक डीबीएमएस पूरी तरह से नियंत्रित करने में सक्षम होना चाहिए कैसे यह डेटा स्टोर करता है। हो सकता है कि आपकी प्राथमिक कुंजी सातवें और बयालीसवें कॉलम का एक संयोजन हो और भौतिक रिकॉर्ड के सामने उन्हें रखना अधिक कुशल हो सकता है।