Prev |  | Next

## 15.1. Start

SQL starts with the result you want — we `SELECT` what we want and then declare how to source it. In Cypher, the `START` clause is quite a different concept which specifies starting points in the graph from which the query will execute.

From a SQL point of view, the identifiers in `START` are like table names that point to a set of nodes or relationships. The set can be listed literally, come via parameters, or as I show in the following example, be defined by an index look-up.

So in fact rather than being `SELECT`-like, the `START` clause is somewhere between the `FROM` and the `WHERE` clause in SQL.

SQL Query.

    SELECT *
    FROM "Person"
    WHERE name = 'Anakin'

NAME | ID | AGE | HAIR
--- | --- | --- | ---
1 rows
`Anakin` | `1` | `20` | `blonde`

Cypher Query.

    START person=node:Person(name = 'Anakin')
    RETURN person

person
1 row
`Node[0]{name:"Anakin",id:1,age:20,hair:"blonde"}`

Cypher allows multiple starting points. This should not be strange from a SQL perspective — every table in the `FROM` clause is another starting point.

Copyright © 2014 Neo Technology

Prev | Up | Next
| Home |