zoukankan      html  css  js  c++  java
  • SQL、HQL、JPQL、CQL的对比

           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 等分组聚合查询语法。
    • 不支持事务。
    • 不支持锁。

           本文参考于:https://blog.csdn.net/zt15732625878/article/details/78378995?foxhandler=RssReadRenderProcessHandler

                                https://leancloud.cn/docs/cql_guide.html#hash-906021636

  • 相关阅读:
    jmeter上做分布压测
    jpg,jpeg,bmp,png,gif图片格式区别
    jmeter的命令行进行压力测试
    Java8新特性
    02-Git
    01-Maven
    Java-集合
    Java-I/O框架
    mongodb安装配置
    Nginx常见错误及处理方法
  • 原文地址:https://www.cnblogs.com/fancy-dawning/p/9058101.html
Copyright © 2011-2022 走看看