php mysqli क्वेरी से mysql में क्वेरीज़। क्वेरीज़ जोड़ना (पावर क्वेरी)

घर में कीट 19.07.2023
घर में कीट

टिप्पणी:सुपरस्ट्रक्चर पावर क्वेरी Excel 2016 में कमांड के एक समूह के रूप में पेश किया गया डाउनलोड करें और कनवर्ट करें. इस आलेख की जानकारी पावर क्वेरी और नए समूह दोनों पर लागू होती है। अधिक जानकारी के लिए एक्सेल 2016 में डाउनलोड और कन्वर्ट सुविधा देखें।

पावर क्वेरी ऑपरेशन में जोड़नाएक नई क्वेरी बनाता है जिसमें पहली क्वेरी की सभी पंक्तियाँ और फिर दूसरी क्वेरी की सभी पंक्तियाँ शामिल होती हैं।

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

एक ऐड निष्पादित करना

आप दो प्रकार का जोड़ने का कार्य कर सकते हैं: मध्यवर्ती जोड़या इनलाइन संलग्न करें. का उपयोग करते हुए मध्यवर्ती जोड़प्रत्येक ऐड ऑपरेशन के लिए, एक नई क्वेरी बनाई जाती है। पर इनलाइन संलग्न करेंजब तक आप अंतिम परिणाम तक नहीं पहुंच जाते तब तक आप किसी मौजूदा क्वेरी में डेटा जोड़ते हैं। परिणाम वर्तमान अनुरोध के अंत में एक नया चरण है।

इनलाइन जोड़

मध्यवर्ती जोड़


यह सभी देखें:

टिप्पणी: प्रश्न संपादककेवल लोड करते समय, संपादित करते समय, या नया अनुरोध बनाते समय ही दिखाई देता है पावर क्वेरी. वीडियो में एक विंडो दिखाई गई है क्वेरी संपादकयह आपके द्वारा Excel कार्यपुस्तिका में किसी क्वेरी को संपादित करने के बाद दिखाई देता है। देखना क्वेरी संपादककार्यपुस्तिका में किसी मौजूदा क्वेरी को अनुभाग में लोड या संशोधित किए बिना बाह्य डेटा प्राप्त करनारिबन टैब पर पावर क्वेरीचुनना अन्य स्रोतों से > खाली अनुरोध. वीडियो प्रदर्शन विधियों में से एक दिखाता है क्वेरी संपादक.

".
शायद मॉस्को कार्यालय के लोगों के पास समय नहीं है, इसलिए आगे जो होगा वह क्वेरी भाषा संदर्भ (संस्करण 0.7) का निःशुल्क अनुवाद होगा।
गूगल विज़ुअलाइज़ेशन एपीआई। क्वेरी भाषा (संस्करण 0.7)
Google विज़ुअलाइज़ेशन एपीआई क्वेरी भाषा आपको क्वेरी के माध्यम से डेटा स्रोत तक डेटा में हेरफेर करने की अनुमति देती है।

आमतौर पर, विज़ुअलाइज़ेशन के लिए डेटा को कुछ विशिष्ट रूप में प्रस्तुत करने की आवश्यकता होती है। उदाहरण के लिए, पाई चार्ट के लिए दो कॉलम की आवश्यकता होती है: एक टेक्स्ट लेबल और एक संख्यात्मक मान। डेटा स्रोत इस संरचना के अनुरूप नहीं हो सकता है. इसमें अधिक कॉलम हो सकते हैं, या उनका क्रम चार्ट के लिए आवश्यक से भिन्न होगा।
क्वेरी भाषा हमें डेटा को उस तरीके से संरचित करने की अनुमति देती है जिस तरह से हमें परिणाम प्राप्त करने की आवश्यकता होती है।
क्वेरी भाषा सिंटैक्स SQL ​​के समान है। जो लोग SQL का उपयोग करने में कुशल हैं वे क्वेरी भाषा में शीघ्रता से महारत हासिल करने में सक्षम होंगे। वाक्यविन्यास अनुभाग इन भाषाओं में अंतर को रेखांकित करता है।
ध्यान दें कि विज़ुअलाइज़ेशन के लिए क्वेरी भाषा का उपयोग करना हमेशा आवश्यक नहीं होता है। इसका उपयोग करने के लिए आधार की आवश्यकता होती है। सामग्री के लिए.

क्वेरी भाषा का उपयोग करना

आप किसी डेटा स्रोत में दो तरीकों से क्वेरी स्ट्रिंग जोड़ सकते हैं: जावास्क्रिप्ट कोड से या डेटा स्रोत लिंक के पैरामीटर के रूप में। यदि आपके लिंक में क्वेरी पैरामीटर नहीं हैं, तो डिफ़ॉल्ट रूप से संपूर्ण डेटा सेट लौटा दिया जाता है। आप क्वेरी को डेटा स्रोत में समायोजित करके इस सेट को बदल सकते हैं।

यदि आप Google शीट्स में QUERY फ़ंक्शन का उपयोग कर रहे हैं, तो आप निम्नलिखित बिंदुओं को छोड़ सकते हैं और अगले भाग पर जा सकते हैं।

जावास्क्रिप्ट से अनुरोध सेट करना

जावास्क्रिप्ट कोड से क्वेरी स्ट्रिंग सेट करने के लिए, आपको विधि को कॉल करने की आवश्यकता है setQueryकक्षा google.visualization.Query।
var क्वेरी = नया google.visualization.Query(DATA_SOURCE_URL);
query.setQuery('विभाग अनुसार विभाग, योग(वेतन) समूह का चयन करें');
query.send(handleQueryResponse);

पैरामीटर का उपयोग करके डेटा स्रोत में एक क्वेरी स्ट्रिंग जोड़ी जा सकती है tq. इस तरह, आपके डेटा सेट को समायोजित करके अन्य डेवलपर्स द्वारा लिखे गए विज़ुअलाइज़ेशन का उपयोग करना संभव है।
क्वेरी स्ट्रिंग को URL पैरामीटर के रूप में ठीक से एन्कोड किया जाना चाहिए। आप जावास्क्रिप्ट फ़ंक्शन का उपयोग कर सकते हैं encodeURIComponentएन्कोडिंग के लिए या अनुभाग के अंत में दिए गए टूल का उपयोग करके इसे मैन्युअल रूप से करें।
उदाहरण
आइए Google शीट के लिए एक उदाहरण क्वेरी देखें (याद रखें कि कॉलम पहचानकर्ता हमेशा अक्षर होते हैं। प्रकाशित होने पर कॉलम नाम पहचानकर्ता नहीं होते हैं। यह कॉलम पहचानकर्ता हैं जिन्हें क्वेरी में उपयोग किया जाना चाहिए)
कोडिंग के बाद अनुरोध इस तरह दिखेगा:
%20A%2C%20sum(B)%20group%20by%20A चुनें
आइए मान लें कि डेटा तालिका का पता इस प्रकार है:
http://spreadSheets.google.com/a/google.com/tq?key=ABCDE
आइए एक अनुरोध पैरामीटर जोड़ें &tq=आपकी_QUERY_STRINGतालिका के लिंक पर जाएं और तैयार क्वेरी स्ट्रिंग प्राप्त करें
http://spreadSheets.google.com/a/google.com/tq?key=ABCDE&tq=select%A%2C%20sum(B)%20group%20by%20A

भाषा वाक्यविन्यास

समीक्षा

मेरी क्वेरी भाषा SQL से काफी मिलती-जुलती है। हालाँकि, कुछ विशेषताएं हैं जिन्हें ध्यान में रखना आवश्यक है।
डेटा तालिका
यह दस्तावेज़ किसी क्वेरी के परिणामों को संदर्भित करने के लिए "डेटा तालिका" की अवधारणा का परिचय देता है। तालिका में पंक्तियाँ और स्तंभ होते हैं। प्रत्येक कॉलम में निम्नलिखित गुण होते हैं:
  • पहचानकर्ता (या स्तंभ आईडी). तालिका स्तंभों को संदर्भित करने के लिए उपयोग किया जाता है। कृपया ध्यान दें कि आपको केवल किसी कॉलम को उसके पहचानकर्ता द्वारा संदर्भित करना होगा। चाल: पहचानकर्ताओं में रिक्त स्थान का उपयोग न करने का प्रयास करें, इससे अनुरोध को संपादित करने में कठिनाई हो सकती है। इसके अतिरिक्त, रिक्त स्थान वाले सभी पहचानकर्ताओं को बैककोट में संलग्न किया जाना चाहिए।
  • लेबल. यह वह स्ट्रिंग है जो आम तौर पर अंतिम उपयोगकर्ताओं को प्रदर्शित की जाती है। उदाहरण के लिए, पाई चार्ट में एक किंवदंती या तालिका चार्ट में एक शीर्षक। Google शीट्स में QUERY() फ़ंक्शन के लिए लागू नहीं है.
  • डेटा के प्रकार. निम्नलिखित डेटा प्रकार समर्थित हैं: स्ट्रिंग, संख्या, बूलियन, दिनांक, डेटाटाइम, टाइमऑफ़डे। किसी कॉलम में सभी मान उस कॉलम के डेटा प्रकार या शून्य के होंगे। ये डेटा प्रकार जावास्क्रिप्ट प्रकारों के समान हैं, लेकिन समान नहीं हैं। उनका वर्णन शाब्दिक अनुभाग में किया गया है।
  • फ़ॉर्मेटिंग टेम्प्लेट. डेटा तालिकाएँ सभी या कुछ स्तंभों के लिए फ़ॉर्मेटिंग पैटर्न का समर्थन कर सकती हैं। इन्हें फ़ॉर्मेटिंग अनुभाग में वर्णित किया गया है।
डेटा तालिका जिसका उपयोग सभी उदाहरणों में किया जाता है
इस दस्तावेज़ के उदाहरण निम्नलिखित डेटा और कॉलम प्रकारों वाली तालिका का उपयोग करते हैं:
नाम
डोरी
विभाग
डोरी
लंच टाइम
अपना समय

वेतन
संख्या

चुनने की तारीख
तारीख
आयु
संख्या
वरिष्ठ है
बूलियन
वरिष्ठता प्रारंभ समय
दिनांक समय
जॉन इंग्लैंड 12:00:00 2005-03-19 35 सत्य 2007-12-02 15:56:00
डेव इंग्लैंड 12:00:00 2006-04-19 27 असत्य व्यर्थ
विप्लव इंग्लैंड 13:00:00 2005-10-10 30 असत्य व्यर्थ
बेन बिक्री 12:00:00 2002-10-10 32 सत्य 2005-03-09 12:30:00
दाना बिक्री 12:00:00 2004-09-08 25 असत्य व्यर्थ
माइक विपणन 13:00:00 2005-01-10 24 सत्य 2007-12-30 14:40:00

भाषा संचालक

क्वेरी भाषा में निम्नलिखित एक या दो-शब्द कथन शामिल हैं। ऑपरेटरों को तालिका में दिखाए गए क्रम में एक-दूसरे का अनुसरण करना होगा:
ऑपरेटर प्रयोग
चुनना चयन करता है कि कौन से कॉलम लौटाए जाएंगे और किस क्रम में। यदि ऑपरेटर हटा दिया गया है, तो तालिका के सभी कॉलम वापस कर दिए जाएंगे।
केवल वे तालिका पंक्तियाँ लौटाता है जो किसी शर्त से मेल खाती हैं। यदि ऑपरेटर हटा दिया गया है, तो तालिका की सभी पंक्तियाँ वापस आ जाएँगी।
द्वारा समूह बनाएं मानों को पंक्ति के अनुसार समूहित करें।
धुरी पिवट तालिका के उदाहरण का अनुसरण करते हुए, स्तंभों में अद्वितीय मानों को नए स्तंभों में परिवर्तित करता है।
द्वारा आदेश मानों के आधार पर पंक्तियों को क्रमबद्ध करें.
आप LIMIT लौटाई जाने वाली पंक्तियों पर एक सीमा निर्धारित करता है।
ओफ़्सेट आउटपुट से पंक्तियों की एक निर्दिष्ट संख्या को छोड़ देता है।
लेबल कॉलम के लिए कैप्शन सेट करता है।
प्रारूप फ़ॉर्मेटिंग पैटर्न के अनुसार निर्दिष्ट कॉलम में मानों को फ़ॉर्मेट करता है।
विकल्प अतिरिक्त विकल्प सेट करता है.
से from ऑपरेटर का उपयोग नहीं किया गया है.
चुनना
चयन कथन निर्दिष्ट करता है कि कौन से कॉलम लौटाए जाने चाहिए और किस क्रम में। यदि ऑपरेटर निर्दिष्ट नहीं है, या चयन * निर्दिष्ट है, तो सभी तालिका कॉलम उनके मूल क्रम में लौटा दिए जाएंगे। स्तंभों को पहचानकर्ताओं के माध्यम से संदर्भित किया जा सकता है, लेकिन लेबल के माध्यम से नहीं। Google शीट में पहचानकर्ता एक या दो अक्षर वाले कॉलम नाम (ए, बी, सी, ..., एसी, ..., डीसी, ...) हैं।
ऑपरेटर पैरामीटर कॉलम पहचानकर्ता, समग्र फ़ंक्शन, स्केलर फ़ंक्शन या अंकगणितीय ऑपरेटर हो सकते हैं।
उदाहरण:
चुनना *
विभाग, वेतन चुनें
अधिकतम (वेतन) चुनें
मेल पतातारीख):

हमें परिणाम मिलता है:
लंच टाइम नाम
12:00:00 जॉन
12:00:00 डेव
13:00:00 विप्लव
12:00:00 बेन
12:00:00 दाना
13:00:00 माइक
जहाँ कथन का उपयोग केवल उन पंक्तियों को वापस करने के लिए किया जाता है जो शर्तों को पूरा करती हैं।
स्थितियों का वर्णन करने के लिए सरल तुलना ऑपरेटरों का उपयोग किया जाता है<=, <, >, >=, =, !=, <>. दोनों ऑपरेटर !=,<>अर्थ सम नही. स्ट्रिंग्स की तुलना उनके शब्दकोषीय मूल्य से की जाती है। ध्यान दें, समानता की जाँच = ऑपरेटर के माध्यम से की जाती है, न कि == के माध्यम से, जैसा कि कई भाषाओं में होता है. शून्य के साथ तुलना शून्य है और शून्य नहीं है के माध्यम से की जाती है। Google शीट्स में QUERY() का उपयोग करते समय, आमतौर पर स्ट्रिंग फ़ील्ड में शून्य के बजाय खाली मान "" होता है।
आप तार्किक ऑपरेटरों का उपयोग करके कई शर्तों को जोड़ सकते हैं और, या, नहीं। कोष्ठक का उपयोग स्पष्ट प्राथमिकता को परिभाषित करने के लिए किया जाता है।

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

उदाहरण:
चुनना *
विभाग, वेतन चुनें
अधिकतम (वेतन) चुनें
निम्नलिखित उदाहरण रिक्त स्थान के साथ पहचानकर्ता संदर्भों का उपयोग दिखाता है ( मेल पता) और पहचानकर्ताओं के लिए जो आरक्षित शब्दों के नाम से मेल खाते हैं ( तारीख):
`ईमेल पता`, नाम, `दिनांक` चुनें
आइए निम्नलिखित क्वेरी को उदाहरण तालिका पर लागू करें:
हमें परिणाम मिलता है:
लंच टाइम नाम
12:00:00 जॉन
12:00:00 डेव
13:00:00 विप्लव
12:00:00 बेन
12:00:00 दाना
13:00:00 माइक

इस आर्टिकल में हम जानेंगे PHP के माध्यम से डेटाबेस क्वेरी भेजें. यह लेख बहुत महत्वपूर्ण है, और आपको इसे अवश्य समझना चाहिए। हालाँकि, मैं आपको आश्वस्त करूंगा - सामग्री बहुत सरल है, इसलिए कोई कठिनाई नहीं होनी चाहिए।

लेख के विषय पर आगे बढ़ने से पहले, मैं आपको पहले ही चेतावनी देता हूं कि मैं विस्तार से विश्लेषण नहीं करूंगा एसक्यूएल भाषा. सभी आवश्यक जानकारी को समर्पित श्रेणी में क्रमबद्ध किया गया है, लेकिन यहां केवल हम हैं PHP के माध्यम से MySQL के साथ काम करना.

अब आगे बढ़ते हैं PHP में डेटाबेस क्वेरी भेजना:


}
$mysqli->क्वेरी("mytable (नाम, ईमेल) मानों में डालें ("MyName", " [ईमेल सुरक्षित]")");
$mysqli->बंद करें();
?>

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

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

$mysqli = @new mysqli("लोकलहोस्ट", "एडमिन", "पास", "मायबेस");
अगर (mysqli_connect_errno()) (
इको "कनेक्शन विफल:" .mysqli_connect_error();
}
$result_set = $mysqli->
जबकि ($row = $result_set->fetch_assoc()) (
print_r($पंक्ति);
प्रतिध्वनि"
";
}
$result_set->बंद करें();
$mysqli->बंद करें();
?>

सबसे पहले, मैं इसके बारे में थोड़ा समझा दूं कि यह क्या है। परिणाम सेट. परिणाम सेट- यह परिणाम वाली एक तालिका है। इस तालिका में रिकॉर्ड्स (तालिका पंक्तियाँ) का एक सेट है। और सभी रिकॉर्ड प्रदर्शित करने के लिए, आपको तालिका की प्रत्येक पंक्ति को दोहराना होगा और उसे प्रदर्शित करना होगा। और अब मैं एक उदाहरण से समझाऊंगा: अनुरोध भेजने के बाद, हम जेनरेट करते हैं परिणाम सेट. फिर हम वेरिएबल को एक लूप में असाइन करते हैं पंक्तिअगली पंक्ति का मान, यानी एक-आयामी सरणी जो विधि लौटाती है फ़ेच_एसोसोक(). जब सभी पंक्तियाँ समाप्त हो जाएँ तो विधि फ़ेच_एसोसोक()वापसी करेंगे असत्य, और लूप बाहर निकल जाएगा। लूप के अंदर जबकिहम केवल डिबग फ़ंक्शन का उपयोग करके सरणी को आउटपुट करते हैं प्रिंट_आर(), हालाँकि इसका उपयोग करके निश्चित रूप से अनुमान लगाया जा सकता है प्रत्येक के लिए, लेकिन अब ये जरूरी नहीं है.

आइए संक्षेप में बताएं कि कैसे काम करना है परिणाम सेट:

  1. पाना परिणाम सेटडेटाबेस को संबंधित अनुरोध भेजकर।
  2. लूप में, प्रत्येक पुनरावृत्ति पर, अगली पंक्ति (रिकॉर्ड) असाइन करें परिणाम सेटविधि का उपयोग करना फ़ेच_एसोसोक()कुछ परिवर्तनशील पंक्ति. फिर आप इस वेरिएबल के साथ एक-आयामी सहयोगी सरणी के रूप में काम कर सकते हैं, जिसमें कुंजी तालिका फ़ील्ड के नाम हैं, और मान वर्तमान रिकॉर्ड से मेल खाते हैं।
  3. बंद करना सुनिश्चित करें परिणाम सेटतरीका बंद करना()संसाधनों को ख़त्म करने के लिए.

जैसा कि आपने देखा, विधि फ़ेच_एसोसोक()हमेशा अगला रिकॉर्ड लौटाता है. यानी पहले पहला, फिर दूसरा, फिर तीसरा और इसी तरह आगे भी। यदि आपके पास अच्छा प्रोग्रामिंग अनुभव है, तो आप तुरंत अनुमान लगा लेंगे कि यह आंतरिक सूचक के कारण होता है, जिसे आप निश्चित रूप से स्थानांतरित कर सकते हैं। इसका उपयोग कहां किया जाता है? उदाहरण के लिए, इसका उपयोग तब किया जा सकता है जब आपको साथ काम करने की आवश्यकता हो परिणाम सेटनहीं 1 , ए 2 और अधिक बार. उसी अनुरोध को दोबारा उत्पन्न करने से बचने के लिए, आप बस पॉइंटर को शुरुआत में ले जा सकते हैं। और फिर आप फिर से क्रूर बल प्रयोग शुरू कर सकते हैं परिणाम सेट Fetch_assoc() विधि का उपयोग करना।

सूचक की स्थिति बदलने की एक विधि है डेटा_सीक(), जो से एक पूर्णांक लेता है 0 पहले " अभिलेखों की संख्या - 1", तदनुसार, सूचक को पैरामीटर के अनुरूप प्रविष्टि पर रखा गया है:

$mysqli = @new mysqli("लोकलहोस्ट", "एडमिन", "पास", "मायबेस");
अगर (mysqli_connect_errno()) (
इको "कनेक्शन विफल:" .mysqli_connect_error();
}
$result_set = $mysqli->query("SELECT * FROM mytable");
$result_set->num_rows;
जबकि ($row = $result_set->fetch_assoc()) (
print_r($पंक्ति);
प्रतिध्वनि"
";
}
$result_set->data_seek(0);
जबकि ($row = $result_set->fetch_assoc()) (
print_r($पंक्ति);
प्रतिध्वनि"
";
}
$result_set->बंद करें();
$mysqli->बंद करें();
?>

इस उदाहरण में हमारे पास आउटपुट है परिणाम_सेट में रिकॉर्ड की संख्यासंपत्ति का उपयोग करना num_rows. हम विधि से भी परिचित हुए डेटा_सीक(). अर्थात्, हमने पूरे परिणाम को दोहराया, फिर एक सूचक लौटाया 0रिकॉर्ड करें और फिर से परिणाम देखें।

इस आलेख में, हमने डेटाबेस से कनेक्ट करने और कनेक्शन बंद करने को दोहराया। और पता भी चला PHP के माध्यम से डेटाबेस को क्वेरी कैसे करें. सीखा, परिणाम_सेट कैसे प्राप्त करेंऔर इसके साथ कैसे काम करना है। सफल होने के लिए यह वह सब कुछ है जो आपको जानना आवश्यक है PHP में MySQL के साथ काम करना.

मुझे लगता है कि पेरेटो नियम के बारे में सभी ने सुना होगा। किसी भी क्षेत्र में, 20% प्रयास 80% परिणाम देते हैं। उदाहरण के लिए, आप 80% समय अपनी अलमारी का 20% पहनते हैं, आपके 20% ग्राहक आपकी आय का 80% लाते हैं। Google शीट्स में भी ऐसा ही है: मौजूदा कार्यों में से 20% को जानकर, आप सभी संभावित समस्याओं में से 80% को हल कर सकते हैं।

मुझे क्वेरी Google शीट्स की सबसे उपयोगी सुविधाओं में से एक लगती है। लेकिन Google सहायता इसका बहुत ही सतही वर्णन करती है, और इस फ़ंक्शन की पूरी शक्ति का खुलासा नहीं किया गया है। बारीकी से जांच करने पर, यह स्पष्ट हो जाता है कि यह अधिकांश मौजूदा कार्यों को बदलने में सक्षम है।

QUERY के साथ काम करने के लिए, आपको SQL के बुनियादी ज्ञान की आवश्यकता होगी। जो लोग नहीं जानते, वे चिंता न करें, QUERY फ़ंक्शन वास्तव में बहुत ही बुनियादी SQL सुविधाओं का समर्थन करता है।

क्वेरी सिंटैक्स

QUERY(डेटा; अनुरोध; [हेडर])
  • डेटा— यह कोशिकाओं की एक श्रृंखला है जो SQL क्वेरी के लिए डेटाबेस के रूप में काम करेगी;
  • अनुरोध- एसक्यूएल क्वेरी टेक्स्ट;
  • हेडरएक वैकल्पिक तर्क है जिसमें आप निर्दिष्ट कर सकते हैं कि सरणी की पहली पंक्तियों में से कितने में हेडर हैं।

अधिक जानकारी की समझ को अधिकतम करने के लिए, मैं निम्नलिखित Google शीट को खोलने और कॉपी करने का सुझाव देता हूं

आपके द्वारा अभी-अभी बनाई गई डॉक्स में कई शीट हैं। DB शीट वह डेटाबेस है जिसे हम QUERY फ़ंक्शन का उपयोग करके एक्सेस करेंगे। लेवल शीट में वे उदाहरण हैं जिन्हें हम इस आलेख में देखेंगे। प्रत्येक नए स्तर के साथ उदाहरण और अधिक जटिल हो जाएगा।

क्वेरी फ़ंक्शन में SQL क्वेरी योजना

किसी भी SQL क्वेरी में अलग-अलग ब्लॉक होते हैं, जिन्हें अक्सर स्लेंडर कहा जाता है। क्वेरी फ़ंक्शन के लिए SQL Google विज़ुअलाइज़ेशन API क्वेरी भाषा सिंटैक्स का उपयोग करता है, जो निम्नलिखित खंडों का समर्थन करता है:

  • चुनना- उन फ़ील्ड्स को सूचीबद्ध करना जो अनुरोध द्वारा लौटाए जाएंगे;
  • कहाँ- इसमें उन शर्तों की एक सूची शामिल है जिनके द्वारा अनुरोध द्वारा संसाधित डेटा सरणी को फ़िल्टर किया जाएगा;
  • द्वारा समूह बनाएं- इसमें फ़ील्ड की एक सूची शामिल है जिसके द्वारा आप परिणामों को समूहीकृत करना चाहते हैं;
  • धुरी- अंतिम तालिका के कॉलम के नाम के रूप में एक कॉलम के मान का उपयोग करके क्रॉस-टैब बनाने में मदद करता है;
  • द्वारा आदेश- परिणामों को क्रमबद्ध करने के लिए जिम्मेदार है;
  • आप LIMIT- क्वेरी के इस भाग से आप क्वेरी द्वारा लौटाई गई पंक्तियों की संख्या पर एक सीमा निर्धारित कर सकते हैं;
  • ओफ़्सेट- इस बदनामी का उपयोग करके, आप पहली पंक्तियों की संख्या निर्धारित कर सकते हैं जिन्हें क्वेरी द्वारा संसाधित करने की आवश्यकता नहीं है;
  • लेबल- यह बदनामी अनुरोध द्वारा लौटाए गए फ़ील्ड के नाम के लिए ज़िम्मेदार है;
  • प्रारूप- आउटपुट डेटा के प्रारूप के लिए जिम्मेदार;
  • विकल्प -अतिरिक्त डेटा आउटपुट पैरामीटर सेट करना संभव बनाता है।

क्वेरी (चयन) फ़ंक्शन के लिए हैलो वर्ल्ड

आइए लेवल_1 शीट पर जाएं और सेल ए1 में सूत्र देखें।

क्वेरी(डीबी!ए1:एल1143;"चयन करें * सीमा 100")

सूत्र का भाग " डीबी!ए1:एल1143"उस डेटाबेस के लिए ज़िम्मेदार है जिससे हम नमूनाकरण करेंगे। दूसरा हिस्सा " * सीमा 100 चुनें"इसमें अनुरोध का पाठ ही शामिल है। इस मामले में "*" प्रतीक का अर्थ डेटाबेस में निहित सभी फ़ील्ड को वापस करना है। का उपयोग करके " सीमा 100» हम आउटपुट को अधिकतम 100 लाइनों तक सीमित करते हैं। यह सबसे सरल अनुरोध का एक उदाहरण है. हमने डेटाबेस से पहली 100 पंक्तियों का चयन किया। यह क्वेरी फ़ंक्शन के लिए एक प्रकार का "हैलो वर्ल्ड" है।

हम फ़िल्टर और सॉर्टिंग का उपयोग करते हैं (कहां, ऑर्डर करें)

शीट लेवल_2 पर जाएँ। आइए केवल कुछ फ़ील्ड का चयन करें जिनकी हमें आवश्यकता है और फ़िल्टरिंग और सॉर्टिंग की स्थिति निर्धारित करें। उदाहरण के लिए, हम 22-25 अक्टूबर, 2015 की अवधि के लिए केवल अभियान_1 और अभियान_2 अभियानों के लिए डेटा का उपयोग करते हैं। आइए उन्हें सत्रों की मात्रा के अनुसार अवरोही क्रम में क्रमबद्ध करें। फ़िल्टर और सॉर्ट करने के लिए, आपको अनुरोध पाठ में बदनामी का विवरण जोड़ना होगा कहाँऔर आदेश. परिणामी तालिका में ऊपर वर्णित उदाहरण प्रदर्शित करने के लिए, हमें अभियान, दिनांक और सत्र फ़ील्ड की आवश्यकता है। वे वही हैं जिन्हें बदनामी में सूचीबद्ध करने की आवश्यकता है चुनना.

डेटाबेस फ़ील्ड्स को वर्कशीट के उन कॉलमों के नामों के माध्यम से एक्सेस किया जाता है जिन पर डेटाबेस स्थित है।

हमारे मामले में, डीबी शीट पर स्थित डेटा और कुछ फ़ील्ड तक पहुंच को शीट कॉलम के नाम के रूप में लिखा जाता है। इस प्रकार, आवश्यक फ़ील्ड निम्नलिखित कॉलम में स्थित हैं:

  • मैदान तारीख- कॉलम ए;
  • मैदान अभियान- कॉलम बी;
  • मैदान सत्र- कॉलम जी.

तदनुसार, परिणामस्वरूप डेटा आउटपुट की सूची के लिए जिम्मेदार अनुरोध का भाग इस तरह दिखेगा:

ए, बी, जी चुनें

अनुरोध में अगला एक बदनामी है कहाँ. अनुरोध लिखते समय, बदनामी को उसी क्रम में रखा जाना चाहिए जिसमें इस लेख के पहले खंड में वर्णित किया गया था। घोषणा के बाद कहाँहमें फ़िल्टरिंग शर्तों को सूचीबद्ध करने की आवश्यकता है। इस मामले में, हम डेटा को अभियान नाम (अभियान) और दिनांक (तिथि) के आधार पर फ़िल्टर करते हैं। हम कई फ़िल्टरिंग शर्तों का उपयोग करते हैं। क्वेरी टेक्स्ट में सभी स्थितियों के बीच तार्किक ऑपरेटर OR या AND होना चाहिए। तिथियों द्वारा फ़िल्टर करना संख्यात्मक और पाठ मानों द्वारा फ़िल्टर करने से थोड़ा अलग है; इसके लिए दिनांक ऑपरेटर के उपयोग की आवश्यकता होती है। डेटा फ़िल्टर करने के लिए ज़िम्मेदार अनुरोध का भाग इस तरह दिखेगा:

कहां (ए >= दिनांक"2015-10-22" और ए<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")

कोष्ठक का उपयोग करते हुए, हमने डेटा फ़िल्टरिंग को दो तार्किक भागों में विभाजित किया है: पहला फ़िल्टर तिथियों के अनुसार, दूसरा फ़िल्टर अभियान नाम के अनुसार। इस स्तर पर, चयनित किए जाने वाले डेटा और डेटा फ़िल्टरिंग स्थितियों का वर्णन करने वाला सूत्र इस तरह दिखता है:

क्वेरी(डीबी!ए1:एल1143;" ए, बी, जी चुनें जहां (ए >= दिनांक"2015-10-22" और ए<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2")")

आप इसे कॉपी और पेस्ट कर सकते हैं, उदाहरण के लिए, इस पोस्ट में उदाहरण के रूप में उपयोग किए गए दस्तावेज़ की एक नई शीट पर, और निम्नलिखित परिणाम प्राप्त कर सकते हैं:

सामान्य तार्किक ऑपरेटरों के अलावा (=,<, >) WHERE ब्लॉक अतिरिक्त फ़िल्टरिंग ऑपरेटरों का समर्थन करता है:

  • रोकना- एक स्ट्रिंग में कुछ वर्णों की सामग्री की जाँच करता है। उदाहरण के लिए, जहां ए में 'जॉन' शामिल है, कॉलम ए से सभी मान फ़िल्टर पर वापस आ जाएंगे जिनमें जॉन शामिल है, उदाहरण के लिए, जॉन एडम्स, लॉन्ग जॉन सिल्वर;
  • इसके साथ आरंभ होता है- उपसर्ग द्वारा मानों को फ़िल्टर करता है, अर्थात पंक्ति की शुरुआत में वर्णों की जाँच करता है। उदाहरण के लिए, 'एन' से शुरू होने पर इंजीनियरिंग और अंग्रेजी के मान वापस आ जाएंगे;
  • इसी के साथ समाप्त होता है- एक स्ट्रिंग के अंत में मानों को फ़िल्टर करता है। उदाहरण के लिए, रेखा 'चरवाहा ' को "लड़के' के साथ समाप्त होता है" या "y' के साथ समाप्त होता है" द्वारा लौटाया जाएगा;
  • माचिस- नियमित अभिव्यक्ति से मेल खाता है। उदाहरण के लिए: जहां मेल खाता है '।*मैं एक 'भारत और नाइजीरिया के मूल्यों को लौटाएंगे।'
  • पसंद -रेगुलर एक्सप्रेशन का एक सरलीकृत संस्करण, यह वाइल्डकार्ड वर्णों का उपयोग करके जांच करता है कि कोई स्ट्रिंग किसी दिए गए एक्सप्रेशन से मेल खाती है या नहीं। वर्तमान में, लाइक दो वाइल्डकार्ड वर्णों का समर्थन करता है: "%" का अर्थ है स्ट्रिंग में किसी भी वर्ण की संख्या, और "_" का अर्थ है कोई भी एक वर्ण। उदाहरण के लिए, "जहां 'fre%' जैसा नाम" पंक्तियों से मेल खाएगा 'मुक्त ’, 'फ्रेड ', और 'फ्रेडी ’.

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

हमारे मामले में, अनुरोध पाठ की पंक्ति फ़िल्टरिंग के लिए ज़िम्मेदार होगी:

जी विवरण द्वारा आदेश

तदनुसार, लेवल_2 शीट पर सूत्र का अंतिम परिणाम, जो हमें आवश्यक समस्या का समाधान करता है, इस तरह दिखता है:

क्वेरी(डीबी!ए1:एल1143;" ए, बी, जी चुनें जहां (ए >= दिनांक"2015-10-22" और ए<= date"2015-10-25") AND (B = "Campaign_1" OR B = "Campaign_2") ORDER BY G DESC")

अब आप डेटा को फ़िल्टर और सॉर्ट करने के लिए सरल SQL सिंटैक्स और QUERY फ़ंक्शन का उपयोग कर सकते हैं।

संसाधन mysql_query(स्ट्रिंग क्वेरी [, संसाधन लिंक_पहचानकर्ता])

mysql_query()पारित सूचक द्वारा संदर्भित सक्रिय सर्वर डेटाबेस के लिए एक अनुरोध भेजता है। यदि link_identifier को छोड़ दिया जाता है, तो अंतिम खुले कनेक्शन का उपयोग किया जाता है। यदि कोई खुला कनेक्शन नहीं है, तो फ़ंक्शन फ़ंक्शन के समान, DBMS से कनेक्ट करने का प्रयास करता है mysql_कनेक्ट()पैरामीटर के बिना. क्वेरी परिणाम बफ़र किया गया है.

टिप्पणी:क्वेरी स्ट्रिंग अर्धविराम के साथ समाप्त नहीं होनी चाहिए.

केवल चयन करने, दिखाने, समझाने, वर्णन करने के लिए, mysql_query()अनुरोध के परिणाम के लिए एक सूचक लौटाता है, या असत्ययदि अनुरोध पूरा नहीं हुआ।
अन्य मामलों में (सम्मिलित करें, अद्यतन करें, हटाएँ, छोड़ें, आदि), mysql_query()रिटर्न सत्यसफल अनुरोध के मामले में और असत्यत्रुटि के मामले में. मूल्य समान नहीं है असत्यइंगित करता है कि अनुरोध सफलतापूर्वक पूरा हो गया था। यह प्रभावित या लौटाई गई पंक्तियों की संख्या नहीं बताता है। यह बहुत संभव है कि एक सफल क्वेरी किसी एक पंक्ति को प्रभावित न करे।

निम्नलिखित अनुरोध गलत तरीके से तैयार किया गया है और mysql_query()वापसी करेंगे असत्य :

mysql_query()इसे भी गलत माना गया है और यह वापस आ जाएगा असत्य, यदि आपके पास अनुरोध में निर्दिष्ट तालिका के साथ काम करने के लिए पर्याप्त अधिकार नहीं हैं।

क्वेरी परिणामों के साथ काम करते समय, आप फ़ंक्शन का उपयोग कर सकते हैं mysql_num_rows()किसी SELECT क्वेरी, पंक्तियों, या द्वारा लौटाई गई संख्या को खोजने के लिए mysql_प्रभावित_पंक्तियाँ() DELETE, INSERT, REPLACE, या UPDATE क्वेरी द्वारा संसाधित पंक्तियों की संख्या ज्ञात करने के लिए।

केवल प्रश्नों के लिए चयन करें, दिखाएं, वर्णन करें, व्याख्या करें, फ़ंक्शन करें mysql_query()परिणाम के लिए एक संकेतक लौटाता है जिसका उपयोग किसी फ़ंक्शन में किया जा सकता है mysql_fetch_array()और अन्य फ़ंक्शन जो क्वेरी परिणामों के साथ काम करते हैं। जब आप परिणाम के साथ काम करना समाप्त कर लें, तो आप फ़ंक्शन का उपयोग करके इसे संग्रहीत करने के लिए उपयोग किए गए संसाधनों को जारी कर सकते हैं



हम पढ़ने की सलाह देते हैं

शीर्ष