FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
SQLonLinuxGettingStarted/graph/GraphDemo.sql at master · DC-AC/SQLonLinuxGettingStarted · GitHub
DC-AC
/
SQLonLinuxGettingStarted
Public
Notifications
You must be signed in to change notification settings
Fork
2
Star
2
Code
Issues
1
Pull requests
0
Projects
Security and quality
0
Insights
Additional navigation options
Code
Issues
Pull requests
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
SQLonLinuxGettingStarted
/
graph
/
GraphDemo.sql
Copy path
More file actions
More file actions
Latest commit
History
History
History
101 lines (85 loc) · 4.08 KB
Breadcrumbs
SQLonLinuxGettingStarted
/
graph
/
GraphDemo.sql
Copy path
File metadata and controls
101 lines (85 loc) · 4.08 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
--
Create a graph demo database
CREATE
DATABASE
graphdemo;
go
USE
graphdemo;
go
--
Create NODE tables
CREATE
TABLE
Person (
ID
INTEGER
PRIMARY
KEY
,
name
VARCHAR
(
100
)
)
AS
NODE;
CREATE
TABLE
Restaurant (
ID
INTEGER
NOT
NULL
,
name
VARCHAR
(
100
),
city
VARCHAR
(
100
)
)
AS
NODE;
CREATE
TABLE
City (
ID
INTEGER
PRIMARY
KEY
,
name
VARCHAR
(
100
),
stateName
VARCHAR
(
100
)
)
AS
NODE;
--
Create EDGE tables.
CREATE
TABLE
likes (rating
INTEGER
)
AS
EDGE;
CREATE
TABLE
friendOf
AS
EDGE;
CREATE
TABLE
livesIn
AS
EDGE;
CREATE
TABLE
locatedIn
AS
EDGE;
--
Insert data into node tables. Inserting into a node table is same as inserting into a regular table
INSERT
INTO
Person
VALUES
(
1
,
'
John'
);
INSERT
INTO
Person
VALUES
(
2
,
'
Mary'
);
INSERT
INTO
Person
VALUES
(
3
,
'
Alice'
);
INSERT
INTO
Person
VALUES
(
4
,
'
Jacob'
);
INSERT
INTO
Person
VALUES
(
5
,
'
Julie'
);
INSERT
INTO
Restaurant
VALUES
(
1
,
'
Taco Dell'
,
'
Bellevue'
);
INSERT
INTO
Restaurant
VALUES
(
2
,
'
Ginger and Spice'
,
'
Seattle'
);
INSERT
INTO
Restaurant
VALUES
(
3
,
'
Noodle Land'
,
'
Redmond'
);
INSERT
INTO
City
VALUES
(
1
,
'
Bellevue'
,
'
wa'
);
INSERT
INTO
City
VALUES
(
2
,
'
Seattle'
,
'
wa'
);
INSERT
INTO
City
VALUES
(
3
,
'
Redmond'
,
'
wa'
);
--
Insert into edge table. While inserting into an edge table,
--
you need to provide the $node_id from $from_id and $to_id columns.
INSERT
INTO
likes
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
1
),
(
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
1
),
9
);
INSERT
INTO
likes
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
2
),
(
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
2
),
9
);
INSERT
INTO
likes
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
3
),
(
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
3
),
9
);
INSERT
INTO
likes
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
4
),
(
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
3
),
9
);
INSERT
INTO
likes
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
5
),
(
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
3
),
9
);
INSERT
INTO
livesIn
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
1
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
1
));
INSERT
INTO
livesIn
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
2
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
2
));
INSERT
INTO
livesIn
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
3
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
3
));
INSERT
INTO
livesIn
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
4
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
3
));
INSERT
INTO
livesIn
VALUES
((
SELECT
$node_id
FROM
Person
WHERE
id
=
5
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
1
));
INSERT
INTO
locatedIn
VALUES
((
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
1
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
1
));
INSERT
INTO
locatedIn
VALUES
((
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
2
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
2
));
INSERT
INTO
locatedIn
VALUES
((
SELECT
$node_id
FROM
Restaurant
WHERE
id
=
3
),
(
SELECT
$node_id
FROM
City
WHERE
id
=
3
));
--
Insert data into the friendof edge.
INSERT
INTO
friendof
VALUES
((
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
1
), (
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
2
));
INSERT
INTO
friendof
VALUES
((
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
2
), (
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
3
));
INSERT
INTO
friendof
VALUES
((
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
3
), (
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
1
));
INSERT
INTO
friendof
VALUES
((
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
4
), (
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
2
));
INSERT
INTO
friendof
VALUES
((
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
5
), (
SELECT
$NODE_ID
FROM
person
WHERE
ID
=
4
));
--
Find Restaurants that John likes
SELECT
Restaurant
.
name
FROM
Person, likes, Restaurant
WHERE
MATCH (Person
-
(likes)
-
>
Restaurant)
AND
Person
.
name
=
'
John'
;
--
Find Restaurants that John's friends like
SELECT
Restaurant
.
name
FROM
Person person1, Person person2, likes, friendOf, Restaurant
WHERE
MATCH(person1
-
(friendOf)
-
>
person2
-
(likes)
-
>
Restaurant)
AND
person1
.
name
=
'
John'
;
--
Find people who like a restaurant in the same city they live in
SELECT
Person
.
name
FROM
Person, likes, Restaurant, livesIn, City, locatedIn
WHERE
MATCH (Person
-
(likes)
-
>
Restaurant
-
(locatedIn)
-
>
City
AND
Person
-
(livesIn)
-
>
City);
Back
|
FazBrowse Home
|
New Git URL