当前位置:网站首页>SQL、HQL、JPQL 到底有什么区别
SQL、HQL、JPQL 到底有什么区别
2022-07-31 14:56:00 【十⑧】
SQL、HQL、JPQL 到底有什么区别
SQL 是可以操作数据库的。
HQL 是 Hibernate 框架实现的,是 对象关系查询语言。
JPQL 是 以 HQL 为原型,是 完全面向对象的查询语言。
本文参考:SQL、HQL、JPQL、CQL的对比
SQL(Structured Query Language)即:结构化查询语言,是 关系数据库的 查询语句。
即:可以用此语言去操作数据库。处理对象是
数据库的表、表字段
。SQL Server、MySql、Oracle 这三个常用的关系型数据都是使用 SQL 语句来查询数据的,可以有些许不同,但大体结构是不变的。
以 MySql 数据库的 SQL 的
结构
为例,字句的编写顺序以下面的列表为准。SELECT 字句,
必须
,用于规定查询的表的哪几个属性,必须大于等于一个。FROM 字句,
必须
,用于引入表,连表查询也是在这里引入表。WHERE 字句,
非必须
,用于指定查询条件。GROUP BY 字句,
非必须
,用于分组。ORDER BY 字句,
非必须
,用于排序。注意:字句后跟的都是 表名 或 表字段名 或 函数。
例子:
SELECT article_id, article_type FROM article GROUP BY article_type ORDER BY article_type
article_id 和 article_type 是数据表 article 的字段。
大小写不敏感。MySql 中,表名和属性名都要小写的,默认将 SQL中的属性名、表名 转为 小写。
下面的 查询语言用于查询时,都需要转为 SQL 语言。
HQL(Hibernate Query Language)即:对象关系查询语言,是 Hibernate 框架生成的查询语句。
只有 Hibernate 框架可以解析,Hibernate 框架当然有相应的解析器将其转换成 SQL 语言。
处理对象是
JPA 实体、实体属性
。大小写敏感,和 Java 一样。
查询语句中,FROM 等字句后跟的都是 类名 或 类属性名 或 类对象。
与 SQL 的比较
结构上与 SQL 没有太大的区别。
SELECT 等字句后添加的 表字段、表 替换成了 类属性、类名。
JPQL 即:面向对象的查询语言,
原型是 HQL,JPQL 极其相似 HQL。
JPQL 到 SQL 的转换 JPQL 解析器会负责完成。
处理对象是
JPA 实体、实体属性
。它能够彻底理解继承、多态和关联等特征,并且 JPQL 内置了大量函数,极大地方便了 JPQL 查询的功能。
JPQL 底层依然是基于 SQL 的。
与 SQL 的比较
结构上与 SQL 没有太大的区别。
SELECT 等字句后添加的 表字段、表 替换成了 类属性、类名。
关联表的连接方式只有:内连接、左外连接。
支持 删、查、改 操作。
(二发)如果对你有帮助,点赞可好!!
边栏推荐
- Synchronized和volatile 面试简单汇总
- Architecture actual combat battalion module 8 message queue table structure design
- OAuth2:微服务权限校验Session共享
- NPM Taobao mirror (latest version) released a new version of npm mirror at 2021-11-21 16:53:52 [easy to understand]
- OpenShift 4 - 定制 RHACS 安全策略,阻断生产集群使用高风险 Registry
- Advanced Mathematics - Commonly Used Indefinite Integral Formulas
- 435. 无重叠区间
- The magic of SQL MERGE statement (detailed instructions)
- 小试牛刀:Go 反射帮我把 Excel 转成 Struct
- 最近很火的国产接口神器Apipost体验
猜你喜欢
随机推荐
R语言ggplot2可视化:使用ggpubr包的ggmaplot函数可视化MA图(MA-plot)、font.legend参数和font.main参数设置标题和图例字体加粗
Sentinel热点参数限流
Spark学习(2)-Spark环境搭建-Local
OAuth2:四种授权方式
OpenCV测量物体的尺寸技能 get~
搭建私有的的Nuget包服务器教程
MySql总结
三、数组
c语言hello world代码(代码编程入门)
Nuget package and upload tutorial
Selenium自动化中无头浏览器的应用
In the future, the interviewer asks you why it is not recommended to use Select *, please answer him out loud!
OAuth2:单点登陆客户端
[Pytorch] F.softmax() method description
Asynchronous processing business using CompletableFuture
女性服务社群产品设计
Word表格转到Excel中
R语言计算时间序列数据的移动平均值(滚动平均值、例如5日均线、10日均线等):使用zoo包中的rollmean函数计算k个周期移动平均值
看交互设计如何集成到Scrum敏捷流程中
Recommendation System - Recall Phase - 2013: DSSM (Twin Towers Model) [Embedding (Semantic Vector) Recall] [Microsoft]