查询第1条到第10条的数据的sql是:select * from table limit 0,10; ->对应我们的需求就是查询第一页的数据:select * from table limit (1-1)*10,10;
查询第11条到第20条的数据的sql是:select * from table limit 10,10; ->对应我们的需求就是查询第二页的数据:select * from table limit (2-1)*10,10;
查询第21条到第30条的数据的sql是:select * from table limit 20,10; ->对应我们的需求就是查询第三页的数据:select * from table limit (3-1)*10,10;
mybatis-plus中:
QueryWrapper<Item> queryWrapper = new QueryWrapper<>(); queryWrapper.like(flag,"title", pageResult.getQuery()); //获取条件 //编辑MP分页对象 四个属性有用(页数(current)/条数/总数/记录) 传递=页数(current)/条数 IPage<Item> page=new Page<>(pageResult.getPageNum(),pageResult.getPageSize());
page = itemMapper.selectPage(page, queryWrapper); //查询结果再次封装到page中,好处使用改方法可以跨数据库
分页查询:
查询前5行数据:limit从0开始计算
Mysql:Select prod_name from Products limit 5;
Oracle:Select prod_name from Products where rownum<=5;
查询4-6行数据:
Mysql:Select prod_name,prod_price from Products order by prod_price desc limit 3,3;
Oracle:select * from (select rownum rn,p.* from (Select prod_name,prod_price from Products order by prod_price desc) p where rownum <=6) t where rn>3;
And的优先级比or高。In();在一个范围内 not in()..不在范围Like:模糊查询 其中加%表示任何字符出现任何次数。
拼接字段:如值在俩列,却只需要一个返回值:Mysql:select Concat(vend_name,’(’,vend_country,’)’) from Vendors;
别名:select Concat(vend_name,’(’,vend_country,’)’) as a from Vendors;
Oracle: select vend_name || ‘(’ ||vend_country || ’)’ from Vendors;
别名(无as,直接指定名称):select vend_name || ‘(’ ||vend_country || ’)’ a from Vendors;聚会函数:Avg():列平均值 count():列行数Max():列最大值 min():列最小值Sum():列和分组:group by 分组过滤:having(一般是聚和函数过滤)
执行顺序:select>from>where>group by>having>order by
联结查询(join):
内联Inner join:输出有关联的数据
Select ? from user inner join emp on user.id=emp.id;
左联结left join:输出左边所有行及右边相关行,右无匹配左用null替代
Select ? from user left join emp on user.id=emp.id;
右连接(left join):输出右边所有行及左边相关行,左无匹配右用null替代
Select ? from user right join emp on user.id=emp.id;
全外联(full join):输出左右表所有行,无关联的列数据用null替代
Select ? from user full join emp on user.id=emp.id;
多个查询一起(union):(union all不取消重复)要求:多个查询查询内容含相同的列,重复行会被自动取消
如:select id,name from user where id=1 union select id,name from user where name=”jack”;
插入数据:(insert)
插入多行用,隔开().
复制表:
Mysql:
复制结构:create table 复制表名 like 被复制名;
复制数据:insert into 复制表名 select * from 被复制表名;
Oracle:
复制结构:create table 复制表名 AS select * from 被复制表名;
更新:update ,不写where则更新所有
删除:
delete:清空数据,保留结构,可回滚
Drop:表结构与表数据一起删,不可回滚
Truncate:截断表,只留表结构,不可回滚(Truncate table 表名;)
视图的创建与查询:
Create view view_user as select id,name,age from user;(创建视图)
删除视图:drop view 视图名;
Select * from view_user;(查询视图)
分页及拼接等基本操作
最新推荐文章于 2024-05-20 15:45:19 发布