数据库Neo4j数据库

Neo4j数据库学习四:where子句

2018-09-13  本文已影响1人  陆_志东

语法:

简单的语法
WHERE <condition>

使用布尔运算符连接多个条件
WHERE <condition> <boolean-operator> <condition>

 <condition> 书写格式
<property-name> <comparison-operator> <value>

<boolean-operator>:布尔运算符
<comparison-operator> :比较运算符

布尔运算符

- and 与
- or 或
- not 非
- xor 异或

比较运算符

- = 等于
- <> 不等
- < 小于
- > 大于
- <= 大于等于
- >= 小于等于

示例:

match(e:Customer) return e.name,e.id,e.dob
╒════════╤══════╤════════════╕
│"e.name"│"e.id"│"e.dob"     │
╞════════╪══════╪════════════╡
│"Abc"   │"1001"│"01/10/2015"│
├────────┼──────┼────────────┤
│null    │null  │null        │
└────────┴──────┴────────────┘

match(e:Customer) where not e.name is null return e.name,e.id,e.dob

╒════════╤══════╤════════════╕
│"e.name"│"e.id"│"e.dob"     │
╞════════╪══════╪════════════╡
│"Abc"   │"1001"│"01/10/2015"│
└────────┴──────┴────────────┘

match(e:Customer) where  e.name is not null return e.name,e.id,e.dob
╒════════╤══════╤════════════╕
│"e.name"│"e.id"│"e.dob"     │
╞════════╪══════╪════════════╡
│"Abc"   │"1001"│"01/10/2015"│
└────────┴──────┴────────────┘

create (e:Customer {name:"nick",id:"1",dob:"06/12/2018"})
注意创建节点的时候,不能把属性{} 写到() 外面,属性key也不能带引号

match(e:Customer) where  e.name is not null return e.name,e.id,e.dob
╒════════╤══════╤════════════╕
│"e.name"│"e.id"│"e.dob"     │
╞════════╪══════╪════════════╡
│"Abc"   │"1001"│"01/10/2015"│
├────────┼──────┼────────────┤
│"nick"  │"1"   │"06/12/2018"│
└────────┴──────┴────────────┘

match(e:Customer) where  e.name <> "Abc" return e.name,e.id,e.dob
╒════════╤══════╤════════════╕
│"e.name"│"e.id"│"e.dob"     │
╞════════╪══════╪════════════╡
│"nick"  │"1"   │"06/12/2018"│
└────────┴──────┴────────────┘

注意:null不能用比较运算符判断,应该用is, 还有上面可以对判断的结果取反not,也可以is not null,但是不能not is null

结合where 子句创建关系

语法:

MATCH (<node1-name>:<node1-label-name>),(<node2-name>:<node2-label-name>) 
WHERE <condition>
CREATE (<node1-name>)-[<relationship-label-name>:<relationship-name>
       {<relationship-properties>}]-><node2-name>) 

示例

match(e:Customer),(cc:CreditCard) where e.name="nick" and cc.id = "5001" return e,cc
╒═══════════════════════════════════════════╤════════════════════════════════════════════════════════════════════╕
│"e"                                        │"cc"                                                                │
╞═══════════════════════════════════════════╪════════════════════════════════════════════════════════════════════╡
│{"name":"nick","dob":"06/12/2018","id":"1"}│{"number":"1234567890","cvv":"888","expiredate":"20/17","id":"5001"}│
└───────────────────────────────────────────┴────────────────────────────────────────────────────────────────────┘

match(e:Customer),(cc:CreditCard) 
where e.name="nick" and cc.id = "5001" 
create (e)-[shop:ShoppingWithCard {date:"2018-09-13",money:"1000"}]->(cc)

上一篇下一篇

猜你喜欢

热点阅读