数据库function,view的使用
2016-07-02 17:50:44 访问(2542) 赞(0) 踩(0)
相关下载:数据库练习建表脚本简化版_SqlServer 数据库练习建表脚本简化版_Oracle
-
假定我们有学生表和班级表,关系如下图所示:
使用视图
我们要输出
学生姓名、班级名称、班级类型
通常SQL写法如下:
我们可以考虑用视图实现:
1、创建视图
执行SQL语句:
使用function
如果我想查看班级信息
班级名称、班级类型(中文)
通常SQL写法如下:
经常写case when比较麻烦,而且如果EmClassTypeV字典如果有更新,后续的脚本都需要跟着更新,不便于维护。
考虑用function实现。
创建function的脚本如下:
查询的SQL语句可写成:
简化很多。
如果只显示班级名称,不需要显示班级类型的话,可以通过function,不需要连表,相关SQL写法如下:
(创建function)
(执行SQL语句)
可以不需要连表查询数据,可以让“表哥”关注与主表的业务查询操作。
另:建表脚本下载
-
select
s.TheName,
c.TheName as c_TheName,
case c.EmClassTypeV
when 1 then '普通文科班'
when 2 then '普通理科班'
when 3 then '重点文科班'
when 4 then '重点理科班'
else '其它'
end as c_EmClassTypeV
from
UTB_EXAM_STUDENT s,
UTB_EXAM_CLASS c
where
s.ClassId = c.Id
order by c.Id, s.TheName
-
create or replace function FUN_EmClassType
(EmClassTypeV in integer) return varchar2
is
Result varchar2(255);
begin
select case EmClassTypeV
when 1 then '普通文科班'
when 2 then '普通理科班'
when 3 then '重点文科班'
when 4 then '重点理科班'
else '其它'
end into Result from dual;
return(Result);
end FUN_EmClassType;
-
create or replace function FUN_EXAM_CLASS__THENAME
(i_ID in number) return varchar2 is
Result varchar2(255);
begin
select
t.TheName into Result
from
UTB_EXAM_CLASS t
where
t.ID = i_ID;
return(Result);
end FUN_EXAM_CLASS__THENAME;
标签:
数据库function,view的使用 


上一条:
下一条:
相关评论
发表评论