मैं एसक्यूएल सीख रहा हूं और फील्ड नामों के लिए सिंगल कोट्स और डबल कोट्स के उपयोग के बारे में सोच रहा था।

SELECT *
  FROM tutorial.billboard_top_100_year_end
 WHERE year_rank <= 10
   AND "group" LIKE '%Ludacris%'  

group पर दोहरे उद्धरण को हटाना क्यों काम नहीं करता है, लेकिन यह year को उद्धरणों के साथ या बिना स्वीकार करता है?

0
John Doe 10 जिंदा 2020, 17:56
1
कौन सा डेटाबेस? मुझे पता है कि पोस्टग्रेएसक्यूएल उद्धृत और निर्विवाद पहचानकर्ताओं को अलग-अलग व्यवहार करता है उदाहरण के लिए: अयोग्य को निचले मामले में मैप किया जाता है जबकि उद्धृत मामले को संरक्षित किया जाता है और केस संवेदनशील होता है। (इसलिए प्रभावी ढंग से यदि आपने तालिका बनाते समय उद्धरणों के साथ एक कॉलम घोषित किया है तो आपको इसके लिए उद्धरणों का उपयोग करना होगा।) हालांकि ऐसा नहीं लगता है कि यह आपकी समस्या होगी।
 – 
Rup
10 जिंदा 2020, 17:59
मैं MODE नामक वेबसाइट के माध्यम से SQL सीख रहा हूँ। सुनिश्चित नहीं है कि यह किस प्रकार के SQL पर काम करता है...
 – 
John Doe
10 जिंदा 2020, 18:00
2
group एक आरक्षित शब्द है, इसलिए यदि पहचानकर्ता के रूप में उपयोग किया जाता है तो उसे उद्धृत किया जाना चाहिए। year_Whatever नहीं है, क्योंकि year एक बड़े पहचानकर्ता का हिस्सा है, इसलिए इससे कोई फर्क नहीं पड़ता कि केवल year नामक एक आरक्षित शब्द होता है।
 – 
underscore_d
10 जिंदा 2020, 18:00
2
@Rup: जो कि SQL मानक को परिभाषित करता है, सिवाय इसके कि SQL मानक के लिए गैर-उद्धृत पहचानकर्ताओं को निचले मामले में मोड़ने की आवश्यकता होती है
 – 
a_horse_with_no_name
10 जिंदा 2020, 18:03
ओह ठीक है, धन्यवाद। किसी और के पोस्टग्रेएसक्यूएल कोड के साथ काम करते समय मैंने कभी इसमें भाग लिया है।
 – 
Rup
10 जिंदा 2020, 18:04

1 उत्तर

group एक आरक्षित कुंजी है और इस प्रकार इसे नियमित पहचानकर्ता के रूप में उपयोग नहीं किया जा सकता है।

पहचानकर्ता जिसमें या तो अवैध वर्ण हैं (उदाहरण के लिए एक स्थान) या आरक्षित कीवर्ड हैं, उन्हें दोहरे उद्धरण चिह्नों के साथ उद्धृत करना होगा। उदाहरण के लिए पोस्टग्रेज मैनुअल< में स्पष्टीकरण देखें। /ए>

SQL मानक में उन्हें "सीमांकित पहचानकर्ता" के रूप में संदर्भित किया जाता है, लेकिन "उद्धृत पहचानकर्ता" शब्द भी बहुत सामान्य है।

सिंगल कोट्स का उपयोग केवल SQL में स्ट्रिंग मानों के लिए किया जाता है (हालाँकि कुछ DBMS उत्पाद स्ट्रिंग्स के लिए दोहरे उद्धरण चिह्नों और पहचानकर्ताओं के लिए सिंगल कोट्स का उपयोग करने की अनुमति देते हैं, जो कि गैर-मानक SQL है)

ध्यान दें कि SQL मानक के अनुसार, उद्धृत पहचानकर्ता केस-संवेदी हैं, इसलिए "Group" और "GROUP" दो अलग-अलग नाम हैं (फिर कुछ DBMS उत्पाद इसे भी अनदेखा कर देते हैं)।

3
a_horse_with_no_name 10 जिंदा 2020, 18:01
ऐसा ही प्रतीत होता है। क्या इसका मतलब है कि मैं उन सभी क्षेत्रों के लिए दोहरे उद्धरण चिह्नों का उपयोग कर सकता हूं जिन्हें मुझे एक्सेस करने की आवश्यकता है। इस मामले में मैं "वर्ष" और अन्य सभी क्षेत्रों को मानक अभ्यास के रूप में उपयोग करूंगा
 – 
John Doe
10 जिंदा 2020, 18:07
1
सिद्धांत रूप में हाँ, लेकिन मैं दृढ़ता से अनुशंसा करता हूं कि SQL में दोहरे उद्धरण चिह्नों का उपयोग कभी न करें। यह लंबे समय में आपके जीवन को बहुत आसान बना देगा।
 – 
a_horse_with_no_name
10 जिंदा 2020, 18:08