CUUG官方博客: CUUG官网_CUUG怎么样_CUUG培训就业怎么样_CUUG学Oracle要多少钱

sql作业 第2章.对数据进行限定和排序

 

第二章.对数据进行限定和排序

一.总结

1.to_date(‘日期’,’日期格式’);

   select * from emp where hiredate=to_date('1980-12-17', 'yyyy-mm-dd');

2.数据库默认日期格式

 desc databast_properties;

 select property_name,property_vlaus from database_properties where property_name

 =’NLS_DATE_FORMAT’;

3. 当前会话默认日期格式

desc v$nls_parameters;

  select * from v$nls_parameters where parameter='NLS_DATE_FORMAT';

4.修改当前会话的日期格式

  alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss';

  select sysdate from dual;

5.(not)between 小 for 大 ; 查询(不)在某一范围的行,包括边界

 select ename,sal from emp where sal between 100 and 1500;

6. in 检验一个值是否在一个列表中

select ename,mgr from emp where mgr in (7902,7566,7788);

  select ename,mgr from emp where mgr not in (7902,7788);

7. like 模糊查询,结合通配符

   select * from emp where ename like '%MI%';     // %匹配多个

   select * from emp where ename like '_MI%';     // _匹配一个

   select * from emp where ename like '%\_%' escape '\';   // \…escape’\’转义

   like后第一个字符是通配符不走索引,模糊查询,想要索引生效,要给出前面的字符串。

8.is null 或者 is not null

   select * from emp where comm is null;

   select * from emp where comm is not null;

9.not  and   or

10.ed 将缓存的语句用vi打开

11.order by 排序

desc 降序,asc 升序;order by 列名, order by 别名, order by 列序号。

Select 中最后一个字句

    包含 null 值的列排序时, 默认把 null 值看做无限大:
默认  在升序排序时, nulls last
      在降序排序时, nulls first
 

    select ename,job,comm from emp order by job, comm desc nulls last;


二.作业

1.查询员工的姓名和工资,要求工资大于$2850.
select ename,sal from emp where sal > 2850;
2.查询员工的姓名和工资,要求工资在$1500 和$2850 之间.
select ename,sal from emp where sal between 1500 and 2850;
3.查询员工的姓名和工资,要求工资不在$1500 和$2850 之间,按工资升序排序.
select ename,sal from emp where sal not between 1500 and 2850
order by sal asc;
4.查询出部门号为 10 和 30 的所有员工的姓名、工作、入职时间, 按照入职时
间的降序排序。
select ename,job,hiredate from emp where deptno in (10,30)
order by hiredate desc;
5. 查询出姓名中第二个字母为: 'A'的所有员工姓名。
select ename from emp where ename like '_A%';
6. 查询员工的姓名、工作、工资,要求工作是 Clerk 或 Analyst,并且工资不等
于$1000、 $3000、 $5000。
select ename,job,sal from emp where job in ('CLERK','ANALYST') and
sal not in (1000,3000,5000);



 

 

作者:江湖小骗子 分类:学员作业 浏览:315 评论:0
留言列表
发表评论
来宾的头像

点击关闭
  • 在线客服