模糊查询,分页,序列

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

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;
时间: 2024-12-13 06:15:35

模糊查询,分页,序列的相关文章

数据库之模糊查询,视图,序列,索引

1. 模糊查询 关键字" like " %  代表任意个字符 _代表一个字符 select test1 from test where test1 like _b(%b%) //查询test表中test1列中 第二个字符是b的数据(中含有b数据) 2. 视图 好处: 1)限制对数据库的访问2)简化查询3)维护数据的独立性4)对相同的数据可以建立不同的视图5)可以删除视图而不影响数据 create [or replace] view v_test as (要建成视图的数据) //as后可

Springmvc+Myabtis+Ajax实现异步分页emp+dept(全部查询及模糊查询)

1.在项目中创建如下目录 2.创建实体类Dept package com.entity; import java.io.Serializable; /** * 部门表 * @author Administrator * */ public class Dept implements Serializable{ /** * */ private static final long serialVersionUID = 1L; private Integer deptno; private Stri

2016/3/13 七种查询 (普通查询 条件查询 排序查询 模糊查询 统计查询 分组查询 分页查询 )

一句话概括的话,SQL作为结构化查询语言,是标准的关系型数据库通用的标准语言: T-SQL 是在SQL基础上扩展的SQL Server中使用的语言 1,普通查询 #查询Info表中的所有列 select * from Info #查询Info表中的Name和Code列 select Name,Code from Info 2,条件查询 关键字where #查询Info表的左右列 限定范围 列名为p001 select * from Info where 列名="p001" #查询条件之

数据库:模糊查询,视图,序列,索引

1. 模糊查询 关键字" like " %  代表任意个字符 _代表一个字符 like '%A'  是名字中后一个是A的人 like 'A%' 是名字中第一个字符是A的人 select test1 from test where test1 like _b(%b%) //查询test表中test1列中 第二个字符是b的数据(中含有b数据) 2. 视图 好处: 1)限制对数据库的访问2)简化查询3)维护数据的独立性4)对相同的数据可以建立不同的视图5)可以删除视图而不影响数据 creat

基于HTML5 Bootstrap搭建的后台模板,分页,模糊查询已经全部JS实现,无需编码,嵌入数据即可开发,内置8款皮肤,欧美风格,非常好用!

原文:基于HTML5 Bootstrap搭建的后台模板,分页,模糊查询已经全部JS实现,无需编码,嵌入数据即可开发,内置8款皮肤,欧美风格,非常好用! 源代码下载地址:http://www.zuidaima.com/share/1550463575788544.htm 分页,查询功能已经全部用JS实现,无需再做此类代码编写,嵌入数据即可,真心美观好用.       

利用DetachedCriteria实现模糊查询和分页

  分类: Java-Developing 前段时间在做模糊查询,并利用数据库分页,DAO用hibernate实现,刚开始的时候 根据业务层的数据,拼hql语句进行查询,且不说要进行一些if判断,单从结构上来说, 底层的数据访问层依赖于业务层或者表现层了. 比如说,我想查询姓王的员工,年龄大于30岁的,在DAO显然要name like '%王' and age >30,如果业务发生变化,查询与王**姓名相同,年龄等于30的,那就改hql语句吧, name ='王**' and age =30,数

mysql笔记十——数据库分页技术(再分页,模糊查询)

1.什么是数据分页:数据分页就是将很多条记录像书本一样分页,每页显示多少行记录: 2.为什么要数据分页:当我们进行sql语句查询时,假如数据有成千上万行记录,如果在同一个页面去显示,那这个页面得有多大,数据就要很多,而我们所需的记录又很少,不使用分页,查看起来那么繁琐,而且一不小心容易看着眼花.使用数据分页,就行书本一样,有页数,一目了然.相当简洁. 3.核心sql语句:SELECT * FROM stud LIMIT m,n ----m表示要显示的页数,n表示显示的记录行数 4.核心思想: 总

mybatis oracle 分页+模糊查询

实现分页的方式有很多,但常用的是通过SQL来显示分页. 下面就来介绍mybatis 来实现Oracle分页的写法:(ps:不同数据库的写法有区别) 一.分页数据: 1 <select id="findPageByCode" parameterType="java.util.Map" resultMap="pageVO"> 2 select * from 3 ( 4 select A.* ,ROWNUM rn 5 from (selec

用js实现表格多条件模糊查询,可兼容分页

需求如下: 实现姓名.职位.直属上级.用户类型四个条件模糊查询,查询到的结果分页展示. 实现逻辑: 定义两个数组,其中vm.nowallUserLists为原始数据.vm.nowallUserFilter为筛选后数据.最终循环vm.nowallUserFilter来渲染表格. 筛选前,将vm.nowallUserLists的值赋给vm.nowallUserFilter,表格渲染全部数据. 筛选时,先初始化vm.nowallUserFilter为空数组,将筛选得到的内容推到这个数组中.此时表格渲染