Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

MySQL CHAR () बनाम T-SQL CHAR ():क्या अंतर है?

ऐसे कई कार्य हैं जो MySQL और SQL सर्वर दोनों में शामिल हैं। हालांकि, सिर्फ इसलिए कि दोनों डीबीएमएस एक ही नाम के कार्यों को साझा करते हैं, इसका मतलब यह नहीं है कि वे कार्य ठीक उसी तरह काम करते हैं।

CHAR() लें उदाहरण के लिए। MySQL और SQL सर्वर दोनों में यह फ़ंक्शन शामिल है। तकनीकी रूप से, SQL सर्वर के लिए यह वास्तव में एक T-SQL फ़ंक्शन है, लेकिन यह बिंदु के बगल में है। मुद्दा यह है कि MySQL CHAR() फ़ंक्शन टी-एसक्यूएल/एसक्यूएल सर्वर की तुलना में अधिक कार्यक्षमता प्रदान करता है CHAR() समारोह।

विशेष रूप से, MySQL संस्करण कई पूर्णांकों को स्वीकार करता है, जबकि, T-SQL संस्करण केवल एक पूर्णांक को स्वीकार करता है। MySQL संस्करण USING . को भी स्वीकार करता है क्लॉज जो आपको यह निर्दिष्ट करने की अनुमति देता है कि किस वर्ण सेट का उपयोग करना है (टी-एसक्यूएल संस्करण में यह क्लॉज नहीं है)।

नीचे इन अंतरों के कुछ उदाहरण दिए गए हैं।

एकाधिक पूर्णांक

यदि हम MySQL का उपयोग करते समय एक से अधिक पूर्णांकों की आपूर्ति करते हैं तो क्या होता है:

SELECT CHAR(67, 97, 116) AS 'MySQL Result';

परिणाम:

+--------------+
| MySQL Result |
+--------------+
| Cat          |
+--------------+

इसलिए यह प्रत्येक पूर्णांक की सफलतापूर्वक व्याख्या करता है और परिणाम देता है।

यदि हम SQL सर्वर का उपयोग करके ऐसा ही करते हैं तो यहां क्या होता है:

SELECT CHAR(67, 97, 116) AS 'SQL Server Result';

परिणाम:

The char function requires 1 argument(s).

MySQL उदाहरण के समान परिणाम प्राप्त करने के लिए, हमें कई CHAR() को जोड़ना होगा कार्य। कुछ इस तरह:

SELECT CHAR(67) + CHAR(97) + CHAR(116) AS 'Concatenated Result';

परिणाम:

+-----------------------+
| Concatenated Result   |
|-----------------------|
| Cat                   |
+-----------------------+

USING खंड

CHAR() . का MySQL संस्करण एक USING स्वीकार करता है खंड, जबकि टी-एसक्यूएल संस्करण नहीं है। यहां एक उदाहरण दिया गया है जहां मैं MySQL का उपयोग करके यूनिकोड कोड बिंदु निर्दिष्ट करता हूं:

SELECT CHAR(0x027FE USING ucs2) AS 'MySQL Result';

परिणाम:

+--------------+
| MySQL Result |
+--------------+
| ⟾            |
+--------------+

और जब मैं SQL सर्वर पर स्विच करता हूँ तो क्या होता है:

SELECT CHAR(0x027FE USING ucs2) AS 'SQL Server Result';

परिणाम:

Incorrect syntax near 'USING'.

उदाहरण 3 - एकाधिक परिणाम बाइट्स

MySQL में, 255 से बड़े तर्क स्वचालित रूप से एकाधिक परिणाम बाइट्स में परिवर्तित हो जाते हैं। SQL सर्वर में, 255 से बड़े तर्क NULL return लौटाते हैं ।

यहाँ MySQL का उपयोग करते हुए एक उदाहरण दिया गया है:

SELECT HEX(CHAR(1799)) AS 'MySQL Result';

परिणाम:

+--------------+
| MySQL Result |
+--------------+
| 0707         |
+--------------+

और यहाँ, हम SQL सर्वर में वही काम करने का प्रयास करते हैं:

SELECT CONVERT(VARCHAR(1000), CHAR(1799), 2) AS 'SQL Server Result';

परिणाम:

+---------------------+
| SQL Server Result   |
|---------------------|
| NULL                |
+---------------------+

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एक MySQL डेटाबेस में ट्रिगर के साथ कार्य करना - एक ट्यूटोरियल

  2. PostgreSQL इंडेक्स बनाम InnoDB इंडेक्स - अंतर को समझना

  3. विंडोज़ के लिए एक्सएएमपीपी में mysql क्लाइंट .my.cnf का स्थान क्या है?

  4. Django की प्राथमिक कुंजी को एक अलग पूर्णांक के साथ कैसे बदलें जो उस तालिका के लिए अद्वितीय है

  5. MySQL मारियाडीबी - अस्थायी तालिका का उपयोग कर क्वेरी