精华内容
下载资源
问答
  • 创建视图

    2010-08-16 11:17:00
    SQL SERVER 提供了使用SQL SERVER Enterprise Manager 和Transac-SQL 命令两种方法来创建视图。在创建或使用视图,时应该注意到以下情况: • 只能在当前数据库中创建视图,在视图中最多只能引用1024 列; • 如果...

    SQL SERVER 提供了使用SQL SERVER Enterprise Manager 和Transac-SQL 命令两种方法来创建视图。在创建或使用视图,时应该注意到以下情况:
        • 只能在当前数据库中创建视图,在视图中最多只能引用1024 列;
        • 如果视图引用的表被删除,则当使用该视图时将返回一条错误信息,如果创建具有相同的表的结构新表来替代已删除的表视图则可以使用,否则必须重新创建视图;
        • 如果视图中某一列是函数、数学表达式、常量或来自多个表的列名相同,则必须为列定义名字;
        • 不能在视图上创建索引;不能在规则、缺省、触发器的定义中引用视图;
        • 当通过视图查询数据时,SQL SERVER 不仅要检查视图引用的表是否存在,是否有效,而且还要验证对数据的修改是否违反了数据的完整性约束。如果失败将返回错误信息,若正确,则把对视图的查询转换成对引用表的查询。
    1、使用SQL SERVER Enterprise Manager 来创建视图
        在SQL SERVER 中使用SQL SERVER Enterprise Manager 来创建视图的步骤为:
        (1) 启动SQL SERVER Enterprise Manager,登录到指定的服务器;
        (2) 打开要创建视图的数据库文件夹,选中view 图标,此时在右面的窗格中显示当前数据库的所有视图,右击图标,在弹出菜单中选择New View 选项,打开New View 对话框。如图13-1。 在New View 对话框中共有四个区:表区、列区SQL script 区、数据结果区(此时对话框中的四个区都是空白的);

        (3) 在创建视图时,首先点击按钮,打开添加表对话框,如图13-2 所示;

        (4) 在列区中选择将包括在视图的数据列,此时相应的SQL SERVER 脚本便显示在SQL script 区;
        (5) 单点按钮,在数据结果区将显示包含在视图中的数据行;
        (6) 单击按钮,在弹出对话框中输入视图名,单击"保存"完成视图的创建。
    2、Transact-SQL 命令创建视图
        使用Transact-SQL 命令CREATE VIEW 创建视图的语法格式为:

        各参数的含义说明如下:
        • view_name
        表示视图名称。
        • select_statement
        构成视图文本的主体,利用SELECT 命令从表中或视图中选择列构成新视图的列。
    提示:但是在SELECT语句中,不能使用ORDER BY、COMPUTE、COMPUTE BY语句,不能使用INTO关键字,不能使用临时表。
        • WITH CHECK OPTION
        保证在对视图执行数据修改后,通过视图能够仍看到这些数据。比如创建视图时定义了条件语句,很明显视图结果集中只包括满足条件的数据行。如果对某一行数据进行修改,导致该行记录不满足这一条件,但由于在创建视图时使用了WITH CHECH OPTION 选项,所以查询视图时,结果集中仍包括该条记录,同时修改无效。
    • ENCRYPTION
        表示对视图文本进行加密,这样当查看syscomments 表时,所见的txt 字段值只是一些乱码。

        • SCHEMABINDING
        表示在select_statement 语句中如果包含表、视图或引用用户自定义函数,则表名、视图名或函数名前必须有所有者前缀。
        • VIEW_METADATA
        表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQL Server将向DBLIB 和OLE DB APIS 返回视图的元数据信息
        例13-13: 使用WITH ENCRYPTION WITH CHECK OPTION 选项,并且包含函数列。

        由于使用了WITH CHECK OPTION, 所以当对视图进行修改时,将返回错误信息。比如执行以下语句:

        返回错误信息为:

    13.10.2 管理视图
       1、查看、修改视图
        在SQL SERVER 中,通过SQL SERVER Enterprise Manager 查看和修改视图主要执行以下步骤:
        (1) 启动SQL SERVER Enterprise Manager,登录到指定的服务器;
        (2) 打开要创建视图的数据库文件夹,选中view 图标,此时在右面的窗格中显示当前数据库的所有视图;
        (3) 右击要查看的视图,在弹出菜单中选择Properties 选项,打开View Properties 对话框,如图13-3 所示;

        (4) 在该对话框内可浏览到该视图的正文,也可以对该视图进行修改,然后单击Check Syntax 按钮来对语句合法性进行检查,若要对视图的访问权限进行设置,请单击Permissions 按钮。
        2 使用存储过程检查视图

        系统过程sp_help 用来返回有关数据库对象的详细信息,如果不针对某一特定对象,则返回数据库中所有对象信息其语法如下:
        sp_help 数据库对象名称
        系统过程sp_helptext 检索出视图、触发器、存储过程的文本。其语法为:
        sp_helptext 视图(触发器、存储过程)

        3 删除视图
        删除视图与删除表一样都使用DROP 命令。其语法为:
        DROP VIEW 视图名称

    展开全文
  • MySQL数据库视图:视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。...对于复杂的查询事件,每次查询需要输入SQL命令,重复且低效,视图可以大大降低查询的重复性。

    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。——百度百科

    关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询需要将多个表连接起来进行查询任务。对于复杂的查询事件,每次查询都需要编写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 ...;

    可以看到,创建视图和查询相比,增加了前面的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 [...];

    eg:
    修改视图

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

    >SHOW TABLES;

    查看视图

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

    >DESC 视图名;
    或者
    >SHOW FIELDS FROM 视图名;

    查看视图详情

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

    3 视图与数据变更

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

    视图与数据变更

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

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

    3.2 通过视图变更数据

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

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

    视图变更数据

    • (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”命令。

    展开全文
  • 创建视图权限

    2017-12-27 16:21:24
    如果只是查找同一方案中的表去创建视图,则只需要该用户有createview的权限便可创建。但是如果创建的视图涉及到要查询别的方案中的表,这时我们就需要select any table的权限了。 授权命令: CMD: sqlplus ...

    视图就是一种虚拟的表,为了方便把各类表所需要的字段取出来创建的一张新的虚拟表。视图的增删改需要触发器的配合。

    如果只是查找同一方案中的表去创建视图,则只需要该用户有createview的权限便可创建。但是如果创建的视图涉及到要查询别的方案中的表,这时我们就需要select any table的权限了。

    授权命令:

    CMD:

    sqlplus "/as sysdba

    grant select any table,create view to scott; ps: scott用户名

    展开全文
  • PostgreSQL创建视图

    千次阅读 2020-06-28 18:24:03
    在PostgreSQL中,视图(VIEW)是一个伪表。 它不是物理表,而是作为普通表选择查询。视图也可以表示连接的...可以使用CREATE VIEW语句来在PostgreSQL中创建视图。 您可以从单个表,多个表以及另一个视图创建它。 语法 CR

    在PostgreSQL中,视图(VIEW)是一个伪表。 它不是物理表,而是作为普通表选择查询。视图也可以表示连接的表。 它可以包含表的所有行或来自一个或多个表的所选行。
    视图便于用户执行以下操作

    • 它以自然和直观的方式构建数据,并使其易于查找。
    • 它限制对数据的访问,使得用户只能看到有限的数据而不是完整的数据。
    • 它归总来自各种表中的数据以生成报告。

    PostgreSQL创建视图
    可以使用CREATE VIEW语句来在PostgreSQL中创建视图。 您可以从单个表,多个表以及另一个视图创建它。
    语法

    CREATE [TEMP | TEMPORARY] VIEW view_name AS  
    SELECT column1, column2.....  
    FROM table_name  
    WHERE [condition];
    

    PostgreSQL创建视图示例
    考虑一个表“EMPLOYEES”,具有以下数据。
    现在,我们从“EMPLOYEES”表创建一个视图。 此视图将仅包含EMPLOYEES表中的几个列:
    执行以下查询语句:

    CREATE VIEW current_employees AS  
    SELECT NAME, ID, SALARY 
    FROM EMPLOYEES;
    

    执行结果如下 -
    在这里插入图片描述
    找出上面创建的视图,如下可以看到:
    在这里插入图片描述
    现在,您可以从视图“current_employees”中使用简单的查询语句检索数据。会看到下表:

    SELECT * FROM current_employees;
    

    执行上面的查询语句,得到以下结果 -
    在这里插入图片描述

    PostgreSQL DROP视图
    按着下面这些次序操作删除就好了:

    选择视图“current_employees”并右键点击。您将看到一个删除/移除选项,点击它。
    视图是永久删除的。所以一但删除了以后,在数据库中就不会存在了。您还可以使用DROP VIEW命令删除或删除视图。

    语法

    DROP VIEW view_name;
    

    要删除上面的例子中创建的视图,可执行以下SQL语句:

    DROP VIEW current_employees;
    
    展开全文
  • Oracle创建视图

    万次阅读 2018-09-28 20:40:05
    //创建一个视图(相当于创建一张虚拟的表) create or replace view view_aa as select title,author from t_forum a,t_forumtype b where a.forumid=b.forumtypeid; select * from view_aa; 视图的优点: 1.安全...
  • 在scott用户创建视图的时候,出现错误ORA-01031:权限不足 具体解决方法如下: 1.使用dba用户登录 2.给scott用户创建视图的权限...如果上述操作还是无法创建视图,在其第二步执行下面的命令 --创建视图权限grant ...
  • Mysql创建视图语法及其创建种类

    千次阅读 2018-01-11 14:55:20
    Mysql创建视图语法及其创建种类
  • 创建视图 创建数据库视图的方式:选中库,右键,点击命令列界面,输入下方的视图脚本 创建案件的视图CREATEVIEW `视图名称`AS select id,colum1,colum2,colum3,colum4,colum5from test; 添加一个可以查...
  • 创建视图sql

    千次阅读 2019-04-15 18:46:00
    create view 视图名称 as 查询sql语句create view test2 as select * from sctest2 视图名称select * from sc 查询语句 转载于:https://www.cnblogs.com/liyunchuan/p/10712300.html...
  • Phoenix创建视图映射HBase已创建的表 前言 HBase版本:Version 1.2.0-cdh5.10.2 Phoenix版本:phoenix-4.9 网上翻了好多资料都没有搞定,这里记录一下 准备HBase 登陆HBase Shell ...
  • mysql如何创建视图

    2021-01-12 11:53:41
    在 SQL 中,视图是基于 SQL 语句的结果集的可视化的表。...mysql视图可以使用SQL CREATE VIEW命令创建。 SQL CREATE VIEW 语法: CREATE VIEW view_name AS SELECT column_name(s) FROM table_name
  • Mysql 开启视图权限与创建视图教程

    万次阅读 2017-08-09 19:56:45
    Mysql 开启视图权限与创建视图教程
  • 创建视图的原因有两个:一是出于安全考虑,用户不必看到整个数据库结构,而隐藏部分数据;二是符合用户日常业务逻辑,使其对数据更容易理解 什么是视图? 视图是另一种查看数据库中一个或多个表中数据的方法。视图...
  • 1·视图的概念2·创建视图3·使用视图 1·视图的概念什么是视图,一下咱们举个例子: 一个老板想要了解几个仓库的具体信息,想知道几个仓库里面还有多少大米、面粉、有多少种类,于是派出一个得力干将小王去清点...
  • 创建视图语句: CREATE VIEW GRM_PROFIT_VIEW AS SELECT ID, DEPT_CODE, DEPT_NAME, YMONTH, PROJECT_NAME, PROJECT_ROW, MONTH_ACCOUNT, YEAR_ACCOUNT, LASTYEAR_ACCOUNT, ADD_MIN_ACCOUNT, ADD_MIN_...
  • 2、创建视图(CREATE VIEW)

    千次阅读 2020-10-12 10:28:59
    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 基本语法 可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT...
  • 动态创建视图窗口

    千次阅读 2010-07-18 17:31:00
    但是程序需要根据实际情况来创建视图窗口,而不是在运行时就创建所有窗口。    这就需要动态创建视图      主要步骤如下:      (1) 创建单文档/视图结构应用程序    (2) 在工程中添加一个...
  • 通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2.用户通过简单的查询可以从复杂查询中得到结果。 3.维护数据的独立性,试图...
  • oracle中创建视图并查询视图

    万次阅读 2016-08-23 21:48:30
    1.创建视图:    CREATE OR REPLACE VIEW TB_CONF AS SELECT SI.SYSID id,SI.SYS_NAME_EN AS sysName,SI.SYS_NAME_CN AS sysCname,SI.RECEIVE_STATUS AS sysReceiveStatus,   SI.SEND_STATUS AS sysSendStatus,SI...
  • 达梦数据库创建视图

    2021-01-15 15:32:29
    create view "jxtxm"."v_all_user" as( (SELECT user_name AS username, user_pass AS userpwd, 'QY' AS usertype, qymc AS cn_name, id AS userid, ... AS enabled, areacode, '10' AS levelcode FROM "jxtxm"."QY...
  • 百度百科定义了什么是视图,但是对缺乏相关知识的人可能还是难以理解或者只有一个比较抽象的概念,笔者举个例子来解释下什么是视图。 朕想要了解皇宫的国库的相关情况,想知道酒窖有什么酒,剩多少,窖藏多少年,...
  • 1. 什么是视图?#【SQL server】 1>.视图是虚拟的,物理上是...Create view satffj as ---创建视图 select taffcode,staffname from staff 2. 什么是视图?#【orcl】 例如: Create or replace view satffA as...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 246,135
精华内容 98,454
关键字:

创建视图的命令是什么