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

Neo4j - Chọn dữ liệu với MATCH bằng Cypher

MATCH của Cypher câu lệnh cho phép bạn tìm dữ liệu phù hợp với một tiêu chí nhất định. Bạn có thể sử dụng MATCH để trả về dữ liệu hoặc thực hiện một số thao tác khác trên đó.

MATCH câu lệnh được sử dụng để khớp với một tiêu chí nhất định, nhưng nó không thực sự return dữ liệu. Để trả về bất kỳ dữ liệu nào từ MATCH , chúng tôi vẫn cần sử dụng RETURN mệnh đề.

Truy xuất nút

Đây là một ví dụ đơn giản về việc sử dụng MATCH câu lệnh để truy xuất một nút:

MATCH (p:Person)
WHERE p.Name = "Devin Townsend"
RETURN p

WHERE mệnh đề hoạt động theo cách tương tự như WHERE của SQL , trong đó nó cho phép bạn thu hẹp kết quả bằng cách cung cấp các tiêu chí bổ sung.

Tuy nhiên, bạn có thể đạt được kết quả tương tự mà không cần sử dụng WHERE mệnh đề. Bạn cũng có thể tìm kiếm một nút bằng cách cung cấp cùng một ký hiệu mà bạn đã sử dụng để tạo nút.

Đoạn mã sau cung cấp kết quả tương tự như câu lệnh trên:

MATCH (p:Person {Name: "Devin Townsend"})
RETURN p

Chạy một trong các truy vấn trên sẽ dẫn đến nút sau được hiển thị:

Bạn có thể nhận thấy rằng việc nhấp vào một nút sẽ mở rộng một vòng tròn bên ngoài được tách thành ba phần - mỗi phần đại diện cho một tùy chọn khác nhau:

Nhấp vào phần dưới cùng sẽ mở rộng mối quan hệ của nút:

Mối quan hệ

Bạn cũng có thể duyệt qua các mối quan hệ với MATCH tuyên bố. Trên thực tế, đây là một trong những điều Neo4j thực sự giỏi.

Ví dụ:nếu chúng tôi muốn tìm nghệ sĩ nào đã phát hành album có tên Heavy as a Really Heavy Thing , chúng tôi có thể sử dụng truy vấn sau:

MATCH (a:Artist)-[:RELEASED]->(b:Album)
WHERE b.Name = "Heavy as a Really Heavy Thing" 
RETURN a

Thao tác này sẽ trả về nút sau:

Bạn có thể thấy rằng mẫu chúng tôi sử dụng trong MATCH tuyên bố gần như là tự giải thích. Nó khớp với tất cả các nghệ sĩ đã phát hành album có tên Heavy as a Really Heavy Thing .

Chúng tôi sử dụng các biến (tức là ab ) để chúng ta có thể tham khảo chúng sau này trong truy vấn. Chúng tôi không cung cấp bất kỳ biến nào cho mối quan hệ, vì sau này chúng tôi không cần tham chiếu đến mối quan hệ trong truy vấn.

Bạn cũng có thể nhận thấy rằng dòng đầu tiên sử dụng cùng một mẫu mà chúng tôi đã sử dụng để tạo mối quan hệ ngay từ đầu. Điều này làm nổi bật tính đơn giản của ngôn ngữ Cypher. Chúng ta có thể sử dụng các mẫu giống nhau trong các ngữ cảnh khác nhau (tức là để tạo dữ liệu và truy xuất dữ liệu).

Trả lại tất cả các nút

Bạn có thể trả về tất cả các nút trong cơ sở dữ liệu chỉ bằng cách bỏ qua bất kỳ chi tiết lọc nào. Do đó, truy vấn sau sẽ trả về tất cả các nút trong cơ sở dữ liệu:

MATCH (n) RETURN n

Điều này dẫn đến tất cả các nút của chúng tôi được trả về:

Bạn cũng có thể nhấp vào Hàng biểu tượng bên cạnh để hiển thị dữ liệu ở định dạng hàng:

Hãy cẩn thận khi trả về tất cả các nút. Thực hiện điều này trên một cơ sở dữ liệu lớn có thể có những tác động lớn về hiệu suất. Thông thường, bạn nên giới hạn kết quả để tránh các vấn đề ngoài ý muốn.

Xem "Giới hạn kết quả" bên dưới.

Giới hạn kết quả

Sử dụng LIMIT để giới hạn số lượng bản ghi trong đầu ra. Bạn nên sử dụng điều này khi bạn không chắc tập hợp kết quả sẽ lớn như thế nào.

Vì vậy, chúng tôi có thể chỉ cần thêm LIMIT 5 đối với câu lệnh trước đó để giới hạn đầu ra ở 5 bản ghi:

MATCH (n) RETURN n 
LIMIT 5

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kết nối với DB từ một Tiện ích mở rộng của Chrome?

  2. Hướng dẫn Sao lưu và Khôi phục (Xuất và Nhập) Cơ sở dữ liệu MySQL

  3. Cách hàm WEIGHT_STRING () hoạt động trong MySQL

  4. Chèn mảng vào cơ sở dữ liệu MySQL bằng PHP

  5. Những hàng nào được trả về khi sử dụng LIMIT với OFFSET trong MySQL?