Mysql
 sql >> база данни >  >> RDS >> Mysql

Neo4j - Избиране на данни с MATCH с помощта на Cypher

MATCH на Cypher изявлението ви позволява да намерите данни, които отговарят на даден критерий. Можете да използвате MATCH за връщане на данните или за извършване на някаква друга операция върху тях.

MATCH изразът се използва, за да съответства на даден критерий, но всъщност не връща информацията. За да върнете всякакви данни от MATCH оператор, ние все още трябва да използваме RETURN клауза.

Извличане на възел

Ето един прост пример за използване на MATCH оператор за извличане на възел:

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

WHERE Клаузата работи по същия начин като WHERE на SQL клауза, тъй като ви позволява да стесните резултатите чрез предоставяне на допълнителни критерии.

Въпреки това, можете да постигнете същия резултат, без да използвате WHERE клауза. Можете също да търсите възел, като предоставите същата нотация, която сте използвали за създаването на възела.

Следният код предоставя същите резултати като горния израз:

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

Изпълнението на някоя от горните заявки ще доведе до показване на следния възел:

Може да сте забелязали, че щракването върху възел разширява външен кръг, разделен на три секции – всяка представлява различна опция:

Щракването върху долната секция ще разшири връзките на възела:

Взаимоотношения

Можете също да преминете релации с MATCH изявление. Всъщност това е едно от нещата, в които Neo4j е наистина добър.

Например, ако искаме да разберем кой изпълнител е издал албума, наречен Heavy as a Really Heavy Thing , можем да използваме следната заявка:

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

Това ще върне следния възел:

Можете да видите, че моделът, който използваме в MATCH твърдението е почти самообяснимо. Съвпада с всички изпълнители, издали албум с име Heavy as a Really Heavy Thing .

Използваме променливи (т.е. a и b ), за да можем да се позоваваме на тях по-късно в заявката. Не предоставихме никакви променливи за връзката, тъй като не беше необходимо да се позоваваме на връзката по-късно в заявката.

Може също да забележите, че първият ред използва същия модел, който използвахме за създаване на връзката на първо място. Това подчертава простотата на езика Cypher. Можем да използваме едни и същи модели в различни контексти (т.е. за създаване на данни и за извличане на данни).

Връщане на всички възли

Можете да върнете всички възли в базата данни, просто като пропуснете всички подробности за филтриране. Следователно следната заявка ще върне всички възли в базата данни:

MATCH (n) RETURN n

Това води до връщането на всички наши възли:

Можете също да щракнете върху Редове икона отстрани за показване на данните във формат на ред:

Бъдете внимателни, когато връщате всички възли. Правенето на това в голяма база данни може да има сериозни последици за производителността. Обикновено се препоръчва да ограничите резултатите, за да избегнете непредвидени проблеми.

Вижте „Ограничаване на резултатите“ по-долу.

Ограничете резултатите

Използвайте LIMIT за да ограничите броя на записите в изхода. Добра идея е да използвате това, когато не сте сигурни колко голям ще бъде наборът от резултати.

Така че можем просто да добавим LIMIT 5 към предишния оператор, за да ограничите изхода до 5 записа:

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. MySQL LIMIT клауза еквивалентна за SQL SERVER

  2. Как да промените колона и да промените стойността по подразбиране?

  3. MySQL - принудително да не се използва кеш за тестване на скоростта на заявката

  4. автоматично увеличение на първичното оставяне на пропуски в броенето

  5. Намерете и заменете цялата база данни на mysql