티스토리 뷰
select
match (v1:person) return v1;
match (v1:person)-[e1:likes]->(v2:person) return v1, e1, v2;
create
create (:person{name:'Edward'})
match (v1:person), (v2:person) where v1.name = 'Edward' and v2.name='jon2' create (v1)-[e1:likes{type:'gae'}]->(v2);
modify
match (e:person) where e.name='jon5' set e.name='jon6', e.age=60;
match (v1:person)-[e1:likes]->(v2:person) where v1.name = 'Edward' and v2.name='jon2' set e1.type='super gae';
delete
match (e:person) where e.name='jon5' delete e;
match (v1:person)-[e1:likes]->(v2:person) where v1.name = 'Edward' and v2.name='jon2' delete e1;
hybrid
select count(*)
from (
match (a:c_system) return a.properties, 123
) a;
query express
select audit_id + 1 as audit_id from audits;
select 42 as audit_id from audits;
select audit_id || ', ' || created_instant as created_instant from audits;
select concat(audit_id, created_instant) as created_instant from audits;
select concat(audit_id, '-', created_instant) as created_instant from audits;
create fdw
CREATE EXTENSION file_fdw;
CREATE SERVER import_server FOREIGN DATA WRAPPER file_fdw;
create foreign table ratings
(
id int4,
document varchar(1000),
label varchar(1000)
)
SERVER import_server
options
(
FORMAT 'csv',
HEADER 'true',
DELIMITER E'\t',
FILENAME '/home/jhkim/dev/research/TM/data/review/nsmc/ratings.txt'
);
create label
CREATE vlabel c_system;
CREATE vlabel c_system disable index;
load function
LOAD FROM public.test_group AS t CREATE (a:c_system=to_jsonb(t)) ;
drop labael
drop vlabel c_system cascade;
print timing
\timing
inherits
create vlabel person;
create elabel knows;
CREATE (:person {name: 'Tom'})-[:knows]->(:person {name: 'Summer'});
CREATE (:person {name: 'Pat'})-[:knows]->(:person {name: 'Nikki'});
CREATE (:person {name: 'Olive'})-[:knows]->(:person {name: 'Todd'});
create vlabel gs_person inherits (person);
create elabel gs_knows inherits (knows);
match (a:gs_person)-[r:gs_knows]->(b:gs_person) return *;
match (a:person)-[r:knows]->(b:person) return *;
match (a:person)-[r:knows]->(b:person)
where a.name = 'Tom_son'
with a
return a;
CREATE (:gs_person {name: 'Tom_son'})-[:gs_knows]->(:gs_person {name: 'Summer_son'});
CREATE (:gs_person {name: 'Pat_son'})-[:gs_knows]->(:gs_person {name: 'Nikki_son'});
CREATE (:gs_person {name: 'Olive_son'})-[:gs_knows]->(:gs_person {name: 'Todd_son'});
match (a:gs_person)-[r:gs_knows]->(b:gs_person) return *;
create vlabel fs_person;
create elabel fs_knows;
CREATE (:fs_person {name: 'Tom_friend'})-[:fs_knows]->(:fs_person {name: 'Summer_friend'});
CREATE (:fs_person {name: 'Pat_friend'})-[:fs_knows]->(:fs_person {name: 'Nikki_friend'});
CREATE (:fs_person {name: 'Olive_friend'})-[:fs_knows]->(:fs_person {name: 'Todd_friend'});
alter vlabel fs_person inherit person;
alter elabel fs_knows inherit knows;
match (a:person)-[r:knows]->(b:person) return *;