#进阶8 分页查询 /* 应用场景: 当要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 #7 from 表1 #执行顺序:#1 [join type join 表2 #2 on 连接条件 #3 where 筛选条件 #4 group by 分组字段 #5 having 分组后筛选或函数 #6 order by 排序的字段 #8 ] limit offset, size ; #9 #offset 要显示条目的起始索引(从0开始,0想可以省略),size 要显示的…
#进阶7:子查询 /* 含义: 出现在其他语句中的select语句,称为子查询或者内查询 外部的查询语句,称为主查询或外查询 分类: 按照子查询出现的位置: select后面:只支持标量子查询 from后面:支持表子查询 重点:where或者having后面: 标量子查询,重点 列子查询,重点 行子查询(用的较少) exists后面(相关子查询):表子查询 按照结果集的行列不同: 标量子查询(结果集中只有一行一列) 列子查询(结果集只有一列多行) 行子查询(结果集为一行多列) 表子查询(结果集为…
多表查询 在大部分情况下,我们用到的表都是彼此相关联的,所以我们会有相当大的需求用到跨表的查询,这个时候我们就需要将相关联的表连起来做多表查询. 多表查询分为连表查询和子查询,连表查询即将相关联的表连城一张表后进行查询:子查询即将一张表查询所得结果作为另一张表的条件进行二次查询,为嵌套式查询. 链表操作放在where之前,只有连完表后在内存中生成虚拟的一张连起来的表才能做条件.分组.筛选等操作. 这里我们准备两张表做演示,两张表相关联.(数据自己插吧...) #创建部门表 create tabl…
#进阶8:分页查询 /* 应用场景:要显示的数据,一页显示不全,需要分页提交sql请求 语法: select 查询列表 from 表 [join type] join 表2 on 连接条件 [where筛选条件][group by分组字段][having][order by] limit offset,size; offset要显示条目的起始索引(索引从0开始) size要显示的条目数量 */ # 案例:查询前五条员工信息 select * from employees limit 0,5; #…
#进阶6:连接查询 /* 含义:多个表格连接,当查询的字段来自于多个表时候,就会用到连接查询 我觉得这里类似于excel中的vlookup函数 笛卡尔乘积现象:表1有m行,表2有n行,结果有m*n行 如何发生:没有有效的连接条件 怎么解决:添加有效的连接条件 分类: 按照年代分类 sql92标准:仅仅支持内连接 sql99标准[推荐]:支持内连接+外连接(左外和右外)+交叉连接 按照功能分类: 内连接:等值连接,非等值连接,自连接 外连接:左外连接,右外连接,全外连接 交叉连接 */ use g…
#进阶9:联合查询 /* union 联合 合并:将多条查询语句的结果合并成一个结果 语法: 查询语句1 union 查询语句2 union..... 应用场景:要查询的结果来自于多个表,且多个表没有直接的连接关系,但查询的信息一致时 特点: (1)要求多条查询语句的查询列数是一致的 (2)要求多条查询语句的查询的每一列的类型和顺序最好一致 (3)union去重,union all不去重 */ #引入的案例:查询部门编号>90或者邮箱包含a的员工信息 or email like "%a%&…
# 进阶3:排序查询 /* 引入: select * from employees; 语法: select 查询列表 from 表 [where 筛选条件] order by 排序的列表 asc/desc #asc升序,desc降序 [where 筛选条件]可选条件 特点: 1.#asc升序,desc降序,如果不写,默认升序 2. order by子句支持单个字段.多个字段.表达式.函数.别名 3. order by子句一般放在查询语句的最后面,limit子句除外. */ # 案例1:查询员工的…
一.用法 在Mysql中分页查询使用关键字limit.limit的语法如下: SELECT * FROM tbl LIMIT 5,10; # Retrieve rows 6-15 limit关键字带有两个参数,第一个参数表示相对于第一行的偏移量,第二个参数表示检索出的最大行数.初始化行数的偏移量是0而非1. 同行分页中会根据页码和每页条数计算出limit的偏移量即第一个参数,每页大小即第二个参数,开完成分页查询. SELECT * FROM tbl LIMIT 5; # Retrieve fir…
方法1: 直接使用数据库提供的SQL语句 语句样式: MySQL中,可用如下方法: SELECT * FROM 表名称 LIMIT M,N 适应场景: 适用于数据量较少的情况(元组百/千级) 原因/缺点: 全表扫描,速度会很慢 且 有的数据库结果集返回不稳定(如某次返回1,2,3,另外的一次返回2,1,3). Limit限制的是从结果集的M位置处取出N条输出,其余抛弃. 方法2: 建立主键或唯一索引, 利用索引(假设每页10条) 语句样式: MySQL中,可用如下方法: SELECT * FRO…
前言 在Hibernate的第二篇中只是简单地说了Hibernate的几种查询方式-.到目前为止,我们都是使用一些简单的主键查询阿-使用HQL查询所有的数据-.本博文主要讲解Hibernate的查询操作- get/load主键查询 由于主键查询这个方法用得比较多,于是Hibernate专门为我们封装了起来- get()立即查询 load()懒加载 对象导航查询 如果对象与对象之前存在一对多.多对一的关系的时候 在以前SQL查询的时候:我们如果想要得到当前对象与另一对象的关联关系的时候,就必须用多…