Neo4j की अपनी क्वेरी भाषा है जिसे Cypher कहा जाता है। साइफर SQL (स्ट्रक्चर्ड क्वेरी लैंग्वेज) के समान सिंटैक्स का उपयोग करता है।
उदाहरण
साइफर स्टेटमेंट का एक उदाहरण यहां दिया गया है:
MATCH (p:Person { name:"Homer Flinstone" }) RETURN p
यह साइफर स्टेटमेंट एक "व्यक्ति" नोड देता है जहां नाम संपत्ति "होमर फ्लिंस्टोन" है।
यदि यह SQL एक रिलेशनल डेटाबेस से पूछताछ कर रहा था, तो यह इस तरह दिख सकता है:
SELECT * FROM Person WHERE name = "Homer Flinstone";
हालाँकि, याद रखें, Neo4j अपने डेटा को रिलेशनल डेटाबेस मॉडल जैसी तालिकाओं में संग्रहीत नहीं करता है। यह सब नोड्स और रिश्तों में है। तो उपरोक्त साइफर क्वेरी नोड्स, उनके लेबल और उनके गुणों को क्वेरी कर रही है। दूसरी ओर, SQL उदाहरण, तालिकाओं, पंक्तियों और स्तंभों को क्वेरी कर रहा है।
SQL को रिलेशनल . के साथ प्रयोग करने के लिए डिज़ाइन किया गया था डेटाबेस प्रबंधन प्रणाली (डीबीएमएस)। Neo4j एक NoSQL DBMS है, जिसमें यह रिलेशनल मॉडल का उपयोग नहीं करता है और यह SQL का उपयोग नहीं करता है।
साइफर को विशेष रूप से Neo4j डेटा मॉडल के साथ काम करने के लिए डिज़ाइन किया गया था, जो सभी नोड्स और एक दूसरे के साथ उनके संबंधों के बारे में है।
ASCII-Art Syntax
साइफर पैटर्न का प्रतिनिधित्व करने के लिए ASCII-Art का उपयोग करता है। पहली बार भाषा सीखते समय याद रखने वाली यह एक आसान बात है। यदि आप कुछ लिखना भूल जाते हैं, तो बस कल्पना करें कि ग्राफ़ कैसा दिखेगा और इससे मदद मिलनी चाहिए।
(a)-[:KNOWS]->(b)
याद रखने वाली मुख्य बातें:
- नोड्स को कोष्ठकों द्वारा दर्शाया जाता है, जो वृत्तों की तरह दिखते हैं। इस तरह:
(node)
- रिश्ते तीरों द्वारा दर्शाए जाते हैं। इस तरह:
->
- वर्ग कोष्ठक के बीच संबंध के बारे में जानकारी सम्मिलित की जा सकती है। इस तरह:
[:KNOWS]
डेटा को परिभाषित करना
साइफर के साथ काम करते समय याद रखने योग्य कुछ और बिंदु यहां दिए गए हैं:
- नोड्स में आमतौर पर लेबल होते हैं। उदाहरणों में "व्यक्ति", "उपयोगकर्ता", "अभिनेता", "कर्मचारी", "ग्राहक" शामिल हो सकते हैं।
- नोड्स में आमतौर पर गुण होते हैं। गुण नोड के बारे में अतिरिक्त जानकारी प्रदान करते हैं। उदाहरणों में "नाम", "आयु", "जन्म", आदि शामिल हो सकते हैं
- रिश्ते में गुण भी हो सकते हैं।
- रिश्तों का आमतौर पर एक प्रकार होता है (यह मूल रूप से एक नोड के लेबल की तरह होता है)। उदाहरणों में "KNOWS", "LIKES", "WORKS_FOR", "PURCHASED", आदि शामिल हो सकते हैं।
तो उपरोक्त उदाहरण को फिर से देख रहे हैं:
MATCH (p:Person { name:"Homer Flinstone" }) RETURN p
हम देख सकते हैं कि:
- नोड कोष्ठक से घिरा हुआ है
()
। Person
नोड का लेबल है।name
नोड की एक संपत्ति है।