查询当前数据库系统时间(sysdate)
select sysdate from dual;
dual是Oracle提供的最小的工作表,只有一行一列,具有某些特殊功用。称为'伪表'.因为他不存储主题数据;
他的存在,是为了操作上的方便.因为select 都是要有特定对象的.(from 对象表名);
但如果我们不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过select 完成时,就要借助一个对象,这个对象,就是dual;
例如计算,拼接字符串都可以使用dual对象。
一道题:
找出部门10中所有经理和部门20中所有办事员的详细资料
select * from emp where (deptno = 10 and job = 'MANAGER')or(deptno = 20 and job = 'CLERK');
条件查询where后多个条件可以直接用and或者or连接,在sql系统中or的前后条件不需要加括号
两道题:
找出部门10中所有经理、部门20中所有办事员以及既不是经理又不是办事员但薪资大于或等于2000的所有雇员的详细资料
select * from emp
where (deptno = 10 and job = 'MANAGER') or (deptno = 20 and job= 'CLERK') or (job != 'MANAGER' and job != 'CLERK' and sal>=2000);
三道题:
显示所有员工的姓名、部门编号和薪资,部门编号降序排列,同部门员工以薪资升序排列
select ename, deptno,sal from emp order by deptno desc,sal ;
order by 后若有多个条件则直接用逗号连接