1、HQL(Hibernate Query Language)是面向對象的查詢,from后面跟的是“表名”,where后用“表中字段”做條件。在Hibernate中使用查詢時,一般用HQL查詢語句。因為HQL是面向對象的,而對象類的名稱和屬性都是大小寫敏感的,所以是大小寫敏感的。
2、JPQL(Java Presistence Query Language )是EJB3.0中的JPA造出來的對象查詢語言。JPQL是完全面向對象的,具備繼承、多態和關聯等特性,
和hibernate HQL很相似。基於首次在EJB2.0中引入的EJB查詢語言(EJB QL),Java持久化查詢語言(JPQL)是一種可移植的查詢語言,旨在以面向對象表達式語言
的表達式,將SQL語法和簡單查詢語義綁定在一起.使用這種語言編寫的查詢是可移植的,可以被編譯成所有主流數據庫服務器上的SQL.
JPQL語句支持兩種方式的參數定義方式: 命名參數和位置參數。。在同一個查詢語句中只允許使用一種參數定義方式。
//面向對象的JPQL語句
select name,age,userId from User //對User實體執行查詢,查詢的是User實體的name、age、userId 屬性
3、SQL(Structured Query Language)是關系數據庫查詢語言。from后面跟的是“表名”,where后用“表中字段”做條件
//原生的SQL語句
select name,age,user_id from t_user //對t_user table表執行查詢,查詢name、age、user_id三個數據列
4、CQL ( Cloud Query Language)是 LeanCloud 為查詢 API 定制的一套類似 SQL 查詢語法的子集和變種,其目的是讓開發者可以使用傳統的 SQL 語法來查詢
LeanCloud 雲端數據,從而減少學習 LeanCloud 查詢 API 的成本。與 SQL 的主要差異:不支持在 select 中使用 as 關鍵字為列增加別名。update 和 delete
不提供批量更新和刪除,只能根據 objectId(where objectId=xxx
)和其他條件來更新或者刪除某個文檔。不支持join
,關聯查詢提供include
、relatedTo
等
語法來替代(關系查詢)。僅支持部分 SQL 函數(內置函數)。不支持group by
、having
、max
、min
、sum
、distinct
等分組聚合查詢語法。不支持事務。
不支持鎖。