SQL के प्रोग्रामर ज्ञान का परीक्षण करने के लिए प्रश्न क्या हैं? [बन्द है]


14

SQL के प्रोग्रामर ज्ञान का परीक्षण करने के लिए प्रश्न क्या हैं? प्रश्न का उत्तर क्या है? और प्रश्न से संबंधित अवधारणा (ओं) को समझने के लिए समय के संदर्भ में एक सही उत्तर की कमी का क्या मतलब होगा?

GOOGLED: sql चुनौती


2
मैं निश्चित रूप से एक वास्तविक लाइव उदाहरण दूंगा और एक जटिल प्रश्न लिखने के लिए कहूंगा। उदाहरण के लिए, पिछले 10 वर्षों में से प्रत्येक के लिए सबसे अधिक लाभदायक महीने का चयन करने के लिए कहें, यदि आपके पास खरीदारी की तालिका है। लेकिन जब से आप सवाल और जवाब के बारे में पूछते हैं, तो इसका मतलब है कि आप विशेषज्ञ नहीं हैं और न्याय नहीं कर सकते। इस मामले में आप कुछ तृतीय पक्ष परीक्षण सेवा की कोशिश कर सकते हैं, कम से कम साक्षात्कार से पहले प्रारंभिक फिल्टर के रूप में। मैं test4geeks.com का सुझाव दूंगा । उनका एसक्यूएल टेस्ट है।
धवल पटेल

जवाबों:


20

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

उस ने कहा, यहाँ कुछ मैं अपने सिर के ऊपर से आया हूँ।

बेहद आसान स्तर:
स्तंभों के साथ कर्मचारियों की तालिका को देखते हुए, FirstName, Lastname, HireDate, और TerminationDate:
कंपनी के लिए अभी भी काम कर रहे सभी कर्मचारियों को वापस लाने के लिए एक क्वेरी लिखें , अंतिम नाम "स्मिथ" के साथ शुरू होने वाले अंतिम नाम के साथ काम करने वाले पहले नाम के बाद।

आसान स्तर
ऊपर दिए गए कर्मचारी तालिका को देखते हुए, साथ ही कॉलम एम्पिड और रिव्यूडेट के साथ एक नई तालिका "एनुअल रीव्यू" दिया गया है:
सभी कर्मचारियों को वापस करने के लिए एक क्वेरी लिखें, जिनकी कभी भी समीक्षा नहीं की गई है।

मध्यम स्तर ऊपर दिए गए कर्मचारी तालिका को देखते हुए, कंपनी के लिए अभी भी काम कर रहे सबसे कम और कम कार्यकाल वाले कर्मचारी के बीच अंतर (दिनों में) की गणना करने के लिए एक प्रश्न लिखें?

हार्ड लेवल
ऊपर दिए गए कर्मचारी टेबल को देखते हुए, सबसे लंबी अवधि (दिनों में) की गणना करने के लिए एक प्रश्न लिखें कि कंपनी किसी को काम पर रखे या बिना किसी को बताए चली गई है।

हार्डर लेवल
फिर उसी टेबलों का उपयोग करते हुए, एक क्वेरी लिखें जो प्रत्येक कर्मचारी को लौटाए और प्रत्येक पंक्ति / कर्मचारी में उन कर्मचारियों की सबसे बड़ी संख्या शामिल हो, जिन्होंने अपने कार्यकाल के दौरान किसी भी समय कंपनी के लिए काम किया था और पहली तारीख जो अधिकतम तक पहुँच गई थी। कर्सर का उपयोग नहीं करने के लिए अतिरिक्त अंक।


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

3
कारण मैं पूछना चाहता हूँ (या कम से कम "ग्रेडर") उन्हें जवाब देने में सक्षम हो सकता है कि दृष्टिकोण आपको परिणाम के रूप में ज्यादा बता सकता है। मैं एक गैर-तकनीकी साक्षात्कारकर्ता के बारे में भी चिंता करता हूं, जिसके पास पूर्व-लिखित उत्तर है और अन्य संभावित सही उत्तरों को स्वीकार नहीं करता है (कार्ड कहता है "मूप")।
JohnFx

जैसे कि ये प्रश्न SQL संबंधित कार्यों के एक बहुत उच्च स्तर को संबोधित करने की क्षमता प्रदर्शित करते हैं। यदि उनका काम प्रश्नों को लिखना होगा, तो शायद। यदि आप उन्हें एक डीबी सर्वर का प्रशासन करने की उम्मीद कर रहे हैं, तो आपको उससे विशिष्ट प्रश्न पूछने की आवश्यकता होगी।
JohnFx

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

और हाँ, प्रश्नों का लक्ष्य एक प्रोग्रामर होगा, डेटाबेस-एडमिन नहीं।
ब्लंडर्स

4

मैं केवल आम तौर पर डेटा विशेषज्ञों के लिए साक्षात्कार में बैठता हूं, इसलिए मेरे प्रश्न कठिन होते हैं। लेकिन एक बात मुझे किसी ऐसे व्यक्ति की आवश्यकता होगी जो एसक्यूएल लिख रहा हो उसे जॉइन का ज्ञान होता है और जब लेफ्ट ज्वाइन का उपयोग करना होता है। जो कोई भी यह नहीं समझता है कि डेटाबेस को किसी भी तरह से आकार या रूप में क्वेरी करने का कोई व्यवसाय नहीं है।

एक और बात मैं यह सुनिश्चित करूंगा कि वे यह समझें कि कैसे एक ग्रुप BY करना है और एग्रीगेट कार्यों का उपयोग करना है।

और UNION और UNION ALL के बीच के अंतर ने मेरी नौकरी पर बहुत सारे गरीब उम्मीदवारों को खत्म कर दिया है।


2

मैं पूछूंगा कि "आपको SQL क्वेरी में उपयोग किए जाने वाले उपयोगकर्ता से दिए गए इनपुट मानों को क्यों और कैसे साफ करना चाहिए?"

इस एसक्यूएल इंजेक्शन को रोकने के लिए की जरूरत है, और जवाब देने में सक्षम किया जा रहा है इस SQL सिंटैक्स और आदेश (जैसे के बारे में अच्छा ज्ञान की आवश्यकता है SELECT, UPDATE, DROP, DELETE, आदि) के साथ ही उन एक प्रश्न तोड़ने के लिए एसक्यूएल टिप्पणियों के उपयोग के द्वारा धोखा दिया जा सकता है और घातक उपयोगकर्ता क्या करना चाहते हैं उसे इंजेक्ट करें।


1
उत्तर नहीं है: इनपुट को कभी भी सैनिटाइज़ न करें, एक तैयार स्टेटमेंट का उपयोग करें?
केविन क्लाइन

@Emmad करीम, जो कोई भी जवाब नहीं दे सकता है कि SQL नहीं लिखना चाहिए।
एचएलजीईएम

@ गैब्लिन, मैं वास्तव में नहीं देखता कि ऐसा क्यों है। क्या आप थोड़ा समझा सकते हैं? कितने SQL किताबें इस विषय पर चर्चा करते हैं?
NoChance

2

डेटाबेस प्रोग्रामर के लिए एक तकनीकी परीक्षण विकसित करने में मेरा हाथ था। प्रश्न वही थे जो मैं काफी बुनियादी मानता हूं: किसी दिए गए टेबल संरचना के लिए क्रिएट टेबल स्टेटमेंट लिखें; कुछ सरल प्रश्न करें; आदि।

अधिकांश नौकरी आवेदक जिन्होंने एसक्यूएल में खुद को विशेषज्ञ कहा, ने परीक्षा से किनारा कर लिया। एक ने कहा कि यद्यपि वह कई वर्षों से SQL डेवलपर था, फिर भी उसने कभी कोई रचना विवरण नहीं लिखा क्योंकि GUI ने उसके लिए ऐसा किया था।

हमारे पास अन्य तकनीकी परीक्षणों के समान अनुभव हैं। विंडोज समर्थन कर्मचारियों के लिए, कार्य "एक डोमेन उपयोगकर्ता बनाने," "एक प्रिंटर जोड़ें," "एक फाइल पर अनुमतियों को बदलने के समान हैं।" ज्यादातर लोग उन कार्यों को नहीं कर सकते, खासकर दबाव में। हम जानते हैं कि यदि आप साधारण सामान भी कर सकते हैं, तो आप शायद बहुत सक्षम हैं।


1
मुझे डर है कि मैं GUI का उपयोग करके डेवलपर की तरफ हूं। आप नियमित रूप से रचना स्क्रिप्ट लिखने के बिना एक पूरे कैरियर खर्च कर सकते हैं। कई लोग CASE उपकरणों में डेटा मॉडल विकसित करते हैं जो स्वचालित रूप से आपके लिए DDL उत्पन्न करते हैं। सामान्य तौर पर, मैं मुख्य रूप से वाक्यविन्यास को याद करने वाले किसी भी परीक्षण से दूर
भागता हूं

+1 @ बेरी ब्राउन: मैं सहमत हूं, और यह एक दिलचस्प बिंदु है।
बंडर्स

0

यदि आप अधिक खुले प्रश्न पूछना पसंद करते हैं: DATE, DATETIME ... डेटा प्रकारों के बारे में सामान्य प्रश्न पूछें। विभिन्न विक्रेता कार्यान्वयन / उत्पादों के बीच अंतर के बारे में पूछें। कमांड लाइन टूल, बल्क लोडर, सुंदर प्रिंटर के बारे में बात करें ... शायद आप साक्षात्कार के दौरान एक नई चाल सीख सकते हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.