OrientDB
Getting-Started:https://www.orientdb.org/getting-started
一、MacOSX安装OrientDB
使用docker安装:
docker run -d --name orientdb -p 2424:2424 -p 2480:2480 -e ORIENTDB_ROOT_PASSWORD=root orientdb:latest
docker操作命令
# 停止容器
docker stop orientdb
# 开启容器
docker start orientdb
# 查看日志 tail后跟需要看的日志数量信息 使用ctrl+C退出日志
docker logs -tf --tail 50 orientdb
二、OrientDB基本操作
1、登陆操作页面
docker中orientDB容器在运行时,输入:
http://localhost:2480/studio/index.html
即可进入orientdb操作页面
2、创建数据库 Create a DB
点击NEW DB
新建名字为Mydb,用户名为root,密码为root的DB,点击CREATE DATABASE
尝试输入
SELECT * FROM OUser
并点击RUN按钮,可以得到如下结果
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-cBtPZEwE-1600863812728)(/Users/yangbohan/Library/Application Support/typora-user-images/image-20200922151732781.png)]
3、OrientDB基本语法
- 除了以下的差别,OrientDB的语法与SQL的语法差不多
3.1 没有JOIN
OrientDB与传统关系型数据库的最大差别是关系用LINKS
来表示而不是用JOINS
来表示。所以传统的JOIN语法在OrientDB中不被支持。
在sql中,可以通过如下的代码创造一个Join
SELECT *
FROM Employee A, City B
WHERE A.city = B.id
AND B.name = 'Rome'
在OrientDB中,一个相等的操作如下:
SELECT * FROM Employee WHERE city.name = 'Rome'
这样变得更方便,方法更强大了。
3.2 投影
在SQL中,投影是强制性的并且可以用*
来显示所有的行。在OrientDB中*
是可选的。
传统SQL语句中,查询Customer所有的列语句如下:
SELECT * FROM Customer
而OrientDB中,*
可以不写
SELECT FROM Customer
3.3 不支持HAVING关键字
OrientDB不支持HAVING关键字,但是要得到同样的结果也很方便。
SQL中的例子:
SELECT city, sum(salary) AS salary
FROM Employee
GROUP BY city
HAVING salary > 1000
这个SQL语句把所有的工资通过城市分类,并且提取出工资总和超过1000的结果。在OrientDB中表达式如下:
SELECT FROM ( SELECT city, SUM(salary) AS salary FROM Employee GROUP BY city ) WHERE salary > 1000
三、 Java连接OrientDB
使用Idea,新建maven项目,在pom.xml文件中加入依赖
<project>
...
<dependencies>
...
<dependency>
<