模糊查询,分页,序列

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模糊查询,分页,序列相关的知识,希望对你有一定的参考价值。

关于模糊查询, 被查询的字符串不能是  双引号 引起来的。只能是 单引号,否则会不执行的。

 

Select * from emp where name like ‘%A%‘ 这里面 是区分 单双引号的。在执行模糊查询的时候不能使用 单引号。

 

关于 oracle 数据库,查询的语句不区分大小写,也就是不管大小写都可以识别的。但是对于查询的内容来讲,如果是大写 就是 大写,如果是小写的话,就是小写了。

 

Orcl里面 and的 优先级 要高于 or

所以 下面两句话的执行结果 是不相同的。

 技术分享

技术分享

 技术分享

全角符号查出来的 竟然是这么一个 结果。

没有报错 倒是。

应该能看出来 长度不一样。

 

 技术分享

 

 

 

 

 

-- 按照年薪排序:

select empno,ename,(sal+nvl(comm,0))*12 as 年薪 from emp

order by 年薪;

-- 可以这样执行的原因: 

-- 先执行 from 

-- 然后是 where 

-- 再然后是: select 

-- 最后是 : order by 

-- 所以 在 select 起完别名以后,再次调用 order by 是可以执行的。

 

 技术分享

 

 技术分享

 

 

-- 虽然知道这是笛卡尔积现象,但是好像还蛮难处理的。最起码单独执行下面这条语句的时候,没有效果。

-- 需要 点击 fetch next page 来展示下14个【并不知道这里为什么是14.】的结果,需要 点击fetch last page 来展示所有的笛卡尔积结果。

-- 应该展示60条结果。

 

 

-- 关联查询

-- 内连接

select * from emp e,dept d where e.deptno = d.deptno;

select * from emp e inner join dept d on d.deptno = e.deptno;

select * from emp e join dept d on d.deptno = e.deptno;

-- 左外链接  (不行完全解释不了 就是 每页只显示14条记录。然后利用 sql命令行 那个 对这个 并不起作用。)

-- 好想知道 是哪里的问题了,就是 下面这个 框框的缘故,够显示多少条 就显示多少条,不够的话,就需要点击 fetch next page 或者 fetch end page。来显示所有。

-- 我的 这个屏幕下方就是 14条数据的地方,所以帮我制定了 每次 加载 下一页 也只是 14条。的缘故

select * from emp e left join dept d on e.deptno = d.deptno;

-- 右外链接 

select * from emp e right join dept d on e.deptno = d.deptno;

-- 全连接

select * from emp e full join dept d on e.deptno = d.deptno;

-- sql server 里面可能是 这样两种方式 表达左外链接和右外链接:

-- select * from emp e left join dept d on e.deptno * = d.deptno; 左

-- select * from emp e left join dept d on e.deptno = * d.deptno; 右

 

-- 自连接查询,这个 本科用于我的 二期项目。 一直 没想到这回事。 

-- 实质是: 把一张表 当做两张来用

-- 看到表发现 有mgr这一列 表示 当前员工的上级。

-- 所以 显示 所有员工以及他的上级:

 

-- 不加as也可以

select e1.empno as 编号,e1.ename 员工,e2.empno 编号,e2.ename as 领导   from emp e1,emp e2 

 

 

 

区别:

在 orcl 里面 对于 字符串的 内容的表达 要使用 ‘‘ 单引号 引起来。 与次一脉相承的是 模糊查询都要使用  ‘ ‘  单引号。

起别名的时候 要使用 "" 双引号 引起来。

 

在 mysql中, 单引号 双引号   不写 貌似 都可以 用来表示 别名,对于字符串的表达 单引号 和 双引号 都是可以的

 

--  分页查询

select * from emp;

-- orcl系统 里面提供了一个 rownum的一项

-- 如果 带上系统的这个数值的话,就一定要注意,给表格起别名。

select e.*,rownum from emp e;

-- 为了看到显示效果,在按 工资一下排序

select e.*,rownum from emp e order by sal desc;

-- 这里 这个 排序 好像跟 主键有关系 跟 这个 工资 没有关系,或者说 按照 工资排序的话 这个东西是乱的。所以先按照 empno 排一下序

select e.*,rownum from emp e order by empno desc;

-- 显示 头 5条:

-- 未知的 列 rn,我们在回顾一遍orcl语法的执行顺序: 先from 再 where 在 select ,那这样的话 bug在于,在起别名之前 rn 还不存在,所以 会爆出一个 位置的 rn这样一个错误

select e.*,rownum rn from emp e where rn<5 order by sal desc ;

 

-- 这样 就显示了前面四条

select a.* from (select e.*,rownum rn from emp e order by empno desc) a where a.rn<5;

 

select a.* from (select e.*,rownum rn from emp e order by empno desc) a where a.rn<6;

-- 流传最广

select a.* from (select e.*,rownum rn from emp e order by empno desc) a where a.rn>5 and a.rn <=10;

 

-- 比较烧脑:

select a.* from (select e.*,rownum rn from emp e where rownum<=10 order by empno desc) a where a.rn>5;

-- 这个顺序不能颠倒 这个 rownum并不真实存在。所以 当我们制定 rownum>5的话,这个数 会无限制的走下去,所以 无论怎样都不可写rownum> 这个 条件。否则就没有结果。

select a.* from (select e.*,rownum rn from emp e where rownum>5 order by empno desc) a where a.rn<11;

-- 写的时候 只能是 先写小于

select a.* from (select e.*,rownum rn from emp e where rownum>3 order by empno desc) a where a.rn<6;

索引的概念

 

索引 提高查询的效率。

对于主键来讲,默认带有索引。

通常情况下 数据记录条数大于10w条时,索引的效果是明显的。

单列索引:

 

序列自增完整版 :

-- 尝试一个 完整过程:

create table testsequence_tb(

       testsequence_id number,

       testsequence_name varchar2(20)

)

 

-- 这几个单词 之间貌似 是可以无序的。

create sequence testsequence_sequence

start with 1

increment by 1

minvalue 1

nomaxvalue

cache 10

order;

 

create or replace trigger testsequence_tb_insert

before insert on testsequence_tb

for each row

  begin 

    select testsequence_sequence.nextval into:New.testsequence_id from dual;

  end;

 

insert into testsequence_tb (testsequence_name) values (测试);

 

select * from testsequence_tb;

 

以上是关于模糊查询,分页,序列的主要内容,如果未能解决你的问题,请参考以下文章

PHP中模糊查询后实现分页时,只显示第一页信息,之后的页面信息不显示,求类似问题解决方法最好有代码,谢

ASP多值多字段模糊查询分页问题

SpringBoot Mybatis-Plus 分页模糊查询 分页参数和响应封装

怎么把查询全部和模糊查询分页放在一起

java mybatis 分页模糊查询页面怎么写

SpringBoot整合ElasticSearch实现模糊查询,批量CRUD,排序,分页,高亮