SQLHQLJPQLCQL的对比
Posted Dawning_YWX
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQLHQLJPQLCQL的对比相关的知识,希望对你有一定的参考价值。
SQL:全称结构化查询语言(Structured Query Language),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
HQL:HQL(Hibernate Query Language)查询相对于Criteria查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。
JPQL:在JAVA EE中,JPQL是专门为Java 应用程序访问和导航实体实例设计的。Java Presistence Query Language(JPQL),java持久性查询语言。JPQL就是一种查询语言,具有与SQL 相类似的特征,JPQL是完全面向对象的,具备继承、多态和关联等特性,和Hibernate HQL很相似。
CQL:全称为 Cloud Query Language,是 一套类似 SQL 查询语法的子集和变种,其目的是让开发者可以使用传统的 SQL 语法来查询 LeanCloud 云端数据,从而减少学习 LeanCloud 查询 API 的成本。
不同点对比:
1、SQL与HQL:
sql 面向数据库表查询
hql 面向对象查询
hql :from 后面跟的 类名+类对象 where 后 用 对象的属性做条件
sql: from 后面跟的是表名 where 后 用表中字段做条件
查询: 在Hibernate中使用查询时,一般使用Hql查询语句,使用HQL时需要注意以下几点:
(1)大小写敏感。因为HQL是面向对象的,而对象类的名称和属性都是大小写敏感的,所以HQL是大小写敏感的。
如:HQL语句:from Cat as cat where cat.id > 1;与from Cat as cat where cat.ID > 1;是不一样的,这点与SQL不同。
(2) from子句。from Cat,该句返回Cat对象实例,开发人员也可以给其加上别名,eg. from Cat as cat。对于多表查询的情况,可参考如下:
from Cat as cat, Dog as dog。
2、SQL与JPQL:
JPQL是面向对象的查询语言,因此它可以完全理解继承、多态和关联等特征。而且JPQL内置了大量函数,极大地方便了JPQL查询的功能。当然JPQL底层依然是基于SQL的,但JPQL到SQL的转换无须开发者关心,JPQL解析器会负责完成这种转换,并负责执行这种转换的SQL语句来更新数据库。
SQL是面向关系数据库的查询语言,因此SQL操作的对象是数据表、数据列;而JQPL操作的对象是实体对象,对象属性。
3、SQL与CQL:CQL与SQl的差异主要体现在以下几点:
- 不支持在 select 中使用 as 关键字为列增加别名。
- update 和 delete 不提供批量更新和删除,只能根据 objectId(
where objectId=xxx
)和其他条件来更新或者删除某个文档。 - 不支持
join
,关联查询提供include
、relatedTo
等语法来替代(关系查询)。 - 仅支持部分 SQL 函数(内置函数)。
- 不支持
group by
、having
、max
、min
、sum
、distinct
等分组聚合查询语法。 - 不支持事务。
- 不支持锁。
本文参考于:https://blog.csdn.net/zt15732625878/article/details/78378995?foxhandler=RssReadRenderProcessHandler
https://leancloud.cn/docs/cql_guide.html#hash-906021636
以上是关于SQLHQLJPQLCQL的对比的主要内容,如果未能解决你的问题,请参考以下文章
(linux服务器)apache开启gzip的配置以及效果对比
Python 和 C++ 下字符串查找速度对比,你觉得Python适合算法竞赛吗