本文共 1721 字,大约阅读时间需要 5 分钟。
合并结果集的时候,需要查询字段对应个数相同。在Oracle中更严格,不但要求个数相同,而且还要求类型对应相同。
举例:
案例:找出工作岗位是SALESMAN和MANAGER的员工? 第一种:orselect ename,job from emp where job = 'MANAGER' or job = 'SALESMAN';
第二种:in
select ename,job from emp where job in('MANAGER','SALESMAN');
第三种:union
select ename,job from emp where job = 'MANAGER'unionselect ename,job from emp where job = 'SALESMAN';
两张不相干的表中的数据拼接在一起显示?
select ename from empunionselect dname from dept;
±-----------+
| ename | ±-----------+ | SMITH | | ALLEN | | WARD | | JONES | | MARTIN | | BLAKE | | CLARK | | SCOTT | | KING | | TURNER | | ADAMS | | JAMES | | FORD | | MILLER | | ACCOUNTING | | RESEARCH | | SALES | | OPERATIONS | ±-----------+mysql> select ename,sal from emp -> union -> select dname from dept;//ERROR 1222 (21000): The used SELECT statements have a different number of columns
limit 的使用(重点中的重点,以后分页查询全靠它了。)
1、limit是mysql特有的,其他数据库中没有,不通用。(Oracle中有一个相同的机制,叫做rownum)
2、limit取结果集中的部分数据,这是它的作用。 3、语法机制:limit startIndex, length startIndex表示起始位置,从0开始,0表示第一条数据。 length表示取几个
案例:取出工资前5名的员工(思路:降序取前5个)
select ename,sal from emp order by sal desc;
取前5个:
select ename,sal from emp order by sal desc limit 0, 5;select ename,sal from emp order by sal desc limit 5;
4.limit是sql语句最后执行的一个环节:
select 5 ... from 1 ... where 2 ... group by 3 ... having 4 ... order by 6 ... limit 7 ...;
举例:
案例:找出工资排名在第4到第9名的员工?select ename,sal from emp order by sal desc limit 3,6;
5、通用的标准分页sql?
每页显示3条记录:
第1页:0, 3 第2页:3, 3 第3页:6, 3 第4页:9, 3 第5页:12, 3每页显示pageSize条记录:
第pageNo页:(pageNo - 1) * pageSize, pageSizepageSize是什么?是每页显示多少条记录
pageNo是什么?显示第几页java代码{ int pageNo = 2; // 页码是2 int pageSize = 10; // 每页显示10条 limit (pageNo - 1) * pageSize, pageSize}
转载地址:http://fxuki.baihongyu.com/