Oracle数据库学习教程
过滤和排序数据
1.where条件过滤
SQL> select * from emp where deptno=10
SQL> select * from emp where ename= 'KiNg '
//注意字符串区分大小写
SQL>select * from emp where hiredate= '17-11月-81 ';
//注意系统日期格式
1.1日期格式
获取系统当前日期格式:SQL> select * from v$nls_parameters
(数据字典,类似于tab)
设置列宽度:SQL> col parameter for a30
修改日期格式:
SQL> alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd '
再次查询:
SQL> select * from emp where hiredate= '1981-11-17;'
显示带有时间的日期:
SQL> alter session set NLS_DATE_FORMAT = 'yyyy-mm-dd hh24:mi:ss'
再次查看系统时间:
SQL> select sysdate from dual
改回系统默认格式:
SQL> alter session set NLS_DATE_FROMAT = 'DD-MON-RR '
- 字符和日期要包含在单引号中。
- 字符大小写敏感,日期格式敏感。
- 默认的日期格式是 DD-MON-RR
1.2比较运算
- 普通比较运算符
- 等于:=
- 大/小于:>/<
- 大/小于等于:>=/<=
- 不等于:<>/!=
- between...and: 介于两者之间
- 包含边界
- 小值在前,大值在后
- in:在集合中(not in)
where i=10 or i=20
==>where i in(10,20)
- 如果结果有NULL值,可以使用in,不能使用not in
- like:模糊查询
- %:匹配多个字符
- _:匹配一个字符
- 用到%和_的时候,需要转义:% _
1.3逻辑运算
- AND 逻辑并
- OR 逻辑或
- NOT 逻辑非
2.order by排序
2.1 order by子句
- ASC 升序,默认的
- DESC 降序
select * from emp order by empno desc
如果升序,则可以不写
- 可以作用于多列,一起排:
by 列一,列二
- 如果是降序,
by 列一 desc,列二 desc
可以只用last把null反到最后,注意是nulls
select * from emp order by comm desc nulls last