关于neo4j初入门(1)
图形数据库也称为图形数据库管理系统或GDBMS。
Neo4j的官方网站:http://www.neo4j.org
Neo4j的优点
-
它很容易表示连接的数据
-
检索/遍历/导航更多的连接数据是非常容易和快速的
-
它非常容易地表示半结构化数据
-
Neo4j CQL查询语言命令是人性化的可读格式,非常容易学习
-
它使用简单而强大的数据模型
-
它不需要复杂的连接来检索连接的/相关的数据,因为它很容易检索它的相邻节点或关系细节没有连接或索引
关系应该是定向的
访问Neo4j通过使用http:// localhost:7474 /
CREATE命令语法
CREATE (<node-name>:<label-name>) 节点名称。节点标签名称
CREATE ( <node-name>:<label-name> { <Property1-name>:<Property1-Value> 定义将分配给创建节点的属性的名称、值 ........ <Propertyn-name>:<Propertyn-Value> } )
总结: 节点 标签 属性
MATCH命令语法:
- 从数据库获取有关节点,关系和属性的数据
MATCH ( <node-name>:<label-name> )
RETURN命令语法:
- 检索节点的某些属性、所有属性
- 检索节点和关联关系的某些属性、所有属性
RETURN <node-name>.<property1-name>, ........ <node-name>.<propertyn-name>
不能单独使用MATCH或RETURN命令,因此我们应该合并这两个命令
MATCH (dept: Dept) RETURN dept.deptno,dept.dname
dept是节点名称
这里Dept是一个节点标签名
deptno是dept节点的属性名称
dname是dept节点的属性名
CQL - CREATE+MATCH+RETURN命令
CREATE (e:Customer{id:"1001",name:"Abc",dob:"01/10/1982"})
CREATE (cc:CreditCard{id:"5001",number:"1234567890",cvv:"888",expiredate:"20/17"})
MATCH (e:Customer) RETURN e.id,e.name,e.dob
MATCH (cc:CreditCard) RETURN cc.id,cc.number,cc.cvv,cc.expiredate
关系基础
Neo4j关系被分为单向关系、双向关系
CREATE创建标签
Neo4j仅支持两个节点之间的单个关系类型。
CREATE (google1:GooglePlusProfile)
CREATE (<node-name>:<label-name1>:<label-name2>.....:<label-namen>)多个标签到节点
例如CREATE (m:Movie:Cinema:Film:Picture)
单个标签到关系
CREATE (<node1-name>:<label1-name>)- [(<relationship-name>:<relationship-label-name>)] ->(<node2-name>:<label2-name>)
举例
CREATE (p1:Profile1)-[r1:LIKES]->(p2:Profile2)
这里p1和profile1是节点名称和节点标签名称“From Node”
p2和Profile2是“To Node”的节点名称和节点标签名称、r1是关系名称、LIKES是一个关系标签名称
WHERE子句
过滤MATCH查询的结果。
WHERE <condition>
WHERE <condition> <boolean-operator> <condition>
<condition>语法:
<property-name> <comparison-operator> <value>
布尔运算符
and or not xor
比较运算符
= > < >= <= <>
MATCH (emp:Employee) WHERE emp.name = 'Abc' OR emp.name = 'Xyz' RETURN emp
使用WHERE子句创建关系
MATCH (<node1-label-name>:<node1-name>),(<node2-label-name>:<node2-name>) WHERE <condition> CREATE (<node1-label-name>)-[<relationship-label-name>:<relationship-name> {<relationship-properties>}]->(<node2-label-name>)
例子
MATCH (cust:Customer),(cc:CreditCard) WHERE cust.id = "1001" AND cc.id= "5001" CREATE (cust)-[r:DO_SHOPPING_WITH{shopdate:"12/12/2014",price:55000}]->(cc) RETURN r
风雨兼程,前程可待!