现在的位置: 首页 > 综合 > 正文

Oracle简单使用

2013年08月26日 ⁄ 综合 ⁄ 共 1783字 ⁄ 字号 评论关闭

 增删改 触发器 信息添加

create or replace TRIGGER hz_test_trigger
after insert or update or delete ON hz_test   
FOR EACH ROW
declare
v_type HZ_TEST_LOG.L_TYPE%type;
begin
if inserting then
 v_type:='insert';
 insert into hz_test_log values(user,v_type,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),:new.t_id,:new.t_name,:new.t_age,:new.t_sex,SQE_HZ_TEST_LOG.nextval);
elsif updating then
 v_type:='updateOld';
 insert into hz_test_log values (user,v_type,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),:old.t_id,:old.t_name,:old.t_age,:old.t_sex,SQE_HZ_TEST_LOG.nextval);
 v_type:='updateNew';
 insert into hz_test_log values (user,v_type,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),:new.t_id,:new.t_name,:new.t_age,:new.t_sex,SQE_HZ_TEST_LOG.nextval);
elsif deleting then
 v_type:='delete';
 insert into hz_test_log values (user,v_type,to_char(sysdate,'yyyy-mm-dd hh24:mi:ss'),:old.t_id,:old.t_name,:old.t_age,:old.t_sex,SQE_HZ_TEST_LOG.nextval);
end if;
end;

 

合并查询保留表一和表二所有记录,重复记录只保留一条
select * from dbo.Meeting1
union
select * from dbo.Meeting2
合并查询保留表一和表二所有记录
select * from dbo.Meeting1
union all
select * from dbo.Meeting2
交并查询只保留表一和表二的相同项记录
select * from dbo.Meeting1
intersect
select * from dbo.Meeting2
交减查询只保留表一多出表二的记录
select * from dbo.Meeting1
except
select * from dbo.Meeting2

数据类型转换:to_date('','YYYY-MM-DD HH24:MI:SS') to_number('') to_char('')

排序升/降序
select * from table order by column asc/desc

数据表联合内连接
table1 inner join table2 on table1.Id=table2.Id

LEFT JOIN 或 LEFT OUTER JOIN。
左向外联接的结果集包括 LEFT OUTER 子句中指定的左表的所有行,而不仅仅是联接列所匹配的行。如果左表的某行在右表中没有匹配行,则在相关联的结果集行中右表的所有选择列表列均为空值。

RIGHT JOIN 或 RIGHT OUTER JOIN。
右向外联接是左向外联接的反向联接。将返回右表的所有行。如果右表的某行在左表中没有匹配行,则将为左表返回空值。

FULL JOIN 或 FULL OUTER JOIN。
完整外部联接返回左表和右表中的所有行。当某行在另一个表中没有匹配行时,则另一个表的选择列表列包含空值。如果表之间有匹配行,则整个结果集行包含基表的数据值。

仅当至少有一个同属于两表的行符合联接条件时,内联接才返回行。内联接消除与另一个表中的任何行不匹配的行。而外联接会返回 FROM 子句中提到的至少一个表或视图的所有行,只要这些行符合任何 WHERE 或 HAVING 搜索条件。将检索通过左向外联接引用的左表的所有行,以及通过右向外联接引用的右表的所有行。完整外部联接中两个表的所有行都将返回。

 

抱歉!评论已关闭.