Neo4j memiliki bahasa query sendiri yang disebut Cypher. Cypher menggunakan sintaks yang mirip dengan SQL (Structured Query Language).
Contoh
Berikut ini contoh pernyataan Cypher:
MATCH (p:Person { name:"Homer Flinstone" }) RETURN p
Pernyataan Cypher ini mengembalikan simpul "Orang" dengan properti nama "Homer Flinstone".
Jika ini adalah query SQL ke database relasional, mungkin akan terlihat seperti ini:
SELECT * FROM Person WHERE name = "Homer Flinstone";
Namun, ingat, Neo4j tidak menyimpan datanya dalam tabel seperti model database relasional. Semuanya ada dalam simpul dan hubungan. Jadi kueri Cypher di atas adalah kueri node, labelnya, dan propertinya. Contoh SQL di sisi lain, adalah query tabel, baris, dan kolom.
SQL dirancang untuk digunakan dengan relasional sistem manajemen basis data (DBMS). Neo4j adalah DBMS NoSQL, karena tidak menggunakan model relasional dan tidak menggunakan SQL.
Cypher dirancang khusus untuk bekerja dengan model data Neo4j, yang semuanya tentang node dan hubungannya satu sama lain.
Sintaks Seni ASCII
Cypher menggunakan ASCII-Art untuk merepresentasikan pola. Ini adalah hal yang berguna untuk diingat ketika pertama kali belajar bahasa. Jika Anda lupa cara menulis sesuatu, cukup visualisasikan bagaimana grafik akan terlihat dan itu akan membantu.
(a)-[:KNOWS]->(b)
Hal utama yang perlu diingat:
- Node diwakili oleh tanda kurung, yang terlihat seperti lingkaran. Seperti ini:
(node)
- Hubungan dilambangkan dengan panah. Seperti ini:
->
- Informasi tentang suatu hubungan dapat disisipkan di antara tanda kurung siku. Seperti ini:
[:KNOWS]
Mendefinisikan Data
Berikut beberapa poin yang perlu diingat saat bekerja dengan Cypher:
- Node biasanya memiliki label. Contohnya dapat mencakup "Orang", "Pengguna", "Aktor", "Karyawan", "Pelanggan".
- Node biasanya memiliki properti. Properties memberikan informasi tambahan tentang node. Contohnya dapat mencakup "Nama", "Usia", "Lahir", dll
- Hubungan juga dapat memiliki sifat.
- Hubungan biasanya memiliki tipe (ini pada dasarnya seperti label simpul). Contohnya dapat mencakup "TAHU", "LIKES", "WORKS_FOR", "PURCHASED", dll.
Jadi perhatikan lagi contoh di atas:
MATCH (p:Person { name:"Homer Flinstone" }) RETURN p
Kita dapat melihat bahwa:
- Node dikelilingi oleh tanda kurung
()
. Person
adalah label simpul.name
adalah properti dari simpul.