关于数据库:数据库SQL高级查询分页查询

47次阅读

共计 2028 个字符,预计需要花费 6 分钟才能阅读完成。

分页查问:

个别的分页查问应用简略的 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] 字符列中的任何繁多字符
1 或者 [!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 基础知识,能够戳我一起交流学习!


  1. charlist ↩

正文完
 0