sql >> データベース >  >> RDS >> Mysql

Neo4j-Cypherを使用してMATCHでデータを選択する

    サイファーのMATCH ステートメントを使用すると、特定の基準に一致するデータを見つけることができます。 MATCHを使用できます データを返すか、データに対して他の操作を実行します。

    MATCH ステートメントは特定の基準に一致するために使用されますが、実際には戻り値ではありません。 データ。 MATCHからデータを返すには ステートメント、まだRETURNを使用する必要があります 条項。

    ノードを取得する

    MATCHを使用する簡単な例を次に示します。 ノードを取得するステートメント:

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

    WHERE 句はSQLのWHEREと同じように機能します 追加の基準を提供することで結果を絞り込むことができるという点で、条項。

    ただし、WHEREを使用しなくても同じ結果を得ることができます 句。ノードの作成に使用したのと同じ表記を指定して、ノードを検索することもできます。

    次のコードは、上記のステートメントと同じ結果を提供します。

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

    上記のクエリのいずれかを実行すると、次のノードが表示されます。

    ノードをクリックすると、3つのセクションに分割された外側の円が展開されます。それぞれが異なるオプションを表します。

    下部のセクションをクリックすると、ノードの関係が展開されます:

    関係

    MATCHとの関係をトラバースすることもできます 声明。実際、これはNeo4jが本当に得意なことの1つです。

    たとえば、 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. SQLServerのFloatとNumeric/Decimalの違いは何ですか-SQLServer/T-SQLチュートリアルパート33

    2. 「アプリケーション「SQLDeveloper.app」を開くことができません。」を修正しました。

    3. 数字を単語に変換する方法-ORACLE

    4. 給与表から3番目またはnᵗʰの最大給与を見つける方法は?