`
lushuaiyin
  • 浏览: 681009 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

数据库sql经验--视图的创建实例

 
阅读更多

本人工作中亲自写的视图,看看例子胜于废话一堆:

create or replace view v_stu_work as
select h."ID",h."APPRAISE_STATE",h."CRAPPRAISE_STATE",h."STUCODE",h."SUBMIT_STATE",h."LESSON_ID",
h."STU_SATISFIED_DEGREE",h."ASSISTANT_ID",h."TEACHER_ID",h."RANK",h."SORT",h."APPRAISE",h."WORK_NUM",
h."WORK_DESCRIPTION",h."WORK_PICTURE",h."GUIDE_DESCRIPTION",h."WORK_CATEGORY",h."WORK_SCORE",
h."CR_APPRAISE",h."ADD_DATE",h."GUIDE_DESCRIPTION_DATE",h."CR_APPRAISE_DATE",h."SCORE_TA",h."WORK_TITLE",
h."LECTURENAME",h."DELECTURE_ID",h."COURSENAME",h."COURSE_ID",h."CLASSNAME",h."CLASS_ID"
,case
when k.cr_id is null then null
  else k.cr_id
  end  crid
  ,case
  when k.cr_id is null then null
    else (
        select j.REAL_NAME from ps_user j
        where j.USER_ID=k.cr_id
      )
      end crname
from
(
  select a."ID",
  case
    when a.appraise is not null then 'Y'
      else 'N'
        end "APPRAISE_STATE",
        case
    when a.cr_appraise is not null then 'Y'
      else 'N'
        end "CRAPPRAISE_STATE",a."STUCODE",a."SUBMIT_STATE",a."LESSON_ID",a."STU_SATISFIED_DEGREE",a."ASSISTANT_ID",a."TEACHER_ID",a."RANK",a."SORT",a."APPRAISE",a."WORK_NUM",a."WORK_DESCRIPTION",a."WORK_PICTURE",a."GUIDE_DESCRIPTION",a."WORK_CATEGORY",a."WORK_SCORE",a."CR_APPRAISE",a."ADD_DATE",a."GUIDE_DESCRIPTION_DATE",a."CR_APPRAISE_DATE",a."SCORE_TA",a."WORK_TITLE",g.lecturename,g.lesson_id delecture_id,g.coursename,g.course_id,g.classname,g.class_id
   from stu_workinfo a,
  (
      select c.*,d.name lecturename,e.name coursename,f.class_name classname from
      stu_lesson c,stu_deflesson d,
      stu_course e,stu_class f
      where c.lesson_id=d.id
      and c.course_id=e.id
      and c.class_id=f.id
  ) g
  where a.lesson_id=g.id
) h,stu_student k
where h.stucode=k.stucode;


CREATE OR REPLACE VIEW V_STU_CR AS
SELECT A."USER_ID",A."REAL_NAME",A."USER_NAME",A."PASSWORD",A."USER_TYPE",A."SEX",A."CERT_TYPE",A."CERT_NUM",A."EMAIL",A."PHONE",A."MOBILE",A."ADDRESS",A."POSTCODE",A."JOB_TITLE",A."STATUS",A."POS_NUM",A."CTIME",A."DAYS",B."USERS_ID",B."BIRTHDATE",B."DEGREE",B."TITLE_INFO",B."PHOTO",B."EMPIRIC_VALUE",B."FEATURE",B."CUS_SATISFIED_DEGREE",B."TEACH_SERVER_SATISFIED_DEGREE",B."ORDER_NUM",B."POPULAR",B."OLD_SATISFIED",B."TEACHING_LEVEL",B."TEACHING_STORY",B."HUMOR_INDEX",B."EMOTION_INDEX",B."PHILOSOPHY_INDEX",B."SIMPLE_INDEX",B."TEACHING_COURSE",B."CR_LEVEL",B."REMARK",B."ENTRY_DATE",
CASE
     WHEN H.DEPT_TYPE='DQ' THEN H.dept_id
END  DQ_ID,
CASE
     WHEN H.CENTER_TYPE='ZX' THEN H.CENTER_ID
END  ZX_ID,
D.FLAG ROLE_FLAG
FROM YGWOA.PS_USER A LEFT OUTER JOIN STU_USEREXPAN B ON A.USER_ID=B.USERS_ID,
PS_ROLE_USER C,PS_ROLE D,ps_view_dept_position H
WHERE A.USER_ID=C.USER_ID and C.ROLE_ID=D.ID AND A.USER_ID=H.user_id
AND D.FLAG='CR';

CREATE OR REPLACE VIEW V_STU_TA AS
SELECT H."USER_ID",H."REAL_NAME",H."BIRTH_DATE",H."USER_NAME",H."PASSWORD",H."USER_TYPE",H."SEX",H."CERT_TYPE",H."CERT_NUM",H."EMAIL",H."PHONE",H."MOBILE",H."ADDRESS",H."POSTCODE",H."JOB_TITLE",H."STATUS",H."POS_NUM",H."CTIME",H."DAYS",H."USERS_ID",H."BIRTHDATE",H."DEGREE",H."TITLE_INFO",H."PHOTO",H."EMPIRIC_VALUE",H."FEATURE",H."CUS_SATISFIED_DEGREE",H."TEACH_SERVER_SATISFIED_DEGREE",H."ORDER_NUM",H."POPULAR",H."OLD_SATISFIED",H."TEACHING_LEVEL",H."TEACHING_STORY",H."HUMOR_INDEX",H."EMOTION_INDEX",H."PHILOSOPHY_INDEX",H."SIMPLE_INDEX",H."TEACHING_COURSE",H."CR_LEVEL",H."REMARK",H."ENTRY_DATE"
,CASE
     WHEN H."EDIT_DATE" is null THEN to_date('1111-11-11','yyyy-mm-dd')
       ELSE H."EDIT_DATE"
END  EDIT_DATE,
CASE
     WHEN K.DEPT_TYPE='DQ' THEN K.DEPT_ID
END  DQ_ID,
CASE
     WHEN K.CENTER_TYPE='ZX' THEN K.CENTER_ID
END  ZX_ID
,K.FLAG ROLE_FLAG
,K.DEPT_AREA
from

(
select A.*,B.*
FROM PS_USER A LEFT OUTER JOIN STU_USEREXPAN B ON A.USER_ID=B.USERS_ID
) H,
(
    select t.*,a.role_id,a.user_id user_id2,b.id bid,b.flag  from ps_view_dept_position t ,ps_role_user a ,ps_role b
  where t.DEPT_TYPE='DQ' and t.CENTER_ID is null  and t.user_id=a.user_id and  a.role_id=b.id and b.flag in ('TA','STU_TA')
) K
WHERE H.USER_ID=K.USER_ID;

CREATE OR REPLACE VIEW V_STU_TEACHER AS
SELECT A."USER_ID",A."REAL_NAME",A."USER_NAME",A."BIRTH_DATE",A."PASSWORD",A."USER_TYPE",A."SEX",A."CERT_TYPE",A."CERT_NUM",A."EMAIL",A."PHONE",A."MOBILE",A."ADDRESS",A."POSTCODE",A."JOB_TITLE",A."STATUS",A."POS_NUM",A."CTIME",A."DAYS",B."USERS_ID",B."BIRTHDATE",A."NAME" "DEGREE",B."TITLE_INFO",B."PHOTO",B."EMPIRIC_VALUE",B."FEATURE",B."CUS_SATISFIED_DEGREE",B."TEACH_SERVER_SATISFIED_DEGREE",B."ORDER_NUM",B."POPULAR",B."OLD_SATISFIED",B."TEACHING_LEVEL",B."TEACHING_STORY",B."HUMOR_INDEX",B."EMOTION_INDEX",B."PHILOSOPHY_INDEX",B."SIMPLE_INDEX",B."TEACHING_COURSE",B."CR_LEVEL",B."REMARK",B."ENTRY_DATE",B."TEACHER_LEADER",
CASE
     WHEN B."EDIT_DATE" is null THEN to_date('1111-11-11','yyyy-mm-dd')
       ELSE B."EDIT_DATE"
END  EDIT_DATE,
CASE
     WHEN H.DEPT_TYPE='DQ' THEN H.dept_id
END  DQ_ID,
CASE
     WHEN H.CENTER_TYPE='ZX' THEN H.CENTER_ID
END  ZX_ID,
H.DEPT_AREA,
D.FLAG ROLE_FLAG
FROM PS_USER A LEFT OUTER JOIN STU_USEREXPAN B ON A.USER_ID=B.USERS_ID,
PS_ROLE_USER C,PS_ROLE D,ps_view_dept_position H
WHERE A.USER_ID=C.USER_ID and C.ROLE_ID=D.ID and A.User_Id=H.user_id
AND D.FLAG='T' order by A.User_Id;


create or replace view v_stu_teacherscore as
select t."ID",t."STUCODE",t."LESSON_ID",t."EXPERT_ID",t."SCORE",t."TYPE",t."CONTENT",t."TIME",t."ID2",t."TEACHER_ID",t."COURSE_ID",k.name,k.theme from
 (
    select f.ID,f.STUCODE,f.LESSON_ID,f.EXPERT_ID,f.SCORE,f.TYPE,f.CONTENT,f.TIME,f.USERTYPE,f.CLASS_ID,
    f.CLASS_ID,f.COURSE_ID COURSE_ID2
    ,g.id id2,g.teacher_id,g.course_id from
      (  select d.* from
          (  select * from stu_appraise c where c.lesson_id in
            ( select b.id from stu_lesson b where b.class_id in
                (
                  select a.id from stu_class a
                )
             )
          ) d ,stu_lesson e
        where e.id=d.lesson_id
         ) f,stu_class g
    where f.id=g.course_id
     ) t ,STU_COURSE k
 where t.course_id=k.id;

CREATE OR REPLACE VIEW V_STUINFO_CR AS
SELECT A."USER_ID",A."REAL_NAME",A."USER_NAME",A."SEX",A."EMAIL",A."PHONE",A."MOBILE",
A."ADDRESS",A."BIRTHDATE",A."DEGREE",A."CR_LEVEL",A."CUS_SATISFIED_DEGREE",
A."REMARK",A."ENTRY_DATE",A.DQ_ID,A.ZX_ID,B.STUOFCR
FROM V_STU_CR A,(SELECT COUNT(*) STUOFCR,CR_ID FROM STU_STUDENT GROUP BY CR_ID) B
WHERE A.USER_ID=B.CR_ID;


CREATE OR REPLACE VIEW V_STUINFO_TA AS
SELECT A."USER_ID",A."REAL_NAME",A."USER_NAME",A."SEX",A."EMAIL",A."PHONE",A."DQ_ID",A."ZX_ID",A."BIRTH_DATE",
A."MOBILE",A."ADDRESS",A."BIRTHDATE",A."REMARK",A."ENTRY_DATE"
FROM V_STU_TA A;


CREATE OR REPLACE VIEW V_STUINFO_TEACHER AS
SELECT A."USER_ID",A."REAL_NAME",A."SEX",A."EMAIL",A."PHONE",A."MOBILE",
A."BIRTHDATE",A."DEGREE",A."TITLE_INFO",A."PHOTO",A."TEACHING_COURSE",A."DQ_ID",A."BIRTH_DATE"
FROM V_STU_TEACHER A;




分享到:
评论

相关推荐

    SQL Server数据库实验指导书 实验教程 数据库实验05 视图的创建与使用.pdf

    5.掌握应用SQL Server Management Studio创建数据库的方法。 6.掌握应用SQL Server Management Studio修改和查看数据库的方法。 7.掌握应用SQL Server Management Studio删除数据库的方法。 8.掌握应用Transact-SQL...

    net实例常用SQL语句大全

     CREATE TABLE --创建一个数据库表  DROP TABLE --从数据库中删除表  ALTER TABLE --修改数据库表结构  CREATE VIEW --创建一个视图  DROP VIEW --从数据库中删除视图  CREATE INDEX --为数据库表创建一个索引...

    Transact-SQL语句总结大全

    CREATE TABLE --创建一个数据库表 DROP TABLE --从数据库中删除表 ALTER TABLE --修改数据库表结构 CREATE VIEW --创建一个视图 DROP VIEW --从数据库中删除视图 CREATE INDEX --为数据库表创建一...

    软件工程实训3 - 数据库的设计 -java实现 ,主要考察sql语句

    软件工程实训3 -- 数据库的设计 ---java实现 ,主要考察sql语句 酒店管理系统可分为两大模块:用户端和管理端。 用户端主要包括注册登录,登记信息;预定房间;查询个人和订单信息;查看通知,删除自己的通知。 ...

    Delphi创建SQLserver数据库视图的例子.rar

    Delphi创建SQLserver数据库视图的例子,使用create View语句来生成视图,当然本程序创建好视图后,也可删除视图,下面是详细的代码:  //创建一个视图:  procedure TForm1.Button1Click(Sender: TObject);  ...

    Oracle数据库SQL和PL SQL实例教程 高继民(ppt)

    oracle数据库ppt 第1章 关系数据库与SQL语言环境 第2章 数据查询 第3章 数据操作 第4章 表和视图 第5章 其他数据库对象 第6章 SQL基础 第7章 游标和异常处理 第8章 存储过程、函数和包 ...第10章 数据库开发应用实例

    Oralce数据库SQL和pl_sql实例教程

    表和视图的创建查询 数据操作 游标和异常处理 触发器等

    精通SQL--结构化查询语言详解

    3.6.2 sql server中数据库的创建 57 3.6.3 删除数据库 58 第4章 索引与视图的创建 61 4.1 索引的基础知识 61 4.1.1 索引的概念 61 4.1.2 索引的结构 61 4.2 索引的创建与销毁 63 4.2.1 基本创建语法 63 ...

    SQL_Server移动数据库文件[收集].pdf

    SQL Server 移动数据库文件 SQL Server 移动数据库文件是指在 SQL Server 中移动系统数据库文件的过程。移动系统数据库文件可以在故障恢复、计划的重定位、磁盘维护操作等情况下进行。 Knowledge Point 1: 故障...

    大学 数据库 实验 报告 数据库原理实验

    在 "安装选择" 窗口,选择 "创建新的SQL Server实例..."。 在 "用户信息" 窗口,输入用户信息,并接受软件许可证协议。 在 "安装定义"窗口,选择 "服务器和客户端工具" 选项进行安装。。  在 "实例名" 窗口,...

    Oracle数据库SQL和PL/SQL实例教程

    Oracle数据库SQL和PL/SQL实例教程 非常适用于初学者。结合例子深刻形象的讲解。 第1章 关系数据库与SQL语言环境 第2章 数据查询 第3章 数据操作 第4章 表和视图 第5章 其他数据库对象 第6章 SQL基础 第7章 游标和...

    Oracle DBA workshop1 (中文版)

    使用SQL*Plus 和iSQL*Plus 访问数据库4-8 使用iSQL*Plus 4-9 为了以SYSDBA 和SYSOPER 身份进行访问而设置iSQL*Plus 4-10 使用SQL*Plus 4-12 从Shell 脚本调用SQL*Plus 4-13 从SQL*Plus 调用SQL 脚本4-14 初始化参数...

    oracle10g课堂练习I(1)

    使用 SQL*Plus 和 iSQL*Plus 访问数据库 4-8 使用 iSQL*Plus 4-9 为了以 SYSDBA 和 SYSOPER 身份进行访问而设置 iSQL*Plus 4-10 使用 SQL*Plus 4-12 从 Shell 脚本调用 SQL*Plus 4-13 从 SQL*Plus 调用 SQL ...

    ASP和SQL网站数据库程序设计(DOC)

    ASP和SQL一直深受网站数据库设计人员的喜爱。 本书着重介绍ASP程序设计语言的各种功能及其实际应用, 同时也介绍SQL Server的程序设计技巧。本书将引导读者用ASP语法, 配合数据库系统的开发技巧,构建一个完整的...

    sql server专题实验6 视图的应用

    SQL Server专题实验六——视图的应用,是一个聚焦于Microsoft SQL Server数据库管理系统中视图功能的深度实践环节。此实验目的在于使学习者熟练掌握视图的创建、修改、删除以及通过视图进行数据操作的各项技能,加深...

    Visual C# .NET精彩编程实例集锦

    实例115 如何创建SQL Server数据库 实例116 如何读写SQL Server数据库 实例117 如何更新SQL Server数据库 实例118 如何读写XML文件 实例119 如何读取EXCEL文件 实例120 如何取得聚合函数返回值 实例121 如何直接操作...

    实验1答案 - 建立学生数据库.sql

    SQL Server支持多个实例,即支持在同一台计算机上同时运行多个SQL Server数据库引擎实例,每个SQL Server数据库引擎实例各有一套不为其它实例共享的系统及用户数据库。应用程序连接同一台计算机上的SQL Server数据库...

    达梦数据库常用系统视图及查询语句.pdf

    达梦数据库常⽤系统视图及查询语句 ⼀、常⽤的系统视图: dba_objects:显⽰数据库中所有的对象,例如想查询数据库中有没有某个对象 v$sessions:显⽰会话的具体信息,如执⾏的 sql 语句、主库名、当前会话状态、⽤...

    SQL Server 2000数据库教程(华夏学院)

    SQL Server 2000概述、SQL Server 2000安装和配置、SQL Server 2000工具、数据库系统基础、SQL Server 2000数据类型、SQL Server 2000数据库创建与管理、SQL Server 2000数据库表的创建和管理、SQL技术、Transact ...

Global site tag (gtag.js) - Google Analytics