java数据库中高级查询_数据库:SQL高级查询,分页查询

分页查询:

一般的分页查询使用简单的 limit 子句就可以实现。

SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset

LIMIT 子句可以被用于指定 SELECT 语句返回的记录数。需注意以下几点:

第一个参数指定第一个返回记录行的偏移量

第二个参数指定返回记录行的最大数目

如果只给定一个参数:它表示返回最大的记录行数目

第二个参数为 -1 表示检索从某一个偏移量到记录集的结束所有的记录行

初始记录行的偏移量是 0(而不是 1)

TOP():

TOP 子句用于规定要返回的记录的数目。 对于拥有数千条记录的大型表来说,TOP 子句是非常有用的。

语法:

SELECT TOP number|percent column_name(s)

FROM table_name

LIKE:

通配符:

%

替代一个或多个字符

_

仅替代一个字符

[charlist]

字符列中的任何单一字符

[^charlist]或者[!charlist]

不在字符列中的任何单一字符

LIKE 操作符用于在 WHERE 子句中搜索列中的指定模式。

语法:

SELECT column_name(s)

FROM table_name

WHERE column_name LIKE pattern

子查询

外部查询为父查询,内部查询为子查询。

1.作为查询条件使用 where

--1.子查询作为条件

--查询学号在王五前边的同学

select * from StuInfo where stuid < (select stuid from StuInfo where stuname='王五')

2.作为临时表使用 from

--子查询3:stuinfo、StuMarks都作为子查询

select stuname,subject,score from

(select * from stuinfo where stuname = '李四') s1,

(select * from stumarks where score > 80) s2

where s1.stuid = s2.stuid

3.作为列使用 select

--3.子查询作为列使用

--查询所有学员html成绩,没有成绩以null显示

select s.*,

(select score from StuMarks where subject='html' and s.stuid=StuMarks.stuid) as '成绩'

from StuInfo s

在条件查询中使用 '' , '='后+查询句只能查一列。

in和not in 通常在where子句中使用,在in和not in后接的子查询中,可以有多个值出现,但必须只能有一列

--in 符合in后面所有条件都能够查询出来,一系列确定的值或表中的某一列

--查询学号为1和3的学员信息

--select * from stuinfo where stuid = 1 or stuid = 3

select * from stuinfo where stuid in (1,3)

--not..in 对in取反,不符合in后面所有条件都能够查询出来

--查询学号除了1和3的以外的学员信息

select * from stuinfo where stuid not in (1,3)

使用SOME,ANY,ALL进行子查询:

1.在SQL查询中,SOME,ANY,ALL后必须跟子查询。

2.在SQL查询中,SOME,ANY,ALL的作用是一样的,表示其中的任何一项。ALL则表示其中的所有的项。

--SOME、 ANY、 ALL后必须跟子查询

--SOME 和 ANY 的作用是一样的,表示其中的任何一项

select * from StuInfo where stuid > any(select stuid from StuInfo where stuid>1)

select * from StuInfo where stuid > some(select stuid from StuInfo where stuid>1)

--all表示其中的所有的项

select * from StuInfo where stuid > all(select stuid from StuInfo where stuid>1)

compute 聚合技术

1.使用了comput进行总计算后的查询得到了两个结果集,第一个结果集返回查询前面的查询明细,后一个结果返回汇总的结果,我们也可以在compute子句中添加多个汇总计算表达式。

COMPUT子句需要下列信息:

①可选BY关键字。它基于每一列计算指定的行聚合。

②行聚合函数名称。包括SUM,AVG,MIN,MAX或COUNT。

③要对其执行行聚合函数的列。

例:

--对信息进行查询并统计

select * from StuMarks where subject='html'

compute max(score),min(score),avg(score)

--对信息进行分组查询并统计

select * from StuMarks order by stuid desc

compute avg(score),sum(score) by stuid

谢谢大家阅读,如果想要知道更多java基础知识,可以戳我一起交流学习!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值