精华内容
下载资源
问答
  • 工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图下面,相...

    工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle

    1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图下面,相对于java来说,可以把视图看成是特殊的表对待,这里说的特殊指的是 通过hql语句调用访问数据库的时候涉及到关联表的问题.  创建视图如下:

    1354173188_8727.png

    然后通过myeclipse的 hiberange reverse engineering 生成pojo和hbm.xml文件. 生成后发现生成了两个pojo和一个hbm.xml文件,如下:

    1354176115_1320.png

    然后在代码中使用的时候部分代码如下:

    if (idNumberStr.equals("")){

    StringBuffer wherePart = new StringBuffer();

    List parmaters = new ArrayList();

    wherePart.append(" id.hrid = ? ");

    parmaters.add(uniquedId);

    wherePart.append(" and id.datetime >=? ");

    parmaters.add(_startDate);

    wherePart.append(" and id.datetime <=? ");

    parmaters.add(_endDate);

    cdaList = this.cdaDao.queryObjectsByWhere(

    VICdaSummary.class, wherePart.toString(), parmaters.toArray(),

    null, startRow, rowCount);

    为什么代码中要使用 id.hrid ,id.datetime  等等,而不是直接使用hrid,datetime呢,查的也是VICdaSummary这个视图啊, 原因是(hql语句的视图查询)使用的是联合主键查询,sql语句的视图查询不需要使用id.hrid等, 和查询表一样, 在 VICdaSummary.java 类中引用了 VICdaSummaryId.java类 ,且作为主键 ,参见下图:

    1354176543_9448.png

    在参加下图:

    1354176570_9879.png

    在视图中我们应该保证视图中的每个字段都不为空(null ) ,因此我做了如下处理:

    1354176702_4506.png

    将可能为空的字段赋值为 empty ,字符串类型的 .

    下面附上sql语句的视图查询部分代码:

    1354177288_1434.png

    上图中并没有使用 id.HRID 是吧. ok 搞定.

    补充:视图的执行是在,java调用该视图的时候触发该视图执行设计视图的语句 ,然后从结果集中拿回java传递的语句所查询的内容. 让部分操作交给数据库系统执行,尤其在涉及到多表操作时候,及其有用.

    展开全文
  • 内容索引:VC/C++源码,数据库应用,数据库 这个数据库列表是自己写的,除了能把从数据库里读出的数据整齐显示外,它还具有添加、删除、修改、查询等操作,另外它还支持自定义列表中的字体颜色、字体大小,将数据导出...
  • 数据库视图

    2019-09-20 19:54:01
    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的...为了解决这个问题,数据库提供了视图(view)功能。 0 视图相关的MySQL指令 创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) F...

    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询都需要编写MySQL代码效率低下。为了解决这个问题,数据库提供了视图(view)功能。

    0 视图相关的MySQL指令

    创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
    使用视图 当成表使用就好
    修改视图 CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
    查看数据库已有视图 >SHOW TABLES [like...];(可以使用模糊查找)
    查看视图详情 DESC 视图名或者SHOW FIELDS FROM 视图名
    视图条件限制 [WITH CHECK OPTION]

    1 视图

    每次进行查询工作,都需要编写查询代码进行查询;而视图的作用就是不必每次都重新编写查询的SQL代码,而是通过视图直接查询即可。因此:

    视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。

    比如,我们希望从前文提到的四张表,order_baisc,order_details,user和product中查找所有记录,需要写入代码指令:

    想再次查询这几个表中uid为u0001的用户的记录,有需要键入一次操作指令:

    也就是说,每次查询都得重新键入查询指令SQL代码,这种费时费力的体力活,对于时间就是生命的你我来说,是不划算的。所以借助视图,来执行相同或相似的查询。

    2 创建视图

    2.1 创建视图create view

    创建视图的代码为:

    >CREATE VIEW 视图名(列1,列2...)
    AS SELECT (列1,列2...)
    FROM ...;
    1
    2
    3
    可以看到,创建视图和查询相比,增加了前面的CREATE VIEW 视图名 AS

    2.2 视图运用

    使用视图和使用表完全一样,只需要把视图当成一张表就OK了。视图是一张虚拟表。

    eg:创建order_baisc,order_details,user和product的查询视图,并通过视图查找uid为u0001的记录:

    2.3 修改视图CREATE OR REPLACE VIEW

    修改和创建视图可以使用代码:

    CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
    1
    eg:

    2.4 查看视图

    (1)查看数据库中有哪些视图 show tables
    前面提到,视图就是虚拟的表,因此,查看视图的方法和查看表的方法是一样的:

    >SHOW TABLES;
    1

    通过show tables;反馈得到所有的表和视图。同样的,我们可以通过模糊检索的方式专门查看视图,这个时候,视图的命令统一采用v_视图名v_视图名的优势就体现出来了。
    (2)查看视图详情
    查看视图详情的方法有两种,一种是和查看表详情一样使用desc 视图名,另外一种方法是show fields from 视图名:

    >DESC 视图名;
    或者
    >SHOW FIELDS FROM 视图名;
    1
    2
    3

    两种方法得到的详情都是一毛一样的。

    3 视图与数据变更

    3.1 表格数据变更

    将表product中的数据进行更新,在通过视图检索:

    可以看到表格数据变化后,在通过视图检索,得到的结果也同步发生了变化,因此,在此证明了:

    视图不是表,不保存数据,知识一张虚拟表;

    3.2 通过视图变更数据

    (1)插入数据
    >INSERT INTO v_order(pid,pname,price) VALUES('p010','柴油','34');
    1
    在此查询视图,发现插入了数据。

    (2)跨表插入数据
    通过上图,我们可以看到,跨表插入数据系统反馈报错,提示不能修改超过一个表的数据。
    因此,可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

    (3)WITH CHECK OPTION
    如果在创建视图的时候制定了“WITH CHECK OPTION”,那么更新数据时不能插入或更新不符合视图限制条件的记录。

    eg:对表product创建一个单价超过3000的视图,并加上“WITH CHECK OPTION”,之后插入一个价格为42的记录:

    可以看到系统提示错误CHECK OPTION FAILED。因为视图限制了价格要高于3000.
    后面再次尝试了不加“WITH CHECK OPTION”的视图,后者可以成功插入。

    同样的,在不加“WITH CHECK OPTION”的情况下,通过视图修改记录,也可以成功执行:

    通过视图修改,可能导致数据无故消失,因此:

    没有特殊的理由,建议加上“WITH CHECK OPTION”命令。

    注意点:
    1. 视图不是表,不直接存储数据,是一张虚拟的表;
    2. 一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。

    转载于:https://www.cnblogs.com/linguoguo/p/10194013.html

    展开全文
  • 数据库 视图

    2019-09-24 15:46:24
    首先,将需要连接的语句存储到数据库中,定义新的视图名代替连接的这段语句; 然后,每次查询这个新的视图名的时候,实际上是执行了表连接的代码查询。 1、将两个表(student,score表)联合写成一个表来用,...
    视图实际就是对表的连接展现出来的结果建成的虚拟表。简单来说,视图实际上就是一个虚拟的表,通过表与表之间的关系连接起来,方便查询时使用。
    
    首先,将需要连接的语句存储到数据库中,定义新的视图名代替连接的这段语句;
    
    然后,每次查询这个新的视图名的时候,实际上是执行了表连接的代码查询。
    
    1、将两个表(student,score表)联合写成一个表来用,形成一个新的表。
    
    (select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
    join score on student.Sno=score.Sno) as --作为一个新表,方便查询时使用
    
    2、创建视图
    
    方法一:通过视图---新建视图来操作。
    
    步骤1:在“对象资源管理器” 选择想要建视图的数据库(xinxibiao)名下,点击“+”号后,
    
    在子目录中选中“视图”,右键“新建视图”。
    
    步骤2:在弹出的“添加表”对话框中,选择想要建立关系的表,然后点击“添加”,关闭即可。
    
    步骤3:当两个或几个表建立好关系之后,发现它们之间存在主键与外键的关系.
    
    步骤4:建立好关系后,完成创建视图,就会显示想要的结果。
    方法二:通过代码创建视图
    
    书写格式:
    
    create +(视图英文名)+创建的视图名称 ---类似表的创建格式
    
    as
    
    建立两个或多个表之间的关系的查询语句
    
    go
    
    例:create view studentscore             ----创建视图
    
    as
    
    select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
    
    join score on student.Sno=score.Sno                                             ---建立student,score 表的关系语句
    
    go
    
    select*from studentscore  ----查询结果的语句
    
    【注意事项】视图里面不存在order by, 聚合函数,in,not in 关系运算等语句,它不是一个真正的表,是虚拟的表,数据来源在student,score表中,只能使用表连接的join...on组合数据,方便查询使用。
    
    方法1:删除视图可以点击所建的视图右击直接删除
    
    方法2:通过代码删除
    
    drop view+视图名称
    
    例如: drop view studentscore
    
    4、修改视图 
    
    alter view studentscore  ---相当于删除视图重写
    
    as
    
    (
    
    select student.Sno,Sname,Ssex,Sbirthday,Class,score.Cno,Degree from student
    
    join score on student.Sno=score.Sno               
    
    )                            
    
    go
    
    【注意事项】同一个关系视图只能建一次,修改之后需重新建立关系,视图本身就是虚拟的不存在,只是为了查询方便使用。
    

     

    转载于:https://www.cnblogs.com/Mr-xue/p/4461666.html

    展开全文
  • 0 视图相关的MySQL指令 操作指令 代码 创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...; 使用视图 当成表使用就好 ... 查看数据库已有视图 &gt;SHOW...

    0 视图相关的MySQL指令

    操作指令 代码
    创建视图 CREATE VIEW 视图名(列1,列2...) AS SELECT (列1,列2...) FROM ...;
    使用视图 当成表使用就好
    修改视图 CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
    查看数据库已有视图 >SHOW TABLES [like...];(可以使用模糊查找)
    查看视图详情 DESC 视图名或者SHOW FIELDS FROM 视图名
    视图条件限制 [WITH CHECK OPTION]

    1 视图

    百度百科定义了什么是视图,但是对缺乏相关知识的人可能还是难以理解或者只有一个比较抽象的概念,笔者举个例子来解释下什么是视图。

    朕想要了解皇宫的国库的相关情况,想知道酒窖有什么酒,剩多少,窖藏多少年,于是派最信任的高公公去清点,高公公去国库清点后报给了朕;朕又想知道藏书情况,于是又派高公公去清点并回来报告给朕,又想知道金银珠宝如何,又派高公公清点。。。过一段时间又想知道藏书情况,高公公还得重新再去清点,皇上问一次,高公公就得跑一次路。

    后来皇上觉得高公公不容易,就成立了国库管理部门,小邓子负责酒窖,小卓子负责藏书,而小六子负责金库的清点。。。后来皇上每次想了解国库就直接问话负责人,负责人就按照职责要求进行汇报。 
    视图

    安排专人管理后,每次皇上想要了解国库情况,就不必让高公公每次都跑一趟,而是指定的人员按照指定的任务完成指定的汇报工作就可以了。

    和数据库相对应,每次进行查询工作,都需要编写查询代码进行查询;而视图的作用就是不必每次都重新编写查询的SQL代码,而是通过视图直接查询即可。因此:

    视图是虚拟表,本身不存储数据,而是按照指定的方式进行查询。

    比如,我们希望从前文提到的四张表,order_baisc,order_details,user和product中查找所有记录,需要写入代码指令: 
    查询
    想再次查询这几个表中uid为u0001的用户的记录,有需要键入一次操作指令: 
    查询
    也就是说,每次查询都得重新键入查询指令SQL代码,这种费时费力的体力活,对于时间就是生命的你我来说,是不划算的。所以借助视图,来执行相同或相似的查询。

    2 创建视图

    2.1 创建视图create view 
    创建视图的代码为:

    >CREATE VIEW 视图名(列1,列2...)
     AS SELECT (列1,列2...)
     FROM ...;
    • 1
    • 2
    • 3

    可以看到,创建视图和查询相比,增加了前面的CREATE VIEW 视图名 AS

    2.2 视图运用

    使用视图和使用表完全一样,只需要把视图当成一张表就OK了。视图是一张虚拟表。

    eg:创建order_baisc,order_details,user和product的查询视图,并通过视图查找uid为u0001的记录: 
    创建视图

    2.3 修改视图CREATE OR REPLACE VIEW

    修改和创建视图可以使用代码:

    CREATE OR REPLACE VIEW 视图名 AS SELECT [...] FROM [...];
    • 1

    eg: 
    修改视图

    2.4 查看视图 
    (1)查看数据库中有哪些视图 show tables 
    前面提到,视图就是虚拟的表,因此,查看视图的方法和查看表的方法是一样的:

    >SHOW TABLES;
    • 1

    查看视图

    通过show tables;反馈得到所有的表和视图。同样的,我们可以通过模糊检索的方式专门查看视图,这个时候,视图的命令统一采用v_视图名v_视图名的优势就体现出来了。 
    (2)查看视图详情 
    查看视图详情的方法有两种,一种是和查看表详情一样使用desc 视图名,另外一种方法是show fields from 视图名

    >DESC 视图名;
    或者
    >SHOW FIELDS FROM 视图名;
    • 1
    • 2
    • 3

    查看视图详情

    两种方法得到的详情都是一毛一样的。

    3 视图与数据变更

    3.1 表格数据变更 
    将表product中的数据进行更新,在通过视图检索:

    视图与数据变更

    可以看到表格数据变化后,在通过视图检索,得到的结果也同步发生了变化,因此,在此证明了:

    视图不是表,不保存数据,知识一张虚拟表;

    3.2 通过视图变更数据

    • (1)插入数据
    >INSERT INTO v_order(pid,pname,price) VALUES('p010','柴油','34');
    • 1

    在此查询视图,发现插入了数据。

    视图变更数据

    • (2)跨表插入数据 
      通过上图,我们可以看到,跨表插入数据系统反馈报错,提示不能修改超过一个表的数据。

    因此,可以通过视图插入数据,但是只能基于一个基础表进行插入,不能跨表更新数据。

    • (3)WITH CHECK OPTION 
      如果在创建视图的时候制定了“WITH CHECK OPTION”,那么更新数据时不能插入或更新不符合视图限制条件的记录。

      eg:对表product创建一个单价超过3000的视图,并加上“WITH CHECK OPTION”,之后插入一个价格为42的记录:

      “WITH CHECK OPTION”

      可以看到系统提示错误CHECK OPTION FAILED。因为视图限制了价格要高于3000. 
      后面再次尝试了不加“WITH CHECK OPTION”的视图,后者可以成功插入。

      同样的,在不加“WITH CHECK OPTION”的情况下,通过视图修改记录,也可以成功执行: 
      修改记录

    通过视图修改,可能导致数据无故消失,因此:

    没有特殊的理由,建议加上“WITH CHECK OPTION”命令。

     

     

    注意点: 
    1. 视图不是表,不直接存储数据,是一张虚拟的表; 
    2. 一般情况下,在创建有条件限制的视图时,加上“WITH CHECK OPTION”命令。

    展开全文
  • 数据库视图创建

    千次阅读 2018-05-15 09:52:58
    1、 在xkgl数据库中进行视图的创建。 (1) 新建一个视图V1记录1990年出生的女生信息,包括学号,姓名,性别,出生日期,并且要求透过该视图进行的更新操作只涉及1990年出生的女生。视图创建代码: MySQL低版本...
  • 本篇文章给大家带来的内容是关于MYSQL中视图的用法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。1、什么是视图执行一条SQL,将结果集保存在一张虚拟表中(相关推荐:MySQL教程)2...
  • oracle数据库视图

    2019-10-05 08:09:10
    一.what 视图是一张虚拟表 ...演示代码: --需求:查询所有员工的姓名和上司的姓名(做成视图) create view v$employee_manager_relation as select employee.ename 员工名称,manager.ename ...
  • 主要介绍了Django Admin后台添加数据库视图过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
  • 使用数据图视图的起因最近...视图的数据是建立在数据表基础上的,把统计的SQL调试好之后,生成数据库视图,后续的查询可以直接数据库视图来完成,这样在Django中编写查询的代码就简单多了,不需要做统计计算。Django...
  • 数据库视图数据是否可以直接删除 文章目录数据库视图数据是否可以直接删除一、视图是什么?二、视图数据删除1.多表构成视图数据删除2.单表视图数据删除总结 一、视图是什么? 视图(VIEW)也被称作虚表,即虚拟的表...
  • REPORT ZHANA_CAL_VIEW. DATA: r_adbc_conn TYPE REF TO CL_SQL_CONNECTION, lv_table_name TYPE ADBC_NAME, gt_hana_max_field_list TYPE ADBC_TABCOL_DESCR_TAB. r_adbc_conn = cl_db6_con=>...
  • 如何创建视图create view 视图名asselect 语句视图名一般以v$开头演示代码:--需求:查询所有员工的姓名和上司的姓名(做成视图)create view v$employee_manager_relationasselect employee.ename 员工名称,manager....
  • java 访问数据库视图

    万次阅读 2012-11-29 16:19:42
    工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle   1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图...
  • 视图是原始数据库数据的一种变换,是查看表中数据的另外一种方式。可以将视图看成是一个移动的窗口,通过它可以看到感兴趣的数据。 视图是从一个或多个实际表中获得的,这些表的数据存放在数据库中。那些用于产生...
  • 数据库 视图 视图有两个特点1 只能查询 不能增删改 2 不能有重复列 create view 视图名字  as  查询语句 事务 保证流程的完整执行  begin tran --开始事务监控  --被监控的代码  if @@error>0...
  • 工作多年调用视图到多次,自己写代码使用视图还是头一回,也觉得新鲜,那就开始呗, 数据库系统是Oracle1 我用的数据库连接客户端是Navicat ,首先创建视图,其实视图就是调用表的操作,提取自己需要的数据放到视图下面,相...
  • Delphi创建SQLserver数据库视图的例子,使用create View语句来生成视图,当然本程序创建好视图后,也可删除视图,下面是详细的代码:  //创建一个视图:  procedure TForm1.Button1Click(Sender: TObject);  ...
  • 2.视图是物理不存在的,是一张虚表,是通过数据库代码来对表中数据做一个逻辑结构的重组。 3.数据库只存放视图的定义而不存放视图的数据,这些数据还存在在原来的基本表中。 4.不同的基本表组织成视图时,至少要...
  • 在JPA调用数据库视图Menu,使用myeclipse的jpa reverse后,会生成两个类Menu和MenuId 进行查询时,始终报错 代码如下: [code="java"] String jpql = "SELECT u FROM Menu u WHERE u.id.userid = ?1"; ...
  • --创建函数  create procedure sys.sp_helptext  @objname nvarchar(776)  ,@columnname sysname = NULL  as    set nocount on    declare @dbname sysname  ...,@BlankSpaceAdded int
  • 在一个项目的使用过程中,数据库的设计使用了视图;在产品上线的过程中,发现同事恢复的数据库出现了问题,测试人员发现试图中没有数据,而视图基于的表是有数据的,开始以为是关联的字段没有相关匹配出现空数据。...
  • Navicat 是一个强大而全面的数据库(MySql、SqlLite、MongoDB、Oracle等) 图形用户... 这款工具非常优秀,即使你不会任何sql语句,可以十分方便的创建 和 管理数据库,并可以导出sql 文件,黏贴复制到你的代码中使用!
  • VS2008编写一C#程序,动态获取数据库中的所有视图和存储过程信息,仅包括代码,暂时不包括数据库,需要手动还愿出数据库
  • 但是在后期维护时就会发现,视图代码里的查询,本质上是分离的,当视图建的多了,项目维护时间久了之后,很多视图到底还有没有用,就很难确定了。同时,需要修改视图引用的表时,就需要级联修改各...
  • How to: Map a Database View to a Persistent Class(如何:映射数据库视图到持久化类) http://documentation.devexpress.com/#Xaf/CustomDocument3281 代码 首先创建一个结构体,结构体中的属性为要绑定的...

空空如也

空空如也

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

数据库视图代码