国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - 數據庫技術 - 還有和Redis一樣好用的NoSQL

還有和Redis一樣好用的NoSQL

2022-01-04 21:50Java極客技術鴨血粉絲Tang 數據庫技術

Neo4j是一個世界領先的開源的基于圖的數據庫。它是使用Java語言完全開發的。那么什么是圖數據庫呢?圖數據庫是以圖結構的形式存儲數據的數據庫。

還有和Redis一樣好用的NoSQL

實際上為了更好的描述實體之間的關系,我們要是再繼續使用Redis的話,是不是感覺實體之間的關系不夠那么的明顯,雖然也是屬于NoSQL的一種,但是相對來說,Redis,表現實體之間的關系就沒有那么清晰了,為了更好的描述實體之間的關系,就會使用圖形數據庫來進行了,那么今天阿粉介紹的,就是一個圖形化的數據可,Neo4J。

什么是Neo4J

Neo4j是一個世界領先的開源的基于圖的數據庫。它是使用Java語言完全開發的。那么什么是圖數據庫呢?圖數據庫是以圖結構的形式存儲數據的數據庫。它以節點,關系和屬性的形式存儲應用程序的數據。正如RDBMS以表的“行,列”的形式存儲數據,GDBMS以圖的形式存儲數據。

RDBMS與圖數據庫的區別

1.Tables 表Graphs 圖表

2.Rows 行Nodes 節點

3.Columns and Data 列和數據 Properties and its values屬性及其值

4.Constraints 約束Relationships 關系

5.Joins 加入Traversal 遍歷

說完了圖形數據庫,我們就來看看這個 Neo4J 數據庫吧

Neo4J 數據庫的安裝

neo4j是用Java語言編寫的圖形數據庫,運行時需要啟動JVM進程,因此,需安裝JAVA SE的JDK。關于 Java 怎么安裝,我就不用再多廢話了吧,到時候別忘了檢測一下 Java 的版本就好了,java -version

接下來我們就是要進行一個安裝了,我們先去官網,下載社區版,企業版要收費的,注意哈。

官網地址

下載完成,直接開始安裝,傻瓜式操作即可。

Neo4j應用程序有如下主要的目錄結構:

  • bin目錄:用于存儲Neo4j的可執行程序
  • conf目錄:用于控制Neo4j啟動的配置文件
  • data目錄:用于存儲核心數據庫文件
  • plugins目錄:用于存儲Neo4j的插件

注意,如果你使用的是Zip的壓縮包來進行的使用的話,那么你就需要注意一些地方,比如你如果是用 Zip 的包解壓之后,并且想要通過 bat 的命令啟動,直接在目錄下進行 cmd ,然后 neo4j.bat ,這時候可能會出現一個問題,就是版本可能會出現問題,你如果下載使用的是最新版的 Neo4J ,那么就可能會讓你使用 JDK 11 ,而阿粉就是踩過了這個大坑之后,才發現,bat 閃退的原因。

  1. 警告: ERROR! Neo4j cannot be started using java version 1.8.0_181 
  2. 警告: * Please use Oracle(R) Java(TM) 11, OpenJDK(TM) 11 to run Neo4j Server. 
  3. * Please see https://neo4j.com/docs/ for Neo4j installation instructions. 
  4. Invoke-Neo4j : This instance of Java is not supported 
  5. 所在位置 E:\softFile\neo4j-community-4.4.2\bin\neo4j.ps1:21 字符: 7 
  6. + Exit (Invoke-Neo4j -Verbose:$Arguments.Verbose -CommandArgs $Argument ... 
  7. +       ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
  8.     + CategoryInfo          : NotSpecified: (:) [Write-Error], WriteErrorException 
  9.     + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Invoke-Neo4j 

這樣就是說明我們的 JDk 的版本對應的和 Neo4J 需要的 JDK 是不匹配的,我們就需要換一下我們的 JDK 了。把他換成 JDK 11 就好了,再次啟動。

  1. neo4j.bat console 
  1. E:\softFile\neo4j-community-4.4.2\bin>neo4j.bat console 
  2. Directories in use: 
  3. home:         E:\softFile\neo4j-community-4.4.2 
  4. config:       E:\softFile\neo4j-community-4.4.2\conf 
  5. logs:         E:\softFile\neo4j-community-4.4.2\logs 
  6. plugins:      E:\softFile\neo4j-community-4.4.2\plugins 
  7. import:       E:\softFile\neo4j-community-4.4.2\import 
  8. data:         E:\softFile\neo4j-community-4.4.2\data 
  9. certificates: E:\softFile\neo4j-community-4.4.2\certificates 
  10. licenses:     E:\softFile\neo4j-community-4.4.2\licenses 
  11. run:          E:\softFile\neo4j-community-4.4.2\run 
  12. Starting Neo4j. 
  13. 2021-12-19 12:37:08.121+0000 INFO  Starting... 
  14. 2021-12-19 12:37:09.665+0000 INFO  This instance is ServerId{25e1fcb1} (25e1fcb1-702c-4b58-bcdc-3564df95b2a1) 
  15. 2021-12-19 12:37:11.957+0000 INFO  ======== Neo4j 4.4.2 ======== 
  16. 2021-12-19 12:37:14.556+0000 INFO  Initializing system graph model for component 'security-users' with version -1 and status UNINITIALIZED 
  17. 2021-12-19 12:37:14.567+0000 INFO  Setting up initial user from defaults: neo4j 
  18. 2021-12-19 12:37:14.568+0000 INFO  Creating new user 'neo4j' (passwordChangeRequired=true, suspended=false
  19. 2021-12-19 12:37:14.589+0000 INFO  Setting version for 'security-users' to 3 
  20. 2021-12-19 12:37:14.594+0000 INFO  After initialization of system graph model component 'security-users' have version 3 and status CURRENT 
  21. 2021-12-19 12:37:14.601+0000 INFO  Performing postInitialization step for component 'security-users' with version 3 and status CURRENT 
  22. 2021-12-19 12:37:15.979+0000 INFO  Bolt enabled on 127.0.0.1:7687. 
  23. 2021-12-19 12:37:17.200+0000 INFO  Remote interface available at http://localhost:7474/ 
  24. 2021-12-19 12:37:17.206+0000 INFO  id: 1ED17593750B5E6E3046A68E5254B92B64EE0B6CECA021D540D1B93BDFE67164 
  25. 2021-12-19 12:37:17.206+0000 INFO  name: system 
  26. 2021-12-19 12:37:17.207+0000 INFO  creationDate: 2021-12-19T12:37:12.956Z 
  27. 2021-12-19 12:37:17.207+0000 INFO  Started. 

這時候,我們就直接訪問 localhost:7474 的端口,直接就能看到如下的畫面, 1.jpg

剛進入的時候可能需要大家輸入帳號密碼,默認的帳號密碼就是,neo4j 修改成你想要的就行了。

這樣登錄進去我們就能開始正式學習 Neo4J 的所有內容了。

Neo4J 的語法教學

Neo4j - CQL語法

  • 它是Neo4j圖形數據庫的查詢語言。
  • 它是一種聲明性模式匹配語言
  • 它遵循SQL語法。
  • 它的語法是非常簡單且人性化、可讀的格式。

我們在講語法之前首先我們先得看看 Neo4J 的構建模塊,不然之后的查詢都是無意義的。

Neo4j圖數據庫主要有以下構建塊 -

  • 節點
  • 屬性
  • 關系
  • 標簽
  • 數據瀏覽器

節點是圖表的基本單位。它包含具有鍵值對的屬性,如下所示

屬性是用于描述圖節點和關系的鍵值對

關系是圖形數據庫的另一個主要構建塊。它連接兩個節點,如下所示。

Label將一個公共名稱與一組節點或關系相關聯。節點或關系可以包含一個或多個標簽。我們可以為現有節點或關系創建新標簽。我們可以從現有節點或關系中刪除現有標簽。

Neo4j數據瀏覽器 一旦我們安裝Neo4j,我們可以訪問Neo4j數據瀏覽器使用以下URL

http:// localhost:7474 / browser /

CQL 語法

CREATE 語法

  1. CREATE (<node-name>:<label-name>) 

它是我們要創建的節點名稱。

它是一個節點標簽名稱

我們可以創建一個節點,然后給他安排上一個標簽

  1. CREATE (emp:Employee) 

當我們看到

  1. Added 1 label, created 1 node, completed after 74 ms. 

這就創建成功了,

那么怎么查看呢?

MATCH語法

  1. MATCH (<node-name>:<label-name>) return xxx 

是這個樣子的

  1. MATCH (emp:Employee) return emp 
  1. ╒═════╕ 
  2. "emp"│ 
  3. ╞═════╡ 
  4. │{}   │ 
  5. └─────┘ 

但是看到里面竟然沒有東西,就相當于是一個空的對象,那是不是就應該給里面放入屬性的操作呢?沒錯,肯定有

CREATE (emp:Employee{ id : 1001 ,name :"lucy", age : 10})

Added 1 label, created 1 node, set 3 properties, completed after 163 ms. 創建成功。

我們再次查看就能看到

  1. ╒══════════════════════════════════╕ 
  2. "emp"                             │ 
  3. ╞══════════════════════════════════╡ 
  4. │{}                                │ 
  5. ├──────────────────────────────────┤ 
  6. │{"name":"lucy","id":1001,"age":10}│ 
  7. └──────────────────────────────────┘ 

如果我們想只要其中的一些對象的屬性,而不是全部屬性,那應該怎么操作呢?

RETURN語法

RETURN 可以返回的是一個對象,也可以是對象中的屬性,比如:

  1. MATCH (emp:Employee) return emp.name 

結果就是下面這個樣子的,大家看一下,是不是感覺還是挺好用的。

  1. ╒══════════╕ 
  2. "emp.name"│ 
  3. ╞══════════╡ 
  4. "Lokesh"  │ 
  5. ├──────────┤ 
  6. "jack"    │ 
  7. ├──────────┤ 
  8. "luxun"   │ 
  9. ├──────────┤ 
  10. "lucy"    │ 
  11. └──────────┘ 

** WHERE語法**

  1. WHERE <condition> 

為什么在前面的位置阿粉說,CQL 是和 SQL 類型的,這完全是因為很多東西和 SQL 是類似的。

  1. MATCH (emp:Employee) where emp.name = 'jack' return emp 

結果如下:

  1. ╒════════════════════════════════════════════════╕ 
  2. "emp"                                           │ 
  3. ╞════════════════════════════════════════════════╡ 
  4. │{"name":"jack","id":125,"deptno":10,"sal":35800}│ 
  5. └────────────────────────────────────────────────┘ 

相同的還有

布爾運算符 描述
AND
OR 或者
NOT
XOR 異或
比較運算符 描述
= “等于”運算符
<> “不等于”運算符
< “小于”運算符
> “大于”運算符
<= “小于或等于”運算符。
>= “大于或等于”運算符。

DELETE語法

刪除語法必然是有的,因為有創建,肯定有刪除。

  1. DELETE <node-name-list> 

但是這個命令也不是單獨使用的哈,

  1. MATCH (e: Employee) DELETE e 

直接刪除成功。

基礎的東西講完了,阿粉就得說說這個比較重要的內容了,關系,

Neo4j 的關系

我們之前創建節點的時候,那叫一個簡單舒適加愉快,但是創建關系就比較復雜了,因為需要考慮如何匹配到有關系的兩個節點,以及關系本身的屬性如何設置。這里我們就簡單學一下如何建立節點之間的關系。

由于Neo4j CQL語法是以人類可讀的格式。Neo4j CQL也使用類似的箭頭標記來創建兩個節點之間的關系。

每個關系(→)包含兩個節點

在Neo4j中,兩個節點之間的關系是有方向性的。它們是單向或雙向的。

如果我們嘗試創建一個沒有任何方向的關系,那么就會報錯。

關系創建語法

  1. CREATE (<node1-details>)-[<relationship-details>]->(<node2-details>) 

我們這里直接使用創建新的節點來創建關系。

  1. CREATE (book:Book)-[contains:CONTAINS]->(bookStore:BOOKSTORE) 

提示創建成功

  1. Added 2 labels, created 2 nodes, created 1 relationship, completed after 199 ms. 

這里關系名稱是“CONTAINS”

關系標簽是“contains”。

  1. MATCH (book:Book)-[contains:CONTAINS]->(bookStore:BOOKSTORE) return contains 

這么看是看不出有啥關系的,但是,我們可以從另外的一個位置

還有和Redis一樣好用的NoSQL

這樣看下來,這個 Neo4J 簡單操作是不是就學會了,阿粉接下來的文章中講怎么使用 Java 來操作 Neo4J 數據庫。歡迎大家來觀看。

原文鏈接:https://mp.weixin.qq.com/s/VX3ERRZykfHg1GbIwqYEOg

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25 Weibo Article 26 Weibo Article 27 Weibo Article 28 Weibo Article 29 Weibo Article 30 Weibo Article 31 Weibo Article 32 Weibo Article 33 Weibo Article 34 Weibo Article 35 Weibo Article 36 Weibo Article 37 Weibo Article 38 Weibo Article 39 Weibo Article 40
主站蜘蛛池模板: 日日嗨av一区二区三区四区 | 日韩国产一区 | 亚洲国产精品一区二区三区 | 亚洲国产精品久久久久 | 国产黄色网址在线观看 | 国产综合av | 国产精品影视在线观看 | 日韩免费 | 成人精品久久久 | 久久精品国产亚洲一区二区三区 | 日韩免费视频 | 亚洲天堂一区 | 亚洲性视频 | 天天射影院 | 亚洲福利一区二区 | 男女做爰猛烈叫床无遮挡 | 日本不卡免费新一二三区 | 国产福利91精品一区二区 | www久久九| 亚洲一区中文字幕 | 日韩有码一区 | 特黄特色大片免费视频观看 | 一级国产| 精品一区二区久久久久黄大片 | 亚洲成人高清 | 亚洲欧美视频一区 | 日本天堂在线 | 亚洲天堂一区 | 亚洲免费在线观看 | 欧美一区二区三区在线观看视频 | 亚洲黄色免费 | 日韩视频在线观看一区 | 色网站在线观看 | 色婷婷一区二区三区 | 国产午夜精品一区二区三区视频 | 欧美一级二级视频 | 中文在线一区二区 | 国产成人一级毛片 | 激情综合久久 | av免费资源 | 日本久久久久久 |