關係型資料庫查詢語言 SQL 和圖資料庫查詢語言 nGQL 對比
阿新 • • 發佈:2020-07-23
摘要:這篇文章將介紹圖資料庫 Nebula Graph 的查詢語言 nGQL 和 SQL 的區別。
> 本文首發於 Nebula Graph 官方部落格:https://nebula-graph.com.cn/posts/sql-vs-ngql-comparison/
![sql-vs-ngql](https://www-cdn.nebula-graph.com.cn/nebula-blog/sql-vs-ngql.png)
雖然本文主要介紹 nGQL 和 SQL 的區別,但是我們不會深入探討這兩種語言,而是將這兩種語言做對比,以幫助你從 SQL 過渡到 nGQL。
SQL (Structured Query Language) 是具有資料操縱和資料定義等多種功能的資料庫語言,這種語言是一種[特定目的程式語言](https://zh.wikipedia.org/wiki/%E7%89%B9%E5%AE%9A%E7%9B%AE%E7%9A%84%E7%A8%8B%E5%BC%8F%E8%AF%AD%E8%A8%80),用於管理[關係資料庫管理系統](https://zh.wikipedia.org/wiki/%E5%85%B3%E7%B3%BB%E6%95%B0%E6%8D%AE%E5%BA%93%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F)(RDBMS),或在[關係流資料管理系統](https://zh.wikipedia.org/wiki/%E5%85%B3%E7%B3%BB%E6%B5%81%E6%95%B0%E6%8D%AE%E7%AE%A1%E7%90%86%E7%B3%BB%E7%BB%9F)(RDSMS)中進行流處理。
[nGQL](https://docs.nebula-graph.com.cn/manual-CN/1.overview/1.concepts/2.nGQL-overview/) 是一種類 SQL 的宣告型的文字查詢語言,相比於 SQL, nGQL 為可擴充套件、支援圖遍歷、模式匹配、分散式事務(開發中)的圖資料庫查詢語言。
## 概念對比
| 對比項 | SQL | nGQL |
| --- | --- | --- |
| 點 | \\ | 點 |
| 邊 | \\ | 邊 |
| 點型別 | \\ | tag |
| 邊型別 | \\ | edge type |
| 點 ID | 主鍵 | vid |
| 邊 ID | 複合主鍵 | 起點、終點、rank |
| 列 | 列 | 點或邊的屬性 |
| 行 | 行 | 點或邊 |
## 語法對比
### 資料定義語言 (DDL)
資料定義語言(DDL)用於建立或修改資料庫的結構,也就是 schema。
| 對比項 | SQL | nGQL |
| --- | --- | --- |
| 建立圖空間(資料庫) | CREATE DA