精华内容
下载资源
问答
  • 具体语法如下: Create view newtable AS select * from table1union all( ALL代表重复,去掉ALL即不重复)select * from table2...........conditions当table1或table2出现任何变动时,newtable视图将关联影响.....

    具体语法如下:


     Create  view   newtable 

     AS 

    select  *  from  table1

    union  all(  ALL代表重复,去掉ALL即不重复)

    select  *  from  table2

    ...........

    conditions


    当table1或table2出现任何变动时,newtable视图将关联影响

    展开全文
  • 在Oracle中使用多表连接创建视图

    千次阅读 2014-05-03 16:00:58
    有一个A:ID,DATE,NAME(ID为主键); ...根据这三个创建一个视图,该视图A为根,得到以下信息 ID,DATE,NAME,AGE,SALARY 如果是这样建该如何完成: CREATE OR REPLACR VIEW V_AB
    有一个表A:ID,DATE,NAME(ID为主键); 
    表B:ID,DATE,AGE(ID,DATE为主键);
    表C:ID,DATE,PID,SALARY(ID,DATE,PID为主键);
    根据这三个表来创建一个视图,该视图以表A为根,得到以下信息
    ID,DATE,NAME,AGE,SALARY
    如果是这样建该如何完成:
    CREATE OR REPLACR VIEW V_ABC
    (ID,DATE,NAME,AGE,SALARY)
    AS
    SELECT
    a.ID,
    a.DATE,
    a.NAME,
    b.AGE,
    c.SALARY
    FROM A a,B b,C c
    WHERE a.ID = b.ID(+) AND a.ID = c.ID(+) AND a.DATE = b.DATE(+) AND a.DATE = c.DATE(+)
    这样做并没有达到效果,该如何改进。

    问题补充:
    如果用联结,那是不行的,我的要求是:
    CREATE OR REPLACR VIEW V_ABC
    (ID,DATE,NAME,AGE,SALARY)
    AS
    SELECT
    a.ID,
    a.DATE,
    a.NAME,
    b.AGE,
    c.SALARY
    FROM A a,B b,C c
    A表为主架构,将B、C表中符合条件的信息插入到视图的相应位置,如何设计???
    展开全文
  • 2.随意添加两个 3 右击连线,双击”联接属性” 4点击下图中的”新建” 5新建一对关联,如果关联比较,可以重复点击连线,然后双击“联接属性”--“新建” 6如果有联接不需要,可以点击原有的关联连接线右击...
    1.点击左上角的“创建”--“查询设计”
    2.随意添加两个或者多个表
    3.双击两个表之间的连线(默认是属性名称相同的联接)
    4.点击弹出来窗体右下角中的”新建”
    5.新建一对关联,只选择要联接的属性就可以,如果关联比较多,可以重复点击连线,然后双击“联接属性”--“新建”
    6.如果有联接不需要,可以点击原有的关联连接线右击删除即可.
    7.在查询框的空白处右击查看sql查询可以看到生成的sql语句,选择要显示的数据
    8.执行并保存查询结果.即生成所要的视图,当然也可直接执行sql 然后保存查询结果
    展开全文
  • MySQL中,在两个或者以上的基本创建视图 在student和stu_info上,创建stu_class视图,查询出s_id号、姓名和班级 首先,创建stu_info,并向中插入数据 查看中的数据 创建stu_class视图 查看视图 ...
  • 本文是关于在Oracle数据库中,实现用视图展示多表数据集合的方法。 具体如下所示: 实现过程 创建一个package,包中定义两个方法,一个set值的方法,一个get值的方法 创建package body,实现package中的两个方法...

    本文是关于在Oracle数据库中,实现用视图展示多表数据集合的方法。
    具体如下所示:


    实现过程

    创建一个package,包中定义两个方法,一个set值的方法,一个get值的方法

    --定义包
    create or replace package v_param_date is
      --set start_date值方法
      function set_start_date(d_start date) return date;
      --get start_date值方法
      function get_start_date return date;
    
      --set end_date值方法
      function set_end_date(d_end date) return date;
      --get end_date值方法
      function get_end_date return date;
    end v_param_date;

    创建package body,实现package中的两个方法

    --包方法实现
    create or replace package body v_param_date is
      day_start date;
      day_end date;
      -- 给day_start赋值
      function set_start_date(d_start date) return date is
      begin
        day_start := d_start;
        return d_start;
      end;
     --返回day_start的值
      function get_start_date return date is
      begin
        return day_start;
      end;
    
      -- 给day_end赋值
      function set_end_date(d_end date) return date is
      begin
        day_end := d_end;
        return d_end;
      end;
      --返回day_end的值
      function get_end_date return date is
      begin
        return day_end;
      end;
    end v_param_date;

    创建带参数视图,通过v_param_date.get_start_date()或者v_param_date.get_end_date()方法获取传入的参数

    --定义v_nursing_workload查询
    create or replace view v_nursing_workload 
    As 
    select 科室名称,护理单元,sum(总床日数) as 总床日数,sum(出院人数) as 出院人数,sum(特护人次) as 特护人次,sum(一护人次) as 一护人次,sum(二护人次) as 二护人次,sum(计出入量) as 计出入量,sum(监测血压) as 监测血压,
           sum(测体重) as 测体重,sum(BD针) as BD针,0 as 质量考核扣分,sum(治疗护理量) as 治疗护理量,0 as 实得分值 from (
    --科室名称、护理单元、总床日数、出院人数、特护人次、一护人次、二护人次
    select 科室名称,护理单元,sum(总床日数) "总床日数",sum(出院人数) "出院人数",sum(特护人次) "特护人次",sum(一护人次) "一护人次",sum(二护人次) "二护人次",0 as 计出入量,0 as 监测血压,0 as 测体重,
            0 as BD针,0 as 治疗护理量
      from (
            select 
                   --v.dept_code "科室编码",
                   (select dept_dict.dept_name from dept_dict where dept_dict.dept_code = v.dept_code) "科室名称",
                   --d.dept_code "护理单元编码",
                   t.dept_name "护理单元",
                   --to_char(t.send_date, 'yyyy-mm-dd') "护理日期",
                   t.kfcw "总床日数",
                   t.cyrs "出院人数",
                   t.tlrs "特护人次",
                   t.yjhl "一护人次",
                   t.ejhl "二护人次"
              from tdhis_send_data t, dept_dict d, dept_vs_ward v
             where 
               t.send_date between v_param_date.get_start_date and v_param_date.get_end_date
               and t.dept_name = d.dept_name
               and d.dept_code = v.ward_code)
     group by 科室名称, 护理单元
    having count(*) > 1
    union all
    select t1.科室名称,(select dept_dict.dept_name from dept_dict where dept_dict.dept_code = v1.ward_code) as 护理单元,
           0 as 总床日数,0 as 出院人数,0 as 特护人次,0 as 一护人次,0 as 二护人次,t1.计出入量,t1.监测血压,t1.测体重,t1.BD针,t1.治疗护理量 from (
    select 科室名称,sum(计出入量) as 计出入量,sum(监测血压) as 监测血压,sum(测体重) as 测体重,sum(BD针) as BD针,sum(治疗护理量) as 治疗护理量 from (
    --计出入量、监测血压、测体重
    select 科室名称,sum(jcrl) as 计出入量,sum(jcxy) as 监测血压,sum(ctz) as 测体重,0 as BD针,0 as 治疗护理量
      from (select b.dept_name "科室名称",
                   sum(ceil(a.stop_date_time - a.start_date_time)) as jcrl,--ceil()获取两时间的相差天数
                   0 as jcxy,
                   0 as ctz
              from orders a, dept_dict b
             where a.ordering_dept = b.dept_code
               and a.start_date_time between v_param_date.get_start_date and v_param_date.get_end_date
               and a.order_text like '%出入量%'
             group by b.dept_name
            union
            select b.dept_name "科室名称",
                   0 as jcrl,
                   sum(ceil(a.stop_date_time - a.start_date_time)) as jcxy,
                   0 as ctz
              from orders a, dept_dict b, dept_vs_ward v
             where a.ordering_dept = b.dept_code
               and a.start_date_time between v_param_date.get_start_date and v_param_date.get_end_date
               and a.order_text like '%监测血压%'
             group by b.dept_name
            union
            select b.dept_name "科室名称",
                   0 as jcrl,
                   0 as jcxy,
                   sum(ceil(a.stop_date_time - a.start_date_time)) as ctz
              from orders a, dept_dict b
             where a.ordering_dept = b.dept_code
               and a.start_date_time between v_param_date.get_start_date and v_param_date.get_end_date
               and a.order_text like '%体重%'
             group by b.dept_name)
    group by 科室名称
    union all
    --BD针、治疗护理量
    select 科室名称,0 as 计出入量,0 as 监测血压,0 as 测体重,sum(BD针) as BD针,sum(治疗护理量) as 治疗护理量 from (
    --BD留置针
    select d.dept_name "科室名称",sum(i.amount) "BD针",0 as 治疗护理量
      from inp_bill_detail i, dept_dict d,dept_vs_ward v
     where i.ward_code = v.ward_code and v.dept_code = d.dept_code
       and i.billing_date_time between v_param_date.get_start_date and v_param_date.get_end_date
       and i.item_name like '%BD静脉留置针%'
    group by d.dept_name
    union
    --治疗护理量
    SELECT d.dept_name "科室名称",0 as BD针,       
           --sum(decode(r.class_name,'护理费',i.charges,0)) as 护理费,
           --sum(decode(r.class_name,'治疗费',i.charges,0)) as 治疗费,
           --sum(decode(i.item_code,'230600015',i.charges,0)) as 云克收入,
           sum(decode(r.class_name,'护理费',i.charges,0))+sum(decode(r.class_name,'治疗费',i.charges,0))-sum(decode(i.item_code,'230600015',i.charges,0)) as 治疗护理量
      FROM dept_dict d,
           reck_item_class_dict r,
           inp_bill_detail i
     WHERE i.class_on_reckoning = r.class_code(+)
       and d.dept_code(+)=i.ordered_by
       --and to_char(i.billing_date_time, 'yyyy-mm-dd') >= '2018-06-26'
       --and to_char(i.billing_date_time, 'yyyy-mm-dd') <= '2018-07-25'
       and i.billing_date_time between v_param_date.get_start_date and v_param_date.get_end_date
     GROUP BY d.dept_name
    )group by 科室名称)group by 科室名称) t1,dept_dict d1,dept_vs_ward v1
    where t1.科室名称=d1.dept_name and d1.dept_code=v1.dept_code)
    group by 科室名称,护理单元;

    调用视图查询报表

    --查询传入参数day_start和day_end,调用v_param_date视图
    select *
      from v_nursing_workload
     where v_param_date.set_start_date(to_date('2018-06-25', 'yyyy-mm-dd'))= to_date('2018-06-25', 'yyyy-mm-dd')
           and v_param_date.set_end_date(to_date('2018-07-25', 'yyyy-mm-dd'))= to_date('2018-07-25', 'yyyy-mm-dd')

    参考文章:
    ORACLE 创建带参数视图-实践
    在Oracle中如何创建带参数的视图

    展开全文
  • 2014-06-26 回答mysql在个数据创建视图在mysql中,使用create view语句也可以在两个或两个以上的数据创建视图。实例在department和worker创建一个名为worker_view1的视图。1. 创建视图的代码如下:...
  • 视图是从一个或者中导出的视图的行为与非常相似,在视图中用户可以使用SELECT语句查询数据,以及使用INSERT、UPDATE和DELETE修改记录。视图可以使用户操作方便,而且可以保障数据库系统安全。视图一经...
  • MySQL数据库视图视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以...
  • 1.1 今日目标理解多表查询理解子查询能够创建视图能够删除视图能够查看创建视图的SQL语句能够理解事务的作用能够操作事务理解索引的作用能够创建索引能够删除索引知道常用的函数了解预处理语句的作用能够使用预处理...
  • % 将两个纵向连接 就如同两个集合重叠一样如:select * from userinfounion allselect * from userinfo查看引擎show enginesInnoDB MyISAM分页limit1.MySQL查看结构的SQL命令是什么SELECT COLUMN_NAME, COLUMN_...
  • 数据库mysql的各种查询语句check的完整性约束 mysql多表查询+ mysql视图 mysql数据库管理+ select语句+ 创建表+ 多表链接 分类汇总 外连接和子查询 完整性约束等等
  • 一、 UNION(表连接): 语义:UNION 操作符合并两个或个 SELECT 语句的结果。 SELECT column_name(s) FROM table1 UNION SELECT column_name(s) FROM table2; 允许选出的列重复(剔除两表完全重复的行): SELECT ...
  • 使用视图(VIEW)的主要方式:创建,查看,删除,更新一、视图使用create view 语句来创建ONE、利用视图简化复杂的联结(多表视图最常用的应用之一是隐藏复杂的SQL-- 创建视图 create view 视图名 ...
  • MySQL 约束 多表查询 视图 数据备份与还原一 约束1.约束的概念和分类2.主键约束3.主键自动增长约束4.唯一约束5.非空约束6.默认值7.外键约束8.外键的级联更新和级联删除(了解)二 表关系(重点)2.1概述2.2一对一(了解)...
  • 2014-06-26 回答mysql在个数据创建视图在mysql中,使用create view语句也可以在两个或两个以上的数据创建视图。实例在department和worker创建一个名为worker_view1的视图。1. 创建视图的代码如下:...
  • 用plsql连接数据库创建视图

    千次阅读 2015-09-17 16:46:34
    视图可以用来定义来自一个或的行和列的多种连接。通过视图,可以查看到中的数据。  视图是查看数据库中的数据的一种方法。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。...
  • ora-01445:无法从不带保留关键字的连接视图中选择ROWID或采样 网上搜了下,有多种原因和解决方法,最终我选择先尝试一下修改系统隐含参数: SQL> alter system set "_COMPLEX_VIEW_MERGING"=FALSE; ...
  • 视图可以用来定义来自一个或的行和列的多种连接。通过视图,可以查看到中的数据。视图是查看数据库中的数据的一种方法。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图只是一...
  • PostgreSQL创建视图

    千次阅读 2020-06-28 18:24:03
    在PostgreSQL中,视图(VIEW)是一个伪。 它不是物理,而是作为普通选择查询。视图也可以表示连接。 它可以包含的所有行或来自一个或的所选... 您可以从单个以及另一个视图创建它。 语法 CR
  • 多表查询-内连接查询4.多表查询-外连接查询5.多表查询-子查询6.多表查询练习7.多表查询-自关联查询四、视图1.视图的概念2.视图的好处3.视图数据准备4.视图创建5.视图的查询6.视图的修改7.视图的删除8.视图的总结五...
  • 我有以下几张表:-------image表--------org表-----------user表---------album表----我要将以上四张表关联,可以用sql的join连接语句,但是会很麻烦,现在在mysql中创建一个视图会很方便的解决这四个表连接...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 1,095
精华内容 438
关键字:

创建多表连接视图