字符和日期
--字符和日期都要包含在单引号中
--字符大小写敏感,日期格式敏感
--默认的日期格式是DD-MON-RR
--查询当前系统时间
SQL> select sysdate from dual;
--查询工资在1000~2000之间的员工信息
SQL> select * from emp where sal>=1000 and sal<2000;
SQL> select * from emp where sal between 1000 and 2000;
--查询10号和20号部门的员工信息
SQL> select * from emp where deptno in (10,20);
--注意:in关键字后面是一个集合,11号部门不会被搜索出来
--查询不是10号和20号部门的员工信息
SQL> select * from emp where deptno not in (10,20);
like关键字
--使用like运算选择类似的值
--选择条件可以包含字符或数字
%代表零个或者多个字符(任意个字符)
_代表一个字符
--查询员工信息(名字中含有m字符的)
SQL> select * from emp where ename like '%M%';
--注意:单引号中的字符区分大小写
--查询员工信息(名字中含有4个字符的)
SQL> select * from emp where ename like '____';
关键字escape
--回避特殊符号:使用转义字符
--查询名字中含有'_'的字符串
SQL> select * from emp where ename like '%\_%' escape '\';
空值的第三点:如果集合中含有空值,不能使用not in 操作符,但是可以使用in操作符
--注意null不是空值
SQL> select * from emp where deptno in (10,null);
--注意in关键字下sql会自动忽略null
SQL> select * from emp where deptno not in (10,null);
--not in关键字下使用null无法查出任何数据
order by子句
--使用order by子句排序
ASC:升序(默认)
DESC:降序
--order by子句在select语句结尾
--order by后面 +列名 表达式 别名 序号
--查询10号部门员工信息,按薪水排序
SQL> select * from emp where deptno=10 order by sal desc;
--按别名排序
SQL> select ename,sal*12 年薪 from emp where deptno=10 order by 年薪 desc;
--按表达式排序
SQL> select * from emp where deptno=10 order by sal*12 desc;
--按序号排序
SQL> select * from emp where deptno=10 order by 1 desc;
--注意sql语句中列的序号从1开始,不是0
--多列排序
SQL> select * from emp order by deptno desc,sal;
先按部门降序排序,再按工资升序排序
空值的第四点:排序时,如果将空值排在最后
SQL> select * from emp order by comm desc;
EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO
------ ---------- --------- ---------- ------------ ------ ------ ------
2
7934 MILLER CLERK 7782 23-1月 -82 1300 10
7369 SMITH CLERK 7902 17-12月-80 800 20
1 ton_abc 8000 10
7902 FORD ANALYST 7566 03-12月-81 3000 20
7900 JAMES CLERK 7698 03-12月-81 950 30
7876 ADAMS CLERK 7788 23-5月 -87 1100 20
7566 JONES MANAGER 7839 02-4月 -81 2975 20
7698 BLAKE MANAGER 7839 01-5月 -81 2850 30
7782 CLARK MANAGER 7839 09-6月 -81 2450 10
7788 SCOTT ANALYST 7566 19-4月 -87 3000 20
7839 KING PRESIDENT 17-11月-81 5000 10
7654 MARTIN SALESMAN 7698 28-9月 -81 1250 1400 30
7521 WARD SALESMAN 7698 22-2月 -81 1250 500 30
7499 ALLEN SALESMAN 7698 20-2月 -81 1600 300 30
7844 TURNER SALESMAN 7698 08-9月 -81 1500 0 30
--需要加上关键字nulls last
SQL> select * from emp order by comm desc
2 nulls last
3 ;