oracle 笔记
1. SQL 语句与SQL*Plus 命令
SQL
SQL*Plus
一种语言
一种环境
ANSI标准
Oracle 的特性之一
关键字不能缩写
关键字可以缩写
使用语句控制数据库中的表的定义信息
和表中的数据
命令不能改变数据库中的数据的值
集中运行
2.以下几个查询很重要,仔细体会
1 (有员工的城市)各个城市的平均工资
select city,avg(salary) from employees e,departments d locations l
where e.department_id = d.department_id and d.location_id = l.location_id group by city;
2 查询哪些城市有员工,哪些城市没有员工
select city from employees e,departments d,locations l
where e.department_id = d.department_id and d.location_id = l.location_id
group by city having count(employee_id) > 0
1)组函数不能放在 where子句中, 需要放在 having 子句中
2) 需按 city 进行分组
3 manager 中最高工资是谁 manager 中最低工资是多少 manager 中平均工资是多少
首先要确定哪些人是manager
公司有哪些人是 manager :
方案1
select distinct m.employee_id,m.last_name from employees e,employees m
where e.manager_id = m_employee_id order by m.employee_id
方案2
select distinct manager_id from employees where manager_id is not null order by manager_id
平均工资:
select avg(m.salary) from employees e,employees m
where e.manager_id = m.employee_id order by m.employee_id
最高工资:
/*
select max(m.salary) from employees e,employees m
where e.manager_id= m.employee_id order by m.employee_id
*/
可以用子查询
select last_name,salary from employees where salary =
(select max(m.salary) from employees e,employees m where e.manager_id = m.employee_id )
order by employee_id
5. 选择所有员工的姓名,员工号,以及他的管理者的姓名和员工号,结果类似于下面的格式
--------------------
相关文档:
关于存储过程和函数的定义网上一搜一大把,这里就不特殊介绍了,这里就只对我自己写的几种格式的存储过程和函数做一些总结,希望对大家有点帮助。
一:存储过程
1:最普通的一种。(传参,查询游标,执行,循环游标做插入动作)。
create or replace procedure zy2040_sirole(rolekey in varchar2) ......
declare
msg varchar(1000); --定义一个变量用于显示传出的信息
begin
PRO_TACCOUNT_RECOUNT ('B9D2B59A955541298D59EA8C35668CFD',msg); --执行存储过程
dbms_output.put_line(msg); --输出变量
end; ......
界面开发人员报有很多重复数据在用户权限表。然后我删除了表数据delete 方式,修改了对应的存储过程使之不重复!
后来发现 重新拉回的数据没权限。 只好闪回到今天凌晨了!
SQL> ALTER TABLE BA.T_POWER_ADMIN ENABLE ROW MOVEMENT;
Table altered
SQL> flashback table ba.t_Power_Admin to tim ......
oracle% sqlplus /nolog
SQL> conn / as sysdba
数据库的物理文件
数据文件
select file_name from dba_data_files;
控制文件
select name from v$controlfile;
日志文件
select member from v$logfile;
---------------------------------------------------------
......