Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Ngôn ngữ truy vấn Neo4j - Cypher

Neo4j có ngôn ngữ truy vấn riêng gọi là Cypher. Cypher sử dụng cú pháp tương tự như SQL (Ngôn ngữ truy vấn có cấu trúc).

Ví dụ

Đây là một ví dụ về câu lệnh Cypher:

MATCH (p:Person { name:"Homer Flinstone" })
RETURN p

Câu lệnh Cypher này trả về một nút "Người" trong đó thuộc tính tên là "Homer Flinstone".

Nếu đây là SQL truy vấn cơ sở dữ liệu quan hệ, thì nó có thể trông giống như sau:

SELECT * FROM Person
WHERE name = "Homer Flinstone";

Tuy nhiên, hãy nhớ rằng Neo4j không lưu trữ dữ liệu của nó trong các bảng như mô hình cơ sở dữ liệu quan hệ. Tất cả đều nằm trong các nút và mối quan hệ. Vì vậy, truy vấn Cypher ở trên là truy vấn các nút, nhãn và thuộc tính của chúng. Mặt khác, ví dụ SQL đang truy vấn bảng, hàng và cột.

SQL được thiết kế để sử dụng với quan hệ hệ quản trị cơ sở dữ liệu (DBMS). Neo4j là một DBMS NoSQL, trong đó nó không sử dụng mô hình quan hệ và không sử dụng SQL.

Cypher được thiết kế đặc biệt để làm việc với mô hình dữ liệu Neo4j, mô hình này là tất cả về các nút và mối quan hệ của chúng với nhau.

Cú pháp ASCII-Art

Cypher sử dụng ASCII-Art để biểu diễn các mẫu. Đây là một điều cần nhớ khi lần đầu tiên học ngôn ngữ. Nếu bạn quên cách viết nội dung nào đó, chỉ cần hình dung biểu đồ sẽ trông như thế nào và nó sẽ hữu ích.

(a)-[:KNOWS]->(b)

Những điều chính cần nhớ:

  • Các nút được biểu thị bằng dấu ngoặc đơn, trông giống như vòng tròn. Như thế này:(node)
  • Các mối quan hệ được thể hiện bằng các mũi tên. Như thế này:->
  • Thông tin về mối quan hệ có thể được chèn giữa các dấu ngoặc vuông. Như thế này:[:KNOWS]

Xác định dữ liệu

Dưới đây là một số điểm cần nhớ khi làm việc với Cypher:

  • Các nút thường có nhãn. Các ví dụ có thể bao gồm "Người", "Người dùng", "Người quản lý", "Nhân viên", "Khách hàng".
  • Các nút thường có các thuộc tính. Thuộc tính cung cấp thêm thông tin về nút. Ví dụ có thể bao gồm "Tên", "Tuổi", "Sinh", v.v.
  • Các mối quan hệ cũng có thể có các thuộc tính.
  • Mối quan hệ thường có một kiểu (về cơ bản đây giống như nhãn của nút). Các ví dụ có thể bao gồm "BIẾT", "LIKES", "WORKS_FOR", "ĐÃ MUA", v.v.

Vì vậy, hãy nhìn lại ví dụ trên:

MATCH (p:Person { name:"Homer Flinstone" })
RETURN p

Chúng ta có thể thấy rằng:

  • Nút được bao quanh bởi dấu ngoặc đơn () .
  • Person là nhãn của nút.
  • name là một thuộc tính của nút.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Truy vấn MySQL để lấy tên cột?

  2. PyInstaller, tệp đặc tả, Lỗi nhập khẩu:Không có mô-đun nào có tên 'blah'

  3. Đã vượt quá thời gian chờ của Fixing Lock; thử khởi động lại giao dịch cho một 'bảng Mysql bị kẹt?

  4. Cách làm tròn Dấu thời gian trong MySQL

  5. MySQL - Lấy số hàng khi chọn