ORACLE数据库的基本语法集锦
-- 表
create table test (names varchar2(12),
dates date,
num int,
dou double);
-- 视图
create or replace view vi_test as
select * from test;
-- 同义词
create or replace synonym aa
for dbusrcard001.aa;
-- 存储过程
create or replace produce dd(v_id in employee.empoy_id%type)
as
begin
end
dd;
-- 函数
create or replace function ee(v_id in employee%rowtype) return varchar(15)
is
var_test varchar2(15);
begin
return var_test;
exception when others then
end
-- 三种触发器的定义
create or replace trigger ff
alter delete
on test
for each row
decla ......
分析函数,最早是从ORACLE8.1.6开始出现的,它的设计目的是为了解决诸如“累计计算”,“找出分组内百分比”,“前-N条查询”,“移动平均数计算”"等问题。其实大部分的问题都可以用PL/SQL解决,但是它的性能并不能达到你所期望的效果。分析函数是SQL言语的一种扩充,它并不是仅仅试代码变得更简单而已,它的速度比纯粹的SQL或者PL/SQL更快。现在这些扩展已经被纳入了美国国家标准化组织SQL委员会的SQL规范说明书中。
分析函数是在一个记录行分组的基础上计算它们的总值。与集合函数不同,他们返回各分组的多行记录。行的分组被称窗口,并通过分析语句定义。对于每记录行,定义了一个“滑动”窗口。该窗口确定“当前行”计算的范围。窗口的大小可由各行的实际编号或由时间等逻辑间隔确定。
除了ORDER BY(按…排序)语句外,分析函数是一条查询被执行的操作。所有合并、WHERE、GROUP BY、HAVING语句都是分析函数处理之前完成的。因此,分析函数只出现在选择目录或ORDER BY(按…排序)语句中。
前期数据准备:
create table EMP
(
......
update customers a
set city_name=(select b.city_name from tmp_cust_city b where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
-- update 超过2个值
update customers a
set (city_name,customer_type)=(select b.city_name,b.customer_type
from tmp_cust_city b
where b.customer_id=a.customer_id)
where exists (select 1
from tmp_cust_city b
where b.customer_id=a.customer_id
)
========================
select * from path p,sd_mapnodes a
where p.aendnode=a.nm_node_id
update path p
set p.aendnode=(select s.ems_node_id from sd_mapnodes s where s.nm_node_id=p.aendnode)
where exists (select 1 from sd_mapnodes s where s.nm_node_id=p.aendnode)
select * from pathtrace pt,sd_mapnodes a
where pt.anode_id=a.nm_node_id
update pathtrace r
set (r.anode_id,r.znode_id)=(select s.ems_node_id,s.ems_node_id from sd_mapnodes s where s.nm_node_id=r.anode_id)
where exists (select 1 from sd_mapnodes s where s.nm_node_id=r.ano ......
Oracle存储空间管理
1.查看每个数据文件的剩余表空间(一个表空间只对应N个数据文件,N一般等于1)
主要是利用表dba_free_space(表空间剩余空间状况)和dba_data_files(数据文件空间占用情况)
select b.file_id "文件ID",
b.tablespace_name "表空间名",
b.file_name "物理文件名",
b.bytes/1024/1024 "总字节数(M)",
(b.bytes-sum(nvl(a.bytes,0)))/1024/1024 "已使用(M)",
sum(nvl(a.bytes,0))/1024/1024 "剩余(M)",
sum(nvl(a.bytes,0))/(b.bytes)*100 "剩余%"
from dba_free_space a,dba_data_files b
where a.file_id=b.file_id
group by b.tablespace_name,b.file_name,b.file_id,b.bytes
--order by b.tablespace_name
order by "剩余%";
2.查看分配给一个表的物理空间数量,而不管空间是否被使用
方法一:
select segment_name, bytes/1024/1024 "空间大小(M)"
from user_segments
where segment_type = 'TABLE'
and segment_name='TAS_AUDIT_HISTORY';
方法二:
Select Segment_Name ......
本文通过对Oracle数据库锁机制的研究,首先介绍了Oracle数据库锁的种类,并描述了实际应用中遇到的与锁相关的异常情况,特别对经常遇到
的由于等待锁而使事务被挂起的问题进行了定位及解决,并对死锁这一比较严重的现象,提出了相应的解决方法和具体的分析过程。
数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能
会读取和存储不正确的数据,破坏数据库的一致性。
加锁是实现数据库并发控制的一个非常重要的技术。当事务在对某个数据对象进行操作前,先向系统发出请求,对其加锁。加锁后事务就对该数据对象有了一
定的控制,在该事务释放锁之前,其他的事务不能对此数据对象进行更新操作。
在数据库中有两种基本的锁类型:排它锁(Exclusive Locks,即X锁)和共享锁(Share
Locks,即S锁)。当数据对象被加上排它锁时,其他的事务不能对它读取和修改。加了共享锁的数据对象可以被其他事务读取,但不能修改。数据库利用这两
种基本的锁类型来对数据库的事务进行并发控制。
在实际应用中经常会遇到的与锁相关的异常情况,如由于等待锁事务被挂起、死锁等现象,如果不能 ......
Oracle的每门认证考试是135美金,共有5门考试,所有的考试费用再加上一些其它费用(书、培训等等),要想通过Oracle认证考试本身就是一笔不小的投资,但是,从今天的就业市场来看,得到的回报还是值得的。
很多人都希望在IT领域得到像Oracle DBA那样的高薪——年薪75,000$到140,000$.对于Oracle DBA的资深人士来讲,他们的年薪已经涨到了300,000$.很多学员都认为通过了Oracle的认证,也就得到了Oracle数据库领域的通行证。但是,Oracle认证只是那些有远见卓识的老板的评判标准之一。
很多IT专业人士都不相信Oracle DBA在除技术之外还有更高的含金量。通常情况下,Oracle DBA可以负责数据库设计、运行、备份以及恢复,同时还要密切关注整个项目开发的全过程。因此,一名成功的Oracle DBA既要具有过硬的技术水平,又要有出色的协调能力,同时,对于操作系统以及计算机理论的深入了解也是必须的。因此,DBA必须要具有计算机专业、通信专业、商务管理专业的学士或硕士学位。
而OCP认证考试在Oracle管理领域内是衡量一个人专业技术水平掌握程度的一个很好的标准,但有了OCP证书并不等于你就学会了Oracle专业技术,很多获得OCP证书,不能够完全理解Oracle管理 ......