美文网首页
数据库:SQL高级查询,分页查询

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

作者: _Jun | 来源:发表于2020-12-01 14:29 被阅读0次

分页查询:

一般的分页查询使用简单的 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

相关文章

  • hibernate中的查询

    HQL 查询所有 条件查询 分页查询 Criteria 查询所有 条件查询 分页查询 查询总记录 原生SQL

  • 数据库:SQL高级查询,分页查询

    分页查询: 一般的分页查询使用简单的 limit 子句就可以实现。 LIMIT 子句可以被用于指定 SELECT ...

  • 2021-01-16 - mysql优化

    分页优化 表结构如下 根据主键的查询排序 sql查询 会用到索引吗? 非主键的排序分页查询 sql查询 会用到索引...

  • sqlserver,oracle,mysql分页查询通用sql

    摘要: sqlserver,oracle,mysql分页查询通用sql1:mysql通用查询sql /* sql:...

  • JDBC:Java数据库连接

    JDBC常用接口 JDBC编程步骤 执行SQL语句 管理结果集 事务管理 高级应用:分页、高级查询、高级函数使用

  • MySQL03

    DQL查询语句 分页查询 分组函数 分组查询 子查询 多表连接查询 1、分页查询 当数据库中数据过多时,不能一次全...

  • Nutz

    自定义Sql + 拼接查询条件 + 分页

  • 64MySQL-分页查询&表连接&count统计&索引优化总结

    1 Mysql 分页查询sql 执行原理? 2,千万级数据mysql 分页查询如何优化 3,Mysql表连接底层实...

  • 分页查询

    分页查询使用Mybatis,SQL写法 Service层方法

  • mybatis

    介绍 mybatis 加载配置文件 增删改查/分页查询 别名配置 定义结果集 动态SQL(增删改查/分页查询) 关...

网友评论

      本文标题:数据库:SQL高级查询,分页查询

      本文链接:https://www.haomeiwen.com/subject/tlrswktx.html