neo4j basic cyper

1

데이터베이스

목록 보기
1/1

neo4j의 기본 쿼리를 작성하는 법을 간단한 유튜브 영상을 보면서 정리한다.
참고 영상

프로그램 설치

neo4j Desktop

실습은 데스크탑 앱에서 진행을 했다. 다운로드를 하게 되면 activation key를 부여하는데 설치 이후 접속할 때 필요하니 별도로 기록을 해두자

쿼리 실행

CREATE node

CREATE (n:Person {name:"BRAD}) RETURN n 을 입력하면 노드를 만들 수 있다. 뒤에 RETURN n 을 입력하지 않으면 아래와 같이 실행이 잘되었다는 결과만 보이게 된다.



동일하게 다른 노드를 추가해준다.


MATCH (n) RETURN n을 해주면 현재 만들어진 자료를 모두 볼 수 있다. 두개의 노드를 확인 가능하다.


다른 성격의 노드를 추가할때는 n:뒤에 다른 이름을 부여하면 된다.

여러개의 노드를 추가해 준다.

특정 이름의 노드만 보고 싶다면 MATCH (n:Movie) RETURN n으로 MATCH 구문에서 특정 이름을 지정하면 된다.


특성(Property) 지정


MATCH (n:Person {name:"Jill}) SET n.age = 34에서 SET이 특성을 지정해주는 역할을 한다.

특성에 age = 34가 반영된 것을 확인 가능

변경을 하고 싶은 경우에도 동일한 구문을 입력하면 된다.

특성에 age = 35로 변경된 것을 확인 가능

특성을 제거할 때는 MATCH (n:Person {name:"Jill}) REMOVE n.age를 진행하면 된다.


특성에 age가 제거된 것을 확인 가능


관계설정

관계설정을 할 때는 관계를 맺는 a 와 b를 지정을 해주고 MERGE를 실행하면 가능하다.

MATCH (a:person {name:"MIKE"}), (b:Person {name:"Jill"}) MERGE (a) - [r:MARRIED] ->(b)

MARRIED라는 관계가 설정된 것을 확인 가능


FRIENDS라는 관계를 추가로 설정하는데 [r:FRIENDS {since: "1998"}] 를 적어주면 관계에 대해서도 특성 설정이 가능하다.

관계에 대해서 특성이 설정된 것을 확인 가능


영화와 사람간의 관계를 FAVORITE으로 설정

노드와 노드간의 관계를 한 눈에 볼 수 있다.


특정 노드만 조회하기

MATCH (n:person) WHERE n.name= "MIKE" RETURN n을 통해서 특정 노드만 조회할 수 있다.

특정 데이터만 가져오고 싶다면 RETURN n.name을 지정해주면 된다.

OR을 이용해서 여러자료를 한 번에 가져올 수 있다.


관계가 있는 자료만 가져오기

MATCH (a:Person {name:"MIKE"}) - [:FRIENDS] -> (b:Person) RETURN a,b를 하면 이름이 MIKE인 노드와 FRIENDS관계를 가지는 데이터를 조회하는 것이다.


여기서 중요한 점은 관계는 방향성을 가진다는 것이다. 현재 화살표를 보면 MIKE는 BRAD와 친구지만 BRAD는 MELANIe와 친구가 아니라는 점을 알 수 있다(ㅠㅠ)

그래서 반대의 경우 MIKE가 친구를 당하는 경우(?)를 조회했을 때는 자료가 나오지 않는다.


노드의 삭제

현재관계가 설정된 노드를 삭제하려고 할 때는 에러가 발생한다. (Jill은 MIKE와 MARRIED관계)


이런 경우는 관계를 먼저 삭제를 해주고 나서 삭제를 진행해야 한다.

MARRIED관계가 삭제가 된 것을 확인 가능


그리고 나면 노드를 삭제가능하다.

JIll의 노드가 삭제된 것을 확인 가능


노드와 관계 한 번에 삭제

MATCH (n) OPTIONAL MATCH (n) -[r] -() DELETE n,r을 입력하면 노드와 관계들을 한 번에 삭제 가능

profile
기록을 통해 한 걸음씩 성장ing!

0개의 댓글