码迷,mamicode.com
首页 > 数据库 > 详细

SQL、HQL、JPQL、CQL的对比

时间:2018-06-15 01:07:27      阅读:281      评论:0      收藏:0      [点我收藏+]

标签:blank   lan   目的   根据   增加   现在   编程语言   hibernate   方式   

  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,关联查询提供 includerelatedTo 等语法来替代(关系查询)。
    • 仅支持部分 SQL 函数(内置函数)。
    • 不支持 group byhavingmaxminsumdistinct 等分组聚合查询语法。
    • 不支持事务。
    • 不支持锁。

SQL、HQL、JPQL、CQL的对比

标签:blank   lan   目的   根据   增加   现在   编程语言   hibernate   方式   

原文地址:https://www.cnblogs.com/1369306648edu/p/9185535.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!