MYSQL

2009-07-15 19 views
5

में एकल बराबर मैं सोच रहा था कि क्यों MySQL एक समान बराबर संकेतों के बजाय सशर्त बयान में एक समान बराबर चिह्न का उपयोग करता है। क्या इसके लिए कोई तकनीकी/ऐतिहासिक कारण है? धन्यवाद।MYSQL

उत्तर

7

हाय, मैं सोच रहा था कि क्यों MYSQL एक समान बराबर संकेतों के बजाय सशर्त बयान में एक समान बराबर चिह्न का उपयोग करता है। क्या इसके लिए कोई तकनीकी/ऐतिहासिक कारण है? धन्यवाद।

तुलना की तुलना में तुलना SQL में तुलना अधिक आम है।

यही कारण है कि SQL अधिक सामान्य चीजों को करने के लिए अधिक संक्षिप्त वाक्यविन्यास का उपयोग करता है।

शास्त्रीय SQL में, तुलना संदर्भ द्वारा काम से प्रतिष्ठित किया जा सकता है (काम केवल एक UPDATE बयान के SET खंड में हो सकता है), इसलिए एक ऑपरेटर दोनों कार्यों के लिए इस्तेमाल किया जा सकता है।

MySQL के SQL के विस्तार में, एक सत्र चर करने के लिए काम से :=

+0

एसक्यूएल Ingres 'QUEL से विकसित नहीं हुआ था। QUEL, हालांकि शायद कुछ तरीकों से एक बेहतर डिजाइन, एसक्यूएल द्वारा आपूर्ति की गई थी। – lavinio

+0

@lavinio: सही, उस भाग को हटा दिया। – Quassnoi

7

ऐतिहासिक की तरह अधिक।

यह एसक्यूएल है। इसने शुरुआती '70 के दशक से तुलना के लिए एक समान बराबर चिह्न का उपयोग किया है।

+0

स्रोत का कोई विचार? – Anon

+0

यह आईबीएम द्वारा '70 के दशक में विकसित किया गया था। इसे मूल रूप से संरचित अंग्रेजी क्वेरी भाषा नामित किया गया था, इसलिए इसका उद्देश्य नियमित मानव भाषा के करीब होना है। – Guffa

5

निरूपित किया जाता है वहाँ एसक्यूएल में अस्पष्टता के लिए एक मामला नहीं है।

C.J.Date (1987 संस्करण), असाइनमेंट के लिए = द्वारा मूल एक गाइड एसक्यूएल स्टैंडर्ड करने के लिए केवल UPDATE की SET खंड में प्रयोग किया जाता है। हर जगह = का उपयोग किया जाता है इसका उपयोग तुलना के लिए किया जाता है।

लेकिन अन्य भाषाओं में, जैसे सी/सी ++/सी #/जावा, = असाइनमेंट के रूप में उपयोग किया जा सकता है लेकिन यह एक मूल्य भी देता है। तो a = b का अर्थ है "ab के बराबर निर्धारित करते हैं, और वापसी a" जबकि a == b का अर्थ है "वापसी true अगर a और b बराबर हैं"। (यह सी कार्यक्रमों में एक बहुत ही आम बग की ओर जाता है, क्योंकि if (a = b) और if (a == b) दोनों मान्य है, क्योंकि इसका परिणाम एक bool होना जरूरी नहीं है।)

जावास्क्रिप्ट/ECMAScript की तरह कुछ भाषाओं में तीसरे प्रकार के रूप में === परिचय तुलना की उन भाषाओं में, == का अर्थ है "उसी प्रकार में कनवर्ट करें और तुलना करें" जबकि === का अर्थ है "वापसी true केवल तभी यदि वे एक ही प्रकार और समान मान हैं।"