oracle--知识点汇总

Posted Ipeter

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle--知识点汇总相关的知识,希望对你有一定的参考价值。

建表:
select * from fruit; create table fruit ( id varchar(10) not null, name varchar(20) default ‘‘ not null , price varchar(150) default ‘‘ not null , area varchar(2000) default ‘‘ not null , primary key (id) ) insert into fruit (id,name,price,area) values(1,‘西瓜‘,‘23‘,‘厦门‘);

create table book
(
  bid number primary key,  --建立主键的同时,自动建立唯一索引
  bname varchar2(20) not null,
  price number check(price>=0) not null
)


insert into book values(‘1‘,‘西游记‘,‘100‘);
insert into book values(‘2‘,‘三国演义‘,‘100‘);
insert into book values(‘3‘,‘东游记‘,‘100‘);


--显式在bname列上建立唯一索引
create unique index book_bname_index on book(bname)

--在查询时指定索引
select * /*+index(book_bname_index)*/ from book;

--如何重建索引
alter index book_bname_index rebuild;

  

  

同义词:
-- e是scott.emp表的临时别名
select e.*  from (select * from scott.emp) e;


--创建私有同义词
create synonym myemp for scott.emp;
select * from system.myemp;

--创建公有同义词
create public synonym pub_emp for scott.emp;

--使用公有同义词
select * from pub_emp;

  

PLSQL:

declare
--声明
name varchar2(20);
age number:=20;--声明的同时进行初始化
sex varchar2(20);
birthday date;--日期类型
begin
--变量的赋值语句
name:=‘老白‘;
age:=‘&age‘;
sex:=‘&sex‘;
--将字符串2013-09-08,按照yyyy-mm-dd格式转成date类型
birthday:=to_date(‘2013-09-08‘,‘yyyy-mm-dd‘);
dbms_output.put_line(‘姓名:‘||name||‘;年龄:‘||age||‘;性别:‘||sex);
--将date类型的birthday变量,按yyyy-mm-dd 转成字符串输出
dbms_output.put_line(‘出生日期:‘||to_char(birthday,‘yyyy-mm-dd‘));
end;

  

IF:

--多条件选择
declare
 age number;
begin
 age:=‘&a‘;  --输入年龄
  if (age<12) then
  dbms_output.put_line(‘小屁孩‘);
  elsif (age<18) then
  dbms_output.put_line(‘小骚年‘);
   else 
  dbms_output.put_line(‘中老年‘);
   end if;  
end;

-- 嵌套的if
declare
  isman varchar2(20);
  hobby varchar2(20);  
begin
 isman:=‘&isman‘;
 if(isman=‘男‘) then
   hobby:=‘&hobby‘;
   if(hobby=‘篮球‘) then
     dbms_output.put_line(‘男生都喜欢打篮球‘);
   else
      dbms_output.put_line(‘作为男生,你应该去打篮球‘);
   end if;
  else 
     dbms_output.put_line(‘我不了解女生!‘);
 end if;
 end;
 

  

CASE:

 --case 用法1--多条件判断
--相当于  elsif 或switch

declare
 season varchar2(20);
begin
 season := ‘&season‘;
 
 case season 
   when ‘春天‘ then 
     dbms_output.put_line(‘春暖花开‘);
   when ‘夏天‘  then
     dbms_output.put_line(‘炎炎夏日‘);
   when ‘秋天‘  then
     dbms_output.put_line(‘要穿秋裤‘);
   when ‘冬天‘  then
     dbms_output.put_line(‘白雪皑皑‘);     
   else
     dbms_output.put_line(‘输入有误!‘);
   end case; 
end;

--case 用法2--值的转换输出
create table sex
(
  sexid number primary key,
  sexvalue varchar2(10) not null unique
)  

insert into sex values(‘1‘,‘10‘);
insert into sex values(‘2‘,‘20‘);
insert into sex values(‘3‘,‘30‘);
insert into sex values(‘4‘,‘40‘);


--对指定的字段进行case转义。必须等值,且类型一致。
select sexid, 
case  sexvalue
      when ‘10‘ then ‘男性‘
      when ‘20‘ then ‘女性‘
      when ‘30‘ then ‘未知‘ 
      else ‘未知性别‘
  end as 性别
 from sex;

  

LOOP:

-- loop 循环
declare
  i number:=1;
 begin
    loop 
      dbms_output.put_line(‘第‘||i||‘行‘);
      i:=i+1;    
      exit when i=10; -- 相当于break
    end loop;  
 end;
 
 
 -- for循环.计算1+3+...+97的和。 
 declare
  i number;
  s number:=0;
 begin
   for i in  1..49  loop
    s:=s+2*i-1;
   end loop;
   dbms_output.put_line(‘sum=‘||s); 
 end;
 

 /*使用while循环画出    
   *
  * *
 * * *  
 
 * 
 * * 
 * * *
  */
  declare
    n number;
    i number:=1;
    j number:=1;
  begin
    n:=‘&请输入n‘;
    
    while(i<=n) loop
       --打空格
       while(j<=n-i) loop
       dbms_output.put(‘ ‘);            
       j:=j+1;       
       end loop;
       j:=1;
       --打*
       while(j<=i) loop
       dbms_output.put(‘* ‘);            
       j:=j+1;       
       end loop;
       dbms_output.put_line(‘‘);
       j:=1;--回到第1列
       i:=i+1;
    end loop;
  end;
  
  
 
 
 

  




以上是关于oracle--知识点汇总的主要内容,如果未能解决你的问题,请参考以下文章

oracle教程:PLSQL常用方法汇总

oracle数据库基础知识汇总—30天

sql Oracle代码片段

Oracle 默认用户汇总

如何在 Toad for Oracle 中使用自定义代码片段?

android小知识点代码片段