hql和sql的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了hql和sql的区别相关的知识,希望对你有一定的参考价值。

sql是关系数据库查询语言,面对的数据库;而hql是Hibernate这样的数据库持久化框架提供的内置查询语言,虽然他们的目的都是为了从数据库查询需要的数据,但sql操作的是数据库表和字段,而作为面向对象的hql操作的则是持久化类及其属性 但是除了这些还有吗?

hql是面向对象的 。
其实还是转成了sql语句
hql在数据库通用,切换数据库方言就可以
sql在不同数据库中语法有些不同
还是sql比较灵活一些。。

HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖 Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。

sql只是结构化查询语言,只是面向数据检索,不具有面向对象的特征,所以HQL更加符合开发标准!参考资料:露兜博客
参考技术A

数据库中hql与sql的区别:

1、sql 面向数据库表查询。

2、hql 面向对象查询。

3、hql : from 后面跟的 类名+类对象 where 后 用 对象的属性做条件。

4、sql: from 后面跟的是表名             where 后 用表中字段做条件查询。

5、在Hibernate中使用查询时,一般使用Hql查询语句。

6、HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像。不过HQL与SQL的最根本的区别,就是它是面向对象的。

在Hibernate中使用查询时,一般使用Hql查询语句。

HQL(Hibernate Query Language),即Hibernate的查询语言跟SQL非常相像。不过HQL与SQL的最根本的区别,就是它是面向对象的。

使用HQL时需要注意以下几点:

大小写敏感

因为HQL是面向对象的,而对象类的名称和属性都是大小写敏感的,所以HQL是大小写敏感的。

HQL语句:from Cat as cat where cat.id > 1;与from Cat as cat where cat.ID > 1;是不一样的,这点与SQL不同。

from子句

from Cat,该句返回Cat对象实例,开发人员也可以给其加上别名,eg. from Cat as cat,对于多表查询的情况,可参考如下:

from Cat as cat, Dog as dog

其它方面都与SQL类似,在此不再赘述。

参考技术B 它们的语法也不大一样,hql经过编译到后台操作数据库时,还是生成sql去查询的 参考技术C 转:

hql是面向对象的 。
其实还是转成了sql语句
hql在数据库通用,切换数据库方言就可以
sql在不同数据库中语法有些不同
还是sql比较灵活一些。。

HQL(Hibernate Query Language)查询提供了更加丰富的和灵活的查询特性,因此Hibernate将HQL查询方式立为官方推荐的标准查询方式,HQL查询在涵盖 Criteria查询的所有功能的前提下,提供了类似标准SQL语句的查询方式,同时也提供了更加面向对象的封装。

sql只是结构化查询语言,只是面向数据检索,不具有面向对象的特征,所以HQL更加符合开发标准!
参考技术D hql也就hibernate中用,都是封装好的,调用起来很方面。
如果不用hibernate的话,当然都要用sql了
其实你根本没必要去纠结他们的不同。

以上是关于hql和sql的区别的主要内容,如果未能解决你的问题,请参考以下文章

HQL和SQL的区别

HQL和SQL区别

hibernate hql查询 与Criteria 查询语句区别和效率

Hibernate中HQL和条件查询之间的区别[重复]

hibernate中hql语句中list和iterate区别

hive和mysql的区别是啥?