ORACLE的一些查询
一、需要查询的数据
1
、查询出月薪大于
'SMITH'
的所有员工资料
select *from emp where
sal>(select sal from emp where name="SMITH");
2
、查询所有员工的姓名及领导姓名
select e1.ename,e2.ename from
emp e1,emp e2 where e1.mgr=e2.empno(+);
3
、查询出入职日期早于领导的所有员工编号,姓名,部门名称。
先查出员工姓名,领导姓名,入职时期
.
在题目
2
的基础上,多增加一个入职日期条件,增加
deptno
表,增加去除笛卡尔积的关联条件
select
e1.empno,e1.ename,e2.ename,d.dname from emp e1,emp e2,dept d where
e1.mgr=e2.empno(+) and e1.hiredate<e2.hiredate and e1.deptno=d.deptno;
4
、查出部门名称和部门员工信息
(
没有员工的部门也需要体现
)
select
d.dname,e.ename,e.job,e.mgr,e.hiredate,e.sal,e.comm,e.deptno
from
dept d,emp e
where
d.deptno=e.deptno(+);
5
、查出职位是“
CLERK
”的姓名及其部门名和部门人数
select
e.ename,d.dname,t.c
from emp e,dept d,(select
deptno,count(empno) c from emp where job='CLERK'
group by deptno) t
where e.job='CLERK' AND e.deptno=d.deptno
and e.deptno=t.deptno;
6
、查出最低工资大于
1500
的各种工作及其从事这些工作的全部员工人数。
已知条件:
min(sal)>1500
6.1
、查处每个部门中最低工资的员工信息。
select
deptno,min(sal) from emp group by
deptno;
6.2
、查出职位工资的最低工资大于
1500
的所有工作和工资。
Select
job,min(sal) from emp group by job having min(sal)>1500
6.3
、查询出所有职位,以及从事这个职位的人数。
Select
job,count(empno) from emp group by job;
6.4
合并出最后结果:
Select job,min(sal),count(empno) from
emp group by job having min(sal)>1500
相关文档:
SQL中的单记录函数
1.ASCII
返回与指定的字符对应的十进制数;
SQL> select ascii('A') A,ascii('a') a,ascii('0') zero,ascii(' ') space from dual;
A A ZERO ......
Oracle时间日期操作
sysdate+(5/24/60/60) 在系统时间基础上延迟5秒
sysdate+5/24/60 在系统时间基础上延迟5分钟
sysdate+5/24 在系统时间基础上延迟5小时
sysdate+5 在系统时间基础上延迟5天
add_months(sysdate,-5) 在系统时间基础上延迟5月
add_months(sysdate,-5*12) 在系统时间基础上延迟5年
上月末的日期:sel ......
1、安装
2、创建“本地Net服务名”
3、PLSQL Developer 连接测试
4、创建表空间
1.打开sqlplus工具:
sqlplus /nolog
2. 连接数据库:
conn /as sysdba
3. 创建表空间:
create tablespace camds datafile 'D:\oracle\product\10.2.0\oradata\camds\camds.dbf' size  ......
在数据库服务器上,建立了一个用户test,然后使用命令drop user test cascade删除了用户,接着也删除了这个用户的数据文件/opt/oracle/oradata/test/testdata.dbf。当在登录数据库时,能够启动实例,但是打不开数据库,系统报错:
ORA-01157: c ......