Oracle小知识汇总

输入参数

carid in (&carids)

输入日期范围

trunc(e.startdate) between date '&datefrom' and date '&dateto''

and中需要带选择时

and (o.orgid in (&orgids) or o.parentorgid in (&orgids))

创建数据库唯一的索引

create unique index 索引名 on 表名 (列名);
create unique index sname on S(sname)

删除唯一性约束

ALTER TABLE table_name DROP CONSTRAINT constraint_name;
alter table j drop constraint jname

创建检查约束条件(check)

查询总个数

select count(1) from p;

分类查询个数

select pno,count(*) from spj group by spj.pno;

查询零件名以“螺”字开头的零件信息

select * from p where pname like '螺%';

查询平均数

select avg(weight) from p;

创建视图

create or replace view spj_view
as 
select s.sname, p.pname, j.jname, p.color, j.city, spj.qty from s,p,j,spj
where spj.sno=s.sno and spj.pno=p.pno and spj.jno=j.jno;

创建存储过程

create or replace procedure pro_s(no s.sno%type,name s.sname%type,city s.city%type)
as
       cou number;
begin
   select count(*) into cou from s where no = s.sno;
   if cou=0 then
      insert into s values(no,name,city);
      dbms_output.put_line('增加成功');
   else
      dbms_output.put_line('增加失败');
   end if;
end;
存储过程调用
begin
PRO_S('S11','精益4','天津');
end;
begin
  PRO_S('S13','为民2','上海');
end;

外连接

在等值连接的基础上加上被连接表的不匹配数据。

  • 左连接(以左边的数据为基准)
    (1)left joinleft outer join
    (2)条件a=b(+),以a表数据为基准。
  • 右连接(以右边的数据为基准)
    (1)right joinright outer join
    (2)条件a(+)=b,以b表为基准。
  • 全外连接
    在等值连接的基础上将左表和右表的未匹配数据都加上。
    (1)full outer join或者full join
    等价写法:对同一张表先做左连接,然后右连接。

内连接(等值连接)

选出两表中互相匹配的记录。

  • 直接等式
SELECT * 
FROM TESTA,TESTB
WHERE TEST A.A=TESTB.A
  • 使用inner join
SELECT * 
FROM TEST A  inner join TEST B
on TEST A.A=TEST B.A

你可能感兴趣的:(Oracle小知识汇总)