您现在的位置:首页 >> 数据库 >> SQL语法 >> 内容

ORACLE的根本语法集锦--Java学习网

时间:2015-12-8 6:10:06

  核心提示:ORACLE的基本语法集锦-- 创建表create table XXXX (names varchar2(12), dates date, num int, dou double);-- 创建视图cr...

ORACLE的基本语法集锦 
-- 创建表 

create table XXXX (names varchar2(12), 
                   dates date, 
                   num   int, 
                   dou   double); 
-- 创建视图 
create or replace view vi_XXX as 
select * from test; 

-- 创建同义词 
create or replace synonym XXXX 
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 
declare 
begin 
   delete from test; 
   if sql%rowcount < 0 or sql%rowcount is null then 
      rais_replaction_err(-20004,"错误") 
   end if 
end 


create or replace trigger gg 
alter insert 
on test 
for each row 
declare 
begin 
   if 

ld.names = :new.names then 
      raise_replaction_err(-2003,"编码重复"); 
   end if 
end 


create or replace trigger hh 
for update 
on test 
for each row 
declare 
begin 
  if updating then 
     if 

ld.names <> :new.names then 
reaise_replaction_err(-2002,"关键字不能修改") 
     end if 
  end if 
end 

-- 定义游标 
declare 
   cursor aa is 
      select names,num from test; 
begin 
   for bb in aa 
   loop 
        if bb.names = "ORACLE" then 
        
        end if 
   end loop; 
   
end 

-- 速度优化,前一语句不后一语句的速度快几十倍 
select names,dates 
from test,b 
where test.names = b.names(+) and 
      b.names is null and 
      b.dates > date(''2003-01-01'',''yyyy-mm-dd'') 


select names,dates 
from test 
where names not in ( select names 
                       from b 
                      where dates > to_date(''2003-01-01'',''yyyy-mm-dd'')) 
                      

-- 查找重复记录 
select names,num 
from test 
where rowid != (select max(rowid) 
                 from test b 
                where b.names = test.names and 
                      b.num = test.num) 


-- 查找表TEST中时间最新的前10条记录 
select * from (select * from test order by dates desc) where rownum < 11 

-- 序列号的产生 
create sequence row_id 
minvalue 1 
maxvalue 9999999999999999999999 
start with 1 
increment by 1 

insert into test values(row_id.nextval,....) 

Java免费学习   Java自学网 http://www.javalearns.com

关注微信号:javalearns   随时随地学Java

或扫一扫

随时随地学Java

作者:不详 来源:网络
    你是从哪里知道本网站的?
  • 网友介绍的
  • 百度搜索的
  • Google搜索的
  • 其它搜索过来的
  • 网址输错了进来的
  • 太忙了不记得了
共有评论 0相关评论
发表我的评论
  • 大名:
  • 内容:
  • java学习网(www.javalearns.com) © 2014 版权所有 All Rights Reserved.
  • Email:javalearns@163.com 站长QQ:1356121699 晋ICP备14003680号-3
  • java学习网部分内容来自网络或网友发布,如侵犯了您利益,请发邮件至:javalearns@126.com,我们尽快处理!
  • Java学习网
  • 网站统计
  • 晋公网安备 14042902000001号