Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->数据库应用 ->其他数据库 ->数据库知识:hibernate查询语句--HQL
  相关分类: 
Access
DB2
Mysql
Oracle
PostgreSQL
SQL Server
Sybase
其他数据库
  站内搜索: 
热门文章排行
热门文章排行 数据库连接字符串大全(06-03)
海量数据库的查询优化及分页算法方案(04-23)
sql年月日计算方法(06-03)
有关 Eclipse 运行命令行参数大全 (04-23)
sql 经典语句(06-03)
精采文章排行
精采文章排行 分析数据库备份过程中九种易出现的情(06-29)
第七届Teradata数据仓库峰会在上海召(06-29)
SQL语句游标For.Loop与Open.Close比(06-29)
渗透测试中攻与守之数据库系统渗透简(06-29)
容灾可捍卫数据安全 确保信息即时恢(06-29)
  ·罗维数据库营销的网络化 改善客户体验 ·精华推荐 数据库系统专用词汇集锦之二 ·轻松七个步骤帮助你来顺利开发数据仓库 ·SQL语句基础学习 帮你明了数值数据类型 ·SQL语句基础学习 从子表里如何删除数据 ·SQL语句基础学习 子选择如何来合并查询 ·逐行扫描 为你讲解几个基本SQLPLUS命令 ·精华推荐 数据库系统专用词汇集锦之一 ·数据库基础知识帮你分析何为ASP数据库

数据库知识:hibernate查询语句--HQL

作者:Webmaster   来源:赛迪网技术社区    点击:   日期:2007-04-23 [收藏] [投稿]

  IE是否经常中毒?推荐您
















1 .from

1.1单表查询

from eg.cat as cat.其中,cat只是一个别名,为了用其他子语句的时候书写简单

1.2多表查询

from eg.Cat,eg.Dog

from eg.Cat as cat,eg.Dog as dog

2 join相关

(inner) join

left (outer) join

right (outer) join

full join

HQL同样对SQL中的这些特性支持

下面插播一个小话题,关于上边的那些特性,我一直都没怎么用,今天既然说到这里,就想

把上边的几个特性的用法说一下,也算对自己的一个补充:

假设有两个表:部门、员工,下面列举一些数据:

员工(Employee):
ID Name DepNo
001 Jplateau 01
002 Jony 01
003 Camel 02
部门(Department):
ID Name
01 研发部
02 营销部

在Hibernate中我们操纵的都是对象,所以我们操纵的是部门类和员工类

1).(inner) join

select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name

as name2 from Employee as employee join Department as department on employee.DepNo=

department.ID (注意到条件语句我用on 没有用where)

那么执行结果是什么呢?

id1 name1 id2 name2

++++++++++++++++++++++++++++++++++++++

001 Jplateau 01 研发部

002 Jony 01 研发部

2).left (outer) join

select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name

as name2 from Employee as employee left join Department as department on employee.DepNo=

department.ID

那么执行结果又该是什么呢?

id1 name1 id2 name2

++++++++++++++++++++++++++++++++++++++

001 Jplateau 01 研发部

002 Jony 01 研发部

003 Camel null null

{就是说此时我要已第一个表的记录多少为准,第二个表中没有相应纪录的时候填充null}

3). right (outer) join

select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name

as name2 from Employee as employee right join Department as department on employee.DepNo=

department.ID

那么执行结果又该是什么呢?

id1 name1 id2 name2

++++++++++++++++++++++++++++++++++++++

001 Jplateau 01 研发部

002 Jony 01 研发部

null null 02 营销部

{就是说此时我要已第二个表的记录多少为准,第一个表中没有相应纪录的时候填充null}

3 大小写敏感

4。select语句

就是要确定你要从查询中返回哪些对象或者哪些对象的属性。写几个例子吧:

select employee form Employee as employee

select employee form Employee as employee where employee.Name like 'J%'

select employee.Name form Employee as employee where employee.Name like 'J%'

select employee.ID as id1,employee.Name as name1,department.ID as id2,department.Name

as name2 from Employee as employee right join Department as department on employee.DepNo=

department.ID

select elements(employee.Name) from Employee as employee

(不明白elements到底是做什么用的?望给于说明)

等等

5。数学函数

JDO目前好像还不支持此类特性。

avg(...), sum(...), min(...), max(...)

count(*)

count(...), count(distinct ...), count(all...)



 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页12 3 下一页

上一篇:数据库知识:怎么样用T-SQL语句建立跟踪   下一篇:数据库输出HTML格式报表的测试
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·精华推荐 数据库系统专用词汇集锦之三

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。