精华内容
下载资源
问答
  • 所以你应该为了方便,创建一个视图1,同时你需要查看小于三十岁人中哪些人是大富豪(身价大于100), 为此你需要在视图1之上建立视图2但是你应该满足条件,在插入更新时, 视图1应该满足小...

    我会连续用一两个表,陆续出一些题目,同时也会给出答案,题目一般含有视图触发器,存储过程

    视图例题:

    有一个富豪榜,包含id、年龄,姓名和身价(大于50算富豪) 你时常需要查看一些年轻的富豪身价多少,比如小于三十岁的,

    所以你应该为了方便,创建一个视图1,

    同时你需要查看小于三十岁的人中哪些人是大富豪(身价大于100的), 为此你需要在视图1之上建立视图2

    但是你应该满足条件,在插入更新时, 视图1应该满足小于三十岁的才可以插入更新 视图二则必须要满足既小于30岁有大于100身价的才可以插入

    在视图3中你需要知道视图2和视图1的身价平均值

    语法:

    create [or replace] [algorithm={undefiend | merge | temptable}]

    view view_name [(column_list)]

    as select_statement

    [with [cascaded | local] check option]

    如果不了解语法的含义,看我的另一篇文章:

    https://blog.csdn.net/qq_41509057/article/details/98518901

    答案:

    尽量自己做下^_^

    创建富豪表

    create table wealthy(

    id int primary key auto_increment,

    age int,

    name varchar(20),

    money int);

    插入需要的数据

    insert into wealthy values(1,20,'张三',110);

    insert into wealthy values(2,35,'李四',110);

    insert into wealthy values(3,35,'王五',90);

    insert into wealthy values(4,20,'赵六',90);

    创建视图

    create view v_age(name,age,money)

    as

    select name,age,money from wealthy where age<30

    with local check option;

    查看视图内容,可以看出来是查询语句,都不是表数据

    select * from v_age;

    查看视图,可以得出,视图和表,表面上没什么区别,所以为了区分,加个v_作为前(后)缀,看到就可以区分

    show tables;

    插入不满足条件报错

    insert into v_age values('田七',35,90);

    ERROR 1369 (HY000): CHECK OPTION failed 'school.v_age'

    满足条件就可以插入了

    insert into v_age values('田七',20,90);

    视图1的基础上创建视图2

    create view v_money

    as

    select * from v_age where money>100

    with cascaded check option;

    满足视图2的条件

    insert into v_money values('老九',35,110)

    #报错,不能只满足视图2

    既满足视图2又满足视图1,成功

    insert into v_money values('老九',20,110);

    创建视图3

    create view v_avg

    as

    select avg(v_age.money),avg(v_money.money) from v_age,v_money;

    假如视图查询数据不全

    create view v_insert

    as

    select name,money from wealthy;

    插入的数据也是不全的

    insert into v_insert values('老十',120)

    如果没有数据就会默认插入null,如果设置不能为null则报错,说没有默认值

    就和id不自增,插入数据不知道id也会报错一个道理

    删除视图

    drop view v_age;

    其他的改下名字就好

    展开全文
  • 以往当我们查询数据时,一定要很认真的地从设计select语句开始,将需要查询的每个字段写在sql语句里,每次你要以同样的条件来查询数据时,那么每次都要重复输入相同的查询语句,效率很低。若将这个经常要重复使用的...

    视图(子查询):是从一个或多个表导出的虚拟的表,其内容由查询定义。具有普通表的结构,但是不实现数据存储。

    对视图的修改:单表视图一般用于查询和修改,会改变基本表的数据,

    多表视图一般用于查询,不会改变基本表的数据。

    作用

    简化了操作,把经常使用的数据定义为视图。

    我们在使用查询时,在很多时候我们要使用聚合函数,同时还要 显示其它字段的信息,可能还会需要关联到其它表,这时写的语句可能会很长,如果这个动作频繁发生的话,我们可以创建视图,这以后,我们只需要select * from view就可以啦,这样很方便。

    安全性,用户只能查询和修改能看到的数据。

    因为视图是虚拟的,物理上是不存在的,只是存储了数据的集合,我们可以将基表中重要的字段信息,可以不通过视图给用户,视图是动态的数据的集合,数据是随着基表的更新而更新。同时,用户对视图不可以随意的更改和删除,可以保证数据的安全性。

    逻辑上的独立性,屏蔽了真实表的结构带来的影响。

    视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用一定是建立在表上的。有了视图之后,程序可以建立在视图之上,从而程序与数据库表被视图分割开来。

    缺点:

    性能差

    数据库必须把视图查询转化成对基本表的查询,如果这个视图是由一个复杂的多表查询所定义,那么,即使是视图的一个简单查询,数据库也要把它变成一个复杂的结合体,需要花费一定的时间。

    修改限制

    当用户试图修改视图的某些信息时,数据库必须把它转化为对基本表的某些信息的修改,对于简单的视图来说,这是很方便的,但是,对于比较复杂的试图,可能是不可修改的。

    作用

    简化了操作,把经常使用的数据定义为视图。

    安全性,用户只能查询和修改能看到的数据。

    逻辑上的独立性,屏蔽了真实表的结构带来的影响。

    以往当我们查询数据时,一定要很认真的地从设计select语句开始,将需要查询的每个字段写在sql语句里,每次你要以同样的条件来查询数据时,那么每次都要重复输入相同的查询语句,效率很低。若将这个经常要重复使用的查询语句创建成视图,就不用那么麻烦了!直接用select * from 视图名就行了,其实将查询语句创建成视图,不仅仅是简化查询的动作;更重要的是,视图具备数据表的特性,还可以衍生出更多的应用。

    所谓视图(View)其实是执行查询语句后得到的结果,但这个查询结果可以仿真成数据表来使用,所以有人也称它为“虚拟数据表”,视图在操作上和数据表没有什么区别,但两者的差异是其本质是不同的:数据表是实际存储记录的地方,然而视图并不保存任何记录,它存储的实际上是查询语句,其所呈现出来的记录实际来自于数据表,可以为多张数据表,大家由此可以预见到视图应用的弹性!我们可以依据各种查询需要创建不同视图,但不会因此而增加数据库的数据量。

    下面总结视图的几大优点:1.增强可读性 2.数据安全及保密:针对不同用户,可以创建不同视图,限制其所能浏览和编辑的数据内容。3.降低查询复杂度 4.方便维护

    展开全文
  • 视图在我们oracle数据库中是必不可少结构之一,那么它有哪些好处? 1.简单性。看到就是需要视图不仅可以简化用户对数据理解,也可以简化他们操作。那些被经常使用查询可以被定义为视图,从而使得用户...

     视图在我们oracle数据库中是必不可少的结构之一,那么它有哪些好处?

    • 简单性。看到的就是需要的。视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以被定义为视图,从而使得用户不必为以后的操作每次指定
      全部的条件。
    • 安全性。通过视图用户只能查询和修改他们所能见到的数据。但不能授权到数据库特定行和特定的列上。通过视图,用户可以被限制在数据的不同子集上:使用权限可被限制在另一视图的一个子集上,或是一些视图和基表合并后的子集上。
      那么在使用scott户添加视图时显示没有权限,这时我们应该怎样解决?

    权限不足时提示
    解决方法:
     原因:我们是用scott用户登录的数据库,此时并没有创建视图的权限
     解决方法:用system登录数据库,角色为SYSDBA,
    执行grant create any view to scott;
    即为soctt授权视图权限成功,
    此时我们将具有在scott创建视图的权限,问题解决。

    展开全文
  • 视图

    2018-05-31 19:48:42
    根据创建视图时给的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,他 存储了要执行检索的查询语句的定义,以便在引用该视图时刻使用.二.why(为什么要用视图"视图有哪些有点)...
    /*
    --1.what(什么是视图?)
    1.视图是一种数据库对象,是从一个或多个数据表或视图中导出的续表,
    视图锁对应的数据库并不是真正的存储在视图中,而是存储在所引用的数据中,
    视图的结构和数据是对表进行查询的结果.


    2.根据创建视图时给的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,
    他 存储了要执行检索的查询语句的定义,以便在引用该视图时刻使用.


    二.why(为什么要用视图"视图有哪些有点)
    1.简化数据操作:视图可以简化用户处理数据的方式.
    2.着重于特定带护具:不必要的数据或敏感数据可以不出现在视图中.
    3.视图提供了一个简单而有效的安全机制,可以指定不同用户对数据的访问权限.
    4.自定义数据,视图允许用户以不同的方式产看数据
    5.导入和导出数据,可以使用视图将数据进行导出到应用程序.
    三.:how(怎样来建立视图,用视图)
    */
    视图的创建基本语法:
    CREATE [OR REPLACE] [FORCE|NOFORCE]VIEW VIEW_NAME
    [(alias[,alias]...)]
    AS  subquery
    [WITH CHERK OPTION [CONSTRAINT constraint]]
    [WITH READ ONLY]
    --OR REPLACE  若锁创建的视图及存在,oracle自动重建该视图
    --FORCE 不管基表是否在ORACLE都会自动创建改视图
    --NOFORCE  只有基表存在Oracle才会创建改视图 
    --alias  为u视图产生的列名的别名
    --subquery  --一条完整的select语句,可以在该语句中定义别名
    --with CHECK OPTION  插入或修改的数据必须满足视图 定义的约束
    --WITH READ ONLY  该视图上下不能进行任何dml操作
    */


    --GRANT CREATE VIEW TO SCOTT ;授权语句


    --1.案例
    CREATE OR REPLACE VIEW VI_DEPT_SUM
           (DNAME,MINSAL,MAXSAL,AVGSAL) --定义列的别名
    AS
    SELECT D.DNAME,MIN(E.SAL),MAX(E.SAL),AVG(E.SAL)FROM EMP E,DEPT D
    WHERE E.DEPTNO = D.DEPTNO
    GROUP BY D.DNAME;


    --2.查询视图


    SELECT * FROM DEPT;


    SELECT * FROM VI_DEPT_SUM;
    --3.视图的dml操作
    SELECT * FROM T_EMP;


    SELECT * FROM T_DEPT;


    CREATE TABLE T_EMP AS SELECT * FROM EMP;


    CREATE TABLE T_DEPT AS SELECT * FROM DEPT;


    ---4.创建一个视图
    CREATE OR REPLACE VIEW VI_ED_EDIT
    AS
    SELECT E.EMPNO,E.ENAME,E.SAL,D.DNAME,D.DEPTNO
    FROM  T_EMP E,T_DEPT D
    WHERE E.DEPTNO = D.DEPTNO


    --5.查询视图


    SELECT * FROM  VI_ED_EDIT
    --6.添加主键
    ALTER TABLE T_EMP ADD CONSTRAINTS PK_EMPNO PRIMARY KEY(EMPNO);
    ALTER TABLE T_EMP ADD CONSTRAINTS PK_DEPTNO PRIMARY KEY(DEPTNO);















    展开全文
  • MySQL视图

    2021-02-18 15:28:06
    本文对视图的基本使用进行介绍,案例文件从sakila下载。 一、什么是视图 视图是一种虚拟的表。视图并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表。并且在使用视图时动态生成。 视图相对普通的表...
  • 我会连续用一两个表,陆续出一些题目,同时也会给出答案,题目一般...同时你需要查看小于三十岁人中哪些人是大富豪(身价大于100), 为此你需要在视图1之上建立视图2 但是你应该满足条件,在插入更新时, 视图...
  • 如何创建视图?为什么要使用视图?说一说视图的优缺点?什么是游标? 触发器 什么是触发器?MySQL中都有哪些触发器? 触发器是与表有关的数据库对象,在满足定义条件时触发,并执行触发器中定义的语句集合。 MySQL ...
  •  对于客户机,EntityBean是一种持久性对象,它代表一个存储在持久性存储器中实体对象视图,或是一个由现有企业应用程序实现实体。  Session Bean 还可以再细分为 Stateful Session Bean 与 Stateless ...
  • 产品管理员和设计工程师能够创建规则,这些规则指定了特征、选项和零部件包含在特定产品配置中需要的条件。 (2)验证产品配置:一个产品配置是由客户定义的特征、选项和数量列表。企业可以应用产品选项管理判定某个...
  • Oraclet中触发器

    2011-06-04 21:58:17
    INSTEAD_OF 用于对视图的DML触发,由于视图可能是由多个表进行联结(join)而成,因而并非是所有的联结都是可更新的。但可以按照所需的方式执行更新,例如下面情况: CREATE OR REPLACE VIEW emp_view AS SELECT ...
  • 4.3.3 创建一个外键引用表 136 4.3.4 为既表增加外键 137 4.3.5 创建递归外键引用 138 4.3.6 允许外键级联修改 139 4.4 代理键 140 4.4.1 在创建时候使用IDENTITY属性 141 4.4.2 使用DBCC...
  • 同时,我们可以通过这张C++世界地图,了解C++世界整个面貌:有哪些好玩的地方,有哪些有趣故事,有哪些有用知识,有哪些危险而需要注意地方。这张C++世界地图,将带领我们畅游整个C++世界。  还等什么,让...
  • 使 DataSet 与 XmlDataDocument 同步:讨论同步访问单个数据集的关系和分层视图的 .NET 框架中的可用功能,并解释如何在 DataSet 和 XmlDataDocument 之间创建同步关系。 嵌套的 DataRelation:讨论嵌套 DataRelation...
  • sql总结.doc

    2019-08-27 22:08:51
    (5)若视图的定义中嵌套查询,并且嵌套查询的FROM子句中涉及的表也是导出该视图的基表,则此视图不允许更新; (6)若视图是由两个以上的基表导出的,此视图不允许更新; (7)一个不允许更新的视图上定义的视图...
  • 4.3.1 有哪些对象统计信息可用 95 4.3.2 收集对象统计信息 108 4.3.3 锁定对象统计信息 123 4.3.4 比较对象统计信息 125 4.3.5 删除对象统计信息 127 4.3.6 保持统计信息时效性策略 129 4.4 通用...
  • 一本很好书《21天学通C#》

    热门讨论 2010-07-25 18:28:53
    14.1.2 保障安全都有哪些措施 251 14.2 配置Web应用程序身份验证类型 252 14.2.1 集成Windows身份验证 252 14.2.2 Forms身份验证 253 14.3 配置Web应用程序中权限 253 14.3.1 allow授权配置 254 14.3.2 ...
  •  创建视图:create view viewname as select statement  删除视图:drop view viewname 10、说明:几个简单基本sql语句  选择:select * from table1 where 范围  插入:insert into table1(field1,field2) ...
  • DBA最重要素质有哪些 11 DBA职业生涯之误删除篇 12 DBA警世录——有些习惯DBA需要养成 13 RAC环境下故障处理一则 14 SQL_TRACE跟踪与诊断 16 临时表空间组导致递归SQL高度解析案例 19 使用闪回查询恢复误...
  • iPhone开发秘籍(第2版)--源代码

    热门讨论 2012-12-11 13:51:22
    6.13 秘诀:视图的淡入和淡出 185 6.14 秘诀:视图交换 186 6.15 秘诀:翻转视图 187 6.16 秘诀:使用Core Animation Transitions 188 6.17 秘诀:一般的Core Animation调用 190 6.18 翻页过渡 192 6.19 秘诀...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008宝典 共2部分:此为第002部分 基本信息 作者: 刘智勇 刘径舟 丛书名: 宝典丛书 出版社:...
  • iPhone开发秘籍(第2版)--详细书签版

    热门讨论 2012-12-11 13:42:25
    6.13 秘诀:视图的淡入和淡出 185 6.14 秘诀:视图交换 186 6.15 秘诀:翻转视图 187 6.16 秘诀:使用Core Animation Transitions 188 6.17 秘诀:一般的Core Animation调用 190 6.18 翻页过渡 192 6.19 秘诀...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 SQL Server 2008宝典 共2部分:此为第001部分 基本信息 作者: 刘智勇 刘径舟 丛书名: 宝典丛书 出版社:...
  • 31、你知道Request对象主要方法有哪些? 32、J2EE是技术还是平台还是框架? 我答案: J2EE是技术也是平台 网上答案: J2EE本身是一个标准,一个为企业分布式应用开发提供标准平台。 J2EE也是一个...
  • 如何在对话框上动态创建视图 如何将某一区域设为光标热区 如何随时获得鼠标窗口位置 如何随意改变光标形状 如何控制鼠标移动范围 如何使窗体右上角系统按钮无效 如何改变窗口图标 屏幕保护程序原理是...
  • CruiseYoung提供详细书签电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 iPhone 3开发基础教程(针对iPhone SDK 3新特性全面改版) 基本信息 原书名: Beginning iPhone 3 Development: ...
  • 8.2.3 启用表和视图的索引 210 8.2.4 编辑表和视图的索引 212 8.2.5 从表或视图中禁用和删除全文索引 212 8.2.6 填充全文目录 213 8.2.7 重新生成当前目录 216 8.2.8 清除旧的目录 217 8.2.9 删除目录 217 ...
  • 5、Switch语句里面的条件可不可以是byte、long、String?使用时候还应注意什么? 14 6、short s1=1;s1=s1+1;什么错?short s1 = 1;s1+=1 什么错? 14 7、char为什么能存贮一个汉字? 15 9、final关键字的用法? ...
  • 1.2.6 一颗现代处理器,每秒大概可以执行多少条简单MOV指令,有哪些主要影响因素 1.2.7 请分析 MaxCompute 产品与分布式技术关系、当前大数据计算平台类产品市场现状和发展趋势 1.2.8 对大数据平台中...
  • 10.6.2 创建视图 10.6.3 修改视图 10.6.4 使用可更新视图 10.6.5 管理视图 10.7 创建和管理索引 10.7.1 了解索引 10.7.2 使用聚集索引 10.7.3 使用非聚集索引 10.7.4 使用XML索引 10.7.5 使用筛选索引 10.7.6 确定...
  •  10.6.2 根据条件出现频率来排序IF条件  10.6.3 使用PLS_INTEGERPL/SQL数据类型进行整数运算  10.7 减少对SYSDATE调用  10.8 减少MOD函数使用  10.9 共享池和固定PL/SQL对象  10.9.1 将PL/SQL对象语句...

空空如也

空空如也

1 2 3 4 5 6
收藏数 105
精华内容 42
关键字:

创建视图的条件有哪些