精华内容
下载资源
问答
  • 建立视图
    千次阅读
    2021-08-23 15:28:00

    (1).第一类:create view v as select * from table;

    (2).第二类:create view v as select id,name,age from table;

    (3).第三类:create view v[vid,vname,vage] as select id,name,age from table;

    如果涉及到数据量过大,业务逻辑需要跨表查询等等也可建立一个跨表的视图,有三种情况:

    一、基于同一数据库

    这种情况较为简单,只需简单的一行sql命令,如下:

    create view v as (select * from table1) union all (select * from table2);

    二、基于不同数据库

    这种情况只比上面的sql语句多一个数据库的名字,如下:

    create view 数据库1.v as (select * from 数据库1.table1) union all (select * from 数据库2.table2);

    create view 数据库2.v as (select * from 数据库1.table1) union all (select * from 数据库2.table2);

    如果执行第一个sql将在数据库1下建立视图,反之亦然;

    三、基于不同服务器

    这种情况稍微麻烦一点,需要先建立一个远程表来访问远程服务器的数据表,然后再对这个刚建立的远程表和本地表进行视图,步骤如下:

    1、查看MySql是否支持federated引擎

        (1).登录Mysql;    

        (2).mysql>show engines;

        (3).如果显示为no,在配置文件中添加:federated (在my.ini),重新启动mysql服务。

    2、创建远程表

         mysql>CREATE TABLE federated_table (

                       id  INT(20)  NOT NULL AUTO_INCREMENT,  

                      name  VARCHAR(32) NOT NULL DEFAULT '',  

                      other  INT(20) NOT NULL DEFAULT '0',   

                      PRIMARY KEY  (id)

                     )

                     ENGINE=FEDERATEDDEFAULT

                     CHARSET=utf8

                     CONNECTION='mysql://fed_user@remote_host:9306/federated/test_table';

    CONNECTION可以按如下方式进行配置:

          (1).CONNECTION='mysql://username:password@hostname:port/database/tablename'

          (2).CONNECTION='mysql://username@hostname/database/tablename'

          (3).CONNECTION='mysql://username:password@hostname/database/tablename'

    3、建立视图

    create view 本地数据库.v as (select * from 本地数据库.table1) union all (select * from 远程数据库.test_table);

    落霞与孤鹜齐飞,秋水共长天一色。

    更多相关内容
  • 本文实例讲述了mysql视图之创建视图(CREATE VIEW)和使用限制。分享给大家供大家参考,具体如下: mysql5.x 版本之后支持数据库视图,在mysql中,视图的几乎特征符合SQL:2003标准。 mysql以两种方式处理对视图的...
  • MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号、姓名和班级 首先,创建stu_info表,并向表中插入数据 查看表中的数据 创建stu_class视图 查看视图 ...
  • MySQL如何创建视图

    2021-01-19 21:47:29
    可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。 ...
  • 三张表连接·· A表的a字段 对应 B表的b字段 ,B表的b1字段对应C 表的c字段 ...两表链接创建视图 CREATE TABLE `aa_user` ( `id` int(10) NOT NULL, `name` varchar(10) DEFAULT NULL, `age` int(10) DEFAU
  • Oracle创建视图(View)

    2018-12-06 14:14:23
    通过创建视图可以提取数据的逻辑上的集合或组合。 视图的优点: 1.对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。 2.用户通过简单的查询可以从复杂查询中得到结果。 3.维护数据的独立性,...
  • oracle 创建视图

    千次阅读 2021-05-01 03:39:13
    1,视图概念:视图是一个逻辑结构,本身...2,创建视图需要有DBA权限。3,语法:CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[,alias]..)]AS subquery;4,create or replace 表示若视图存在则替换掉;如:...

    1,视图概念:视图是一个逻辑结构,本身不包含任何数据,是一个可命名的select语句。

    透过视图可以看到底层数据,但是视图和数据是相互独立的。

    2,创建视图需要有DBA权限。

    3,语法:CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(alias[,alias]..)]

    AS subquery;

    4,create or replace 表示若视图存在则替换掉;

    如:

    SQL> create view testview3

    2  as

    3  select * from test3;

    视图已创建。

    SQL> create view testview3

    2  as

    3  select * from test3;

    create view testview3

    *

    第 1 行出现错误:

    ORA-00955: 名称已由现有对象使用

    修改视图:

    SQL> create or replace view testview3

    2  as

    3  select * from test3;

    视图已创建。

    5,force 表示若表不存在则强制创建视图;

    如:SQL> create view tt

    2  as

    3  select * from tt;

    create view tt

    *

    第 1 行出现错误:

    ORA-01731: 出现循环的视图定义

    SQL> create force view tt

    2  as

    3  select * from tt;

    警告: 创建的视图带有编译错误。

    6,查看视图结构:

    SQL> desc testview3;

    名称                                      是否为空? 类型

    ------------------------------------- -------- ----------------------------

    ID                                        NOT NULL NUMBER(38)

    LNAME                                              VARCHAR2(20)

    FNAME                                              VARCHAR2(20)

    7,在使用聚合函数创建视图时,需制定别名;

    SQL> create view testview4

    2  as

    3  select id,sum(id) from test3

    4  group by id;

    select id,sum(id) from test3

    *

    第 3 行出现错误:

    ORA-00998: 必须使用列别名命名此表达式

    SQL> create view testview4

    2  as

    3  select id,sum(id) test3_id from test3

    4  group by id;

    视图已创建。

    8,更新视图:

    SQL> select * from testview5;

    TEST5_ID TEST5_NAME           TEST5_FNAME

    ---------- -------------------- --------------------

    3 kong                 sales

    2 hh

    SQL> update testview5 set test5_name='kong_gai'

    2  where test5_id=3;

    已更新 1 行。

    SQL> select * from testview5;

    TEST5_ID TEST5_NAME           TEST5_FNAME

    ---------- -------------------- --------------------

    3 kong_gai             sales

    2 hh

    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/30272993/viewspace-1693196/,如需转载,请注明出处,否则将追究法律责任。

    展开全文
  • 问题描述:在scott用户下创建视图的时候,报错:权限不足。 (其他用户以此类推) 解决方法: 以dba用户登录 [sql] 代码如下: sqlplus / as sysdba 赋予scott用户创建VIEW的权限 [sql] 代码如下: grant create view ...
  • 创建视图SQL:在SQL Server中创建视图

    万次阅读 2020-07-17 13:42:32
    可以通过说出CREATE VIEW后跟一个具有WITH视图属性的名称来创建视图: ENCRYPTION – Using this attribute prevents the view from being published as part of SQL Server replication 加密 –使用此属性可防止...

    介绍 (Introduction)

    In this article, we are going to see how to use the CREATE VIEW SQL statement to create a view. This is the first article in a series that will be a programmatical approach of creating, altering and working with views using T-SQL. If you are a beginner and you don’t even know what a view is, don’t worry. We will kick off with a definition, and then move on to some basics like syntax, examples, use cases, etc.

    在本文中,我们将了解如何使用CREATE VIEW SQL语句创建视图。 这是本系列的第一篇文章,它将是使用T-SQL创建,更改和使用视图的编程方法。 如果您是初学者,甚至不知道视图是什么,请不要担心。 我们将从定义开始,然后继续一些基础知识,例如语法,示例,用例等。

    A view is simply a virtual table. Think of it as just a query that is stored on SQL Server and when used by a user, it will look and act just like a table but it’s not. It is a view and does not have a definition or structure of a table. Its definition and structure is simply a query that, under the hood, can access many tables or a part of a table.

    视图只是一个虚拟表。 可以将其视为仅存储在SQL Server上的查询,并且当用户使用它时,它的外观和作用就像表一样,但事实并非如此。 它是一个视图,没有表的定义或结构。 它的定义和结构只是一个查询,它可以在后台访问许多表或表的一部分。

    Views can be used for a few reasons. Some of the main reasons are as follows:

    出于某些原因,可以使用视图。 一些主要原因如下:

    • To simplify database structure to the individuals using it

      为了简化使用它的个人的数据库结构
    • As a security mechanism to DBAs for allowing users to access data without granting them permissions to directly access the underlying base tables

      作为DBA的安全机制,允许用户访问数据而无需授予他们直接访问基础基表的权限
    • To provide backward compatibility to applications that are using our database

      为了向后兼容使用我们数据库的应用程序

    Having said that, those reasons are a topic for designing views which we will not touch in this series. In this article, we are going to go through the CREATE VIEW SQL syntax, see what views are all about, and what we can do with them.

    话虽如此,这些原因是设计视图的主题,在本系列中我们将不作讨论。 在本文中,我们将介绍CREATE VIEW SQL语法,查看所有视图的含义以及如何使用它们。

    句法 (Syntax)

    CREATE  OR ALTER  VIEW  schema_name.view_name
    WITH <view_attribute>
    AS select_statement   
    [WITH CHECK OPTION]
    

    We all know how complicated syntax can get but this is not the case with views. A view can be created by saying CREATE VIEW followed by a name WITH view attributes:

    我们都知道语法会变得多么复杂,但是视图却并非如此。 可以通过说出CREATE VIEW后跟一个具有WITH视图属性的名称来创建视图:

    • ENCRYPTION – Using this attribute prevents the view from being published as part of SQL Server replication 加密 –使用此属性可防止视图作为SQL Server复制的一部分发布
    • SCHEMABINDING – Binds the view to the schema of the underlying table. We will use this one in another article when indexing a view SCHEMABINDING –将视图绑定到基础表的架构。 索引视图时,我们将在另一篇文章中使用它
    • VIEW_METADATA – Causes SQL Server to return to the DB-Library, ODBC, and OLE DB APIs the metadata information about the view VIEW_METADATA –使SQL Server返回DB-Library,ODBC和OLE DB API有关视图的元数据信息

    After the AS, it goes the actual SELECT statement that defines the query. This is usually the bulk of a query AKA the DML statement that is going to make the view and its results.

    在AS之后,它将进入定义查询的实际SELECT语句。 这通常是查询(即要生成视图及其结果的DML语句)的大部分。

    The WITH CHECK OPTION is very useful when inserting data through a view. When a row is modified through a view, this option gives us control over inserted data into the table that follows the WHERE clause in the view’s definition. More about this in the upcoming article.

    通过视图插入数据时,WITH CHECK OPTION非常有用。 通过视图修改行时,此选项使我们可以控制插入到表中的数据,该数据紧随视图定义中的WHERE子句。 在即将到来的文章中对此有更多的了解。

    CREATE VIEW SQL语句 (CREATE VIEW SQL statement)

    Without further ado, let’s fire up SQL Server Management Studio and start working on views. Before we use the CREATE VIEW SQL statement, let’s create a new database from Object Explorer called SQLShackDB, and then create a few tables in it by running the script from below:

    事不宜迟,让我们启动SQL Server Management Studio并开始处理视图。 在使用CREATE VIEW SQL语句之前,让我们从Object Explorer创建一个名为SQLShackDB 的新数据库 ,然后通过从下面运行该脚本在其中创建一些表:

    CREATE TABLE Employees
    (EmployeeID    INT NOT NULL, 
     FirstName     NVARCHAR(50) NOT NULL, 
     MiddleName    NVARCHAR(50) NULL, 
     LastName      NVARCHAR(75) NOT NULL, 
     Title         NVARCHAR(100) NULL, 
     HireDate      DATETIME NOT NULL, 
     VacationHours SMALLINT NOT NULL, 
     Salary        DECIMAL(19, 4) NOT NULL
    );
    GO
    CREATE TABLE Products
    (ProductID INT NOT NULL, 
     Name      NVARCHAR(255) NOT NULL, 
     Price     DECIMAL(19, 4) NOT NULL
    );
    GO
    CREATE TABLE Sales
    (SalesID    UNIQUEIDENTIFIER NOT NULL, 
     ProductID  INT NOT NULL, 
     EmployeeID INT NOT NULL, 
     Quantity   SMALLINT NOT NULL, 
     SaleDate   DATETIME NOT NULL
    );
    GO
    

    T-SQL script for creating three sample tables in SQLShack database

    Now, that we have our sample database with tables in it, we can create a view called vEmployeesWithSales using the script from below as an example:

    现在,我们有了包含表的示例数据库,我们可以使用下面的脚本作为示例,创建一个名为vEmployeesWithSales的视图:

    USE SQLShackDB;
    GO
    CREATE VIEW vEmployeesWithSales
    AS
         SELECT DISTINCT 
                Employees.*
         FROM Employees
              JOIN Sales ON Employees.EmployeeID = Sales.EmployeeID;
    GO
    

    This is a simple view with a simple SELECT statement that returns a list of employees that have a sale. As a matter of fact, you can always test the query before creating the view by executing only the SELECT part of the CREATE VIEW SQL statement and it’s a good idea to see if the query will return something. Make sure that you are connected to the appropriate database first, then mark the SELECT part of the code, and hit Execute:

    这是带有简单SELECT语句的简单视图,该语句返回具有销售记录的雇员的列表。 实际上,您始终可以通过仅执行CREATE VIEW SQL语句的SELECT部分​​来在创建视图之前测试查询,这是个好主意,看看查询是否会返回某些内容。 确保首先连接到适当的数据库,然后标记代码的SELECT部分​​,然后单击Execute

    CREATE VIEW SQL script for creating a simple view

    The query returns no result because we don’t actually have any data in our new tables, but you can see the list of columns that returned. The next thing we can do is insert some data into tables. To do this, use the following script:

    该查询未返回任何结果,因为新表中实际上没有任何数据,但是您可以看到返回的列的列表。 我们可以做的下一件事是将一些数据插入表中。 为此,请使用以下脚本:

    USE SQLShackDB;
    GO
        
    INSERT INTO Employees SELECT 1, 'Ken', NULL, 'Sánchez', 'Sales Representative', '1/1/2016', 2080, 45000;
    INSERT INTO Employees SELECT 2, 'Janice', NULL, 'Galvin', 'Sales Representative', '12/11/2016', 2080, 45000;
        
    INSERT INTO Products SELECT 1, 'Long-Sleeve Logo Jersey, S', 12.99;
    INSERT INTO Products SELECT 2, 'Long-Sleeve Logo Jersey, M', 14.99;
    INSERT INTO Products SELECT 3, 'Long-Sleeve Logo Jersey, L', 16.99;
    INSERT INTO Products SELECT 4, 'Long-Sleeve Logo Jersey, XL', 18.99;
        
    INSERT INTO Sales SELECT NEWID(), 1, 1, 4, '04/15/2016';
    INSERT INTO Sales SELECT NEWID(), 2, 1, 1, '02/01/2016';
    INSERT INTO Sales SELECT NEWID(), 3, 1, 2, '03/12/2016';
    INSERT INTO Sales SELECT NEWID(), 2, 2, 2, '03/18/2016';
    INSERT INTO Sales SELECT NEWID(), 3, 2, 1, '04/16/2016';
    INSERT INTO Sales SELECT NEWID(), 4, 2, 2, '04/23/2016';
    

    Just to make sure that data is inserted into our tables successfully, re-execute the SELECT part of the CREATE VIEW SQL statement and it should return the following:

    为了确保将数据成功插入到我们的表中,请重新执行CREATE VIEW SQL语句的SELECT部分​​,它应该返回以下内容:

    The results returned by SELECT part of the CREATE VIEW SQL script

    Note that we are using the DISTINCT with SELECT to prevent the retrieval of duplicate records because both employees have multiple records.

    请注意,由于两个雇员都有多个记录,因此我们将DISTINCT与SELECT一起使用以防止检索重复记录。

    Let’s get back to our view and see how it looks in our database. If we head over to Object Explorer and expand the Views folder under our demo database, we will find our view that looks exactly like a table because it has columns in it:

    让我们回到视图,看看它在数据库中的外观。 如果我们转到对象资源管理器并展开我们的演示数据库下的“ 视图”文件夹,我们会发现我们的视图看上去完全像一个表,因为其中包含列:

    The view in Object Explorer as a result of a successfully executed CREATE VIEW SQL statement

    These are all columns that this view will return. Let’s see what happens if we treat this view as a table. Write a SELECT statement but instead of saying select everything from and then the name of a table, we will simply say from a view:

    这些都是该视图将返回的所有列。 让我们看看如果将此视图视为表格会发生什么。 编写SELECT语句,而不是说先从中选择所有内容,然后再选择表名,我们将仅从视图中说出:

    SELECT * FROM vEmployeesWithSales
    

    Results of a SELECT query using the view as the source

    As can be seen from the figure above, the result is exactly the same as when querying data using actual tables.

    从上图可以看出,结果与使用实际表查询数据时完全相同。

    Like any other object in SQL Server, views have properties too. In Object Explorer, right-click any view of which you want to view the properties and select Properties:

    像SQL Server中的任何其他对象一样,视图也具有属性。 在对象资源管理器中 ,右键单击要查看其属性的任何视图,然后选择“ 属性”

    View properties window of a view in SQL Server Management Studio

    Notice that here you can see the actual options that the view was created with to understand how its data is derived from the actual tables:

    注意,在这里您可以看到创建视图的实际选项,以了解其数据是如何从实际表中派生的:

    • ANSI NULLs – It indicates if the object was created with the ANSI NULLs option ANSI NULL –指示是否使用ANSI NULLs选项创建对象
    • Encrypted – Specifies whether the view is encrypted 已加密 –指定视图是否已加密
    • Quoted identifier – Shows if the object was created with the quoted identifier option 带引号的标识符 –显示是否使用带引号的标识符选项创建对象
    • Schema bound – Designates whether the view is schema-bound 架构绑定 –指定视图是否绑定架构

    结论 (Conclusion)

    In this article, the goal was only to get familiar with the CREATE VIEW SQL statement syntax and creating a basic view. Moving on to a bit more complex stuff like creating a view with aggregates in it will be the focus in the next article. In other words, we are going to use the DLM language (Data Manipulation Language) and write some more advance SELECT queries.

    在本文中,目标只是熟悉CREATE VIEW SQL语句语法并创建基本视图。 下一篇文章将重点介绍更复杂的内容,例如创建带有聚合的视图。 换句话说,我们将使用DLM语言(数据操作语言)并编写一些更高级的SELECT查询。

    I hope this article on CREATE VIEW SQL statement has been informative for you and I thank you for reading it. Stay tuned for the next one…

    我希望有关CREATE VIEW SQL语句的这篇文章对您有所帮助,也感谢您阅读本文。 请继续关注下一个…

    目录 (Table of contents)

    CREATE VIEW SQL: Creating views in SQL Server
    CREATE VIEW SQL: Modifying views in SQL Server
    CREATE VIEW SQL: Inserting data through views in SQL Server
    CREATE VIEW SQL: Working with indexed views in SQL Server
    创建视图SQL:在SQL Server中创建视图
    创建视图SQL:在SQL Server中修改视图
    CREATE VIEW SQL:通过SQL Server中的视图插入数据
    CREATE VIEW SQL:在SQL Server中使用索引视图

    翻译自: https://www.sqlshack.com/create-view-sql-creating-views-in-sql-server/

    展开全文
  • Oracle 视图(1)建立视图

    千次阅读 2020-12-15 20:59:26
    一、 视图是基于表的表或者视图的逻辑表,与储存数据的表一样都是Oracle的方案对象。 视图通常用于下面: 1、通过提供用户所需要的的基表中的数据,可以简化用户对数据的理解,隐藏表结构的复杂性,而且可以将那些...

    一、 视图是基于表的表或者视图的逻辑表,与储存数据的表一样都是Oracle的方案对象。
    视图通常用于下面:
    1、通过提供用户所需要的的基表中的数据,可以简化用户对数据的理解,隐藏表结构的复杂性,而且可以将那些经常使用的使用的查询定义为视图,使用户不必为以后的每次操作指定全部的条件。
    2、通过限制对一组预定义的表行或者表列的访问你,可以提供更好的安全性级别。通过Oracle的预授权命令作用于视图,可以让全县被限制在基于的行或列的子集上,提供高细的安全性级别。
    3、可以提供不同于基表的角度来呈现视图的数据,了如重命名视图的列,而不会印象到视图所基于的表。
    4、隔离应用程序对基表的更改,对数据的更改有时候并不会影响都视图。
    二、 视图的分类:
    1、标准视图,使用CREATE VIEW 语句创建的存储的的查询,这类视图创建后会保存到数据字典中,并且作为一个方案对象存在。
    2、内嵌视图,在SQL查询语句中直接包含一个子查询,比如在SELECT 语句中包含其他的SELECT 字句,实际上创建了内嵌视图。这种视图只在查询存在,不会保存到数据字典中。
    3、对象视图,使用对象试图可以将标准的表或者视图转换为对象类型的视图,可以迎合对象类型的查询而不用重建数据表,使得既可以利用对象编程,又可以使用到传统关系型数据查询的优势。对象视图创建后也会在数据字典中保存特性。对象数据实际上仍然以关系数据的形式储存,但是利用对象的封装行、继承等特性,可以为开发人员提供灵活的处理方式。
    4、物化视图,这种视图会真实地储存数据,它与标准视图仅储存查询语句大不相同,无话视图是查询结果被提前储存或“物化”的方案对象,它主要用来汇总、计算、复制和分发数据。
    三、视图创建的语法

    CREATE [OR REPLACE] [FORCE | NOFORCE | ] VIEW view 
    [ (alias [, alias] ...) ]
    AS subquery
    [ WITH CHECK OPTION [ CONSTRAINT constraint ] ]
    [ WITH READ ONLY [ CONSTRAINT constraint ] ];
    

    OR REPLACE, 如果视图已经存在,重建创建它。
    FORCE ,强制创建视图,二不管基表是否存在。
    NOFORCE ,只在基表存在的情况下创建视图(这是默认值)。
    view,指定视图的名字。
    alias,为由视图查询选择的表达式指定名字(别名的个数必须与由视图SELECT选择的列的个数匹配)。
    subquery,是一个完整的SELECT语句(对于在SELECT 列表中的字段可以用别名)。
    WITH CHECK OPTION,指定只有可访问的列才能在视图中被插入或者修改。
    constraint ,为CHECK OPTION约束指定的名字。
    WITH READ ONLY,只读视图,确保在该视图中没有DML操作能被执行。

    四、创建简单的视图

    --创建视图
    CREATE OR REPLACE VIEW v_buser
            AS
            SELECT id 编号, account 账号, email 邮箱, mobile 电话, name 姓名, sex  性别, birth 生日
                    FROM buser;
    --查询视图
    SELECT * FROM v_buser;
    

    在这里插入图片描述

    --也可以这样建view
    CREATE OR REPLACE VIEW v_buser(
    	编号,
    	账号,
    	邮箱,
    	电话,
    	姓名,
    	性别,
    	生日
    )
    	AS 
    	SELECT id, account, email ,mobile ,name ,sex  ,birth 
    		FROM buser;
    

    向视图中插入数据,基表是单表的视图可以插入数据,但是注意视图如果只有基表的几个列,没有包含基表中的唯一索引、主键、非空的列,是不能插入数据的。在向视图插入记录,实际是向表插入数据。如果基表被删除,基于基表建立的视图也会不能查询,会提示错误
    ORA-04063: view “TEST.V_BUSER” has errors 。
    五、使用WITH CHECK OPTION创建视图

    CREATE OR REPLACE VIEW v_buser1
    		AS 
    		SELECT a.id 编号, a.account 帐号,a.email 邮箱, a.mobile 电话, a.name 姓名, a.sex  性别, a.time 时间, a.status 状态
    				FROM buser a
    		WITH CHECK OPTION CONSTRAINT v_buser1;
    

    向这个视图插入数据会提示错误

    六、创建复杂视图
    创建俩个基表以上的视图

    CREATE OR REPLACE VIEW v_buser
    		AS 
    		SELECT a.id 编号, a.account 帐号,a.email 邮箱, a.mobile 电话, a.name 姓名, a.sex  性别, b.zhye 余额, a.time 时间, a.status 状态
    				FROM buser a, bzhye b
    				WHERE a.id = b.id;
    

    向基于俩个基表以上建立视图插入记录条件比较苛刻,如果插入不可行,一般会提示错误 ORA-01776: cannot modify more than one base table through a join view。
    当复杂视图涉及多个基表是,其中至少有一个表的所有列都包含在视图中,或者一个表的的主键和不允许为空的列都包含在视图中,同事创建视图的CREATE VIEW 语句SELECT 语句中只是用了WHERE 子句不包含分组,子查询或DISTINCT关键字,这样的视图可以进行DML操作的,。相反,如果视图中的列是有基表经过运算或分组,比如使用表达式、AVG函数或DISTINCT、GROUP BY 等子句组成的,则无法进行DML操作。

    --查询视图是否可以更行
    SELECT * FROM user_updatable_columns WHERE table_name = '视图名';
    

    在Oracle中,要能对复杂的联接视图进行更新修改,必须要遵循一定的条件,这些条件概述如下所示:
    (1)所有的插入、更新和删除草做在同一时刻只能修改视图中的一个基表。
    (2)所有课更新的列必须为键保留表中列,如果视图使用WITH CHECK OPTION进行了定义,name所有的联接列和重复列都不能被更新。
    (3)只要存在一个键保留表,就能够删除视图中的列,建保留表在FROM 子句中可以重复,如果视图使用WITH CHECK OPTION定义并且键保留表被重复,那么不能从视图中删除行。
    (4)在执行插入操作时,只能对保留键表中的列进行插入,如果使用WITH CHECK OPTION进行定义的视图,则不允许进行插入操作。

    展开全文
  • 10、创建视图,显示每名学生的姓名、选修的课程门数、总周学时数、总学分数和加权平均分的查询,
  • oracle 创建视图为读
  • 文章目录1 视图的概念2 创建视图2.1 语法2.2 给字段取名字3 查看视图4 修改视图5 删除视图 1 视图的概念 视图是一种虚拟表,本身是不具有数据的,占用很少的内存空间,它是SQL中的一个重要概念。 视图建立在已有表...
  • navicat如何创建视图

    千次阅读 2022-04-19 15:53:17
    需求阐述 因为对接系统,需要一张表中的所有字段,但是有些字段是数据字典码存储的,需要做转换...其中 view_tr_student 是视图名字,“查询语句”对应的是要创建视图的表数据。 第四步:点击预览即可。 第五步:执行查
  • MySQL如何创建视图和用户

    千次阅读 2021-11-30 09:11:55
    目录 一.视图 1.1 概念 1.2 使用 ... 1.3 视图的规则和限制 ... 2.1.2 创建用户 2.1.3 删除用户 2.1.4 修改密码 2.2 数据库权限 2.2.1 给用户授权 2.2.2 回收权限 一.视图 1.1 概念 ...
  • 建立视图

    万次阅读 2018-12-09 16:39:56
    视图是从一个或几个基本表(或视图)导出的表,它与基本表不同,是一个虚表。数据库中只存放视图的定义,而不存放视图对应的数据,数据...(1)建立信息系学生的视图: CREATE VIEW IS_Student AS SELECT Sno,Sna...
  • 创建视图 数据视图 课程目标 理解 —— 创建视图的语法格式; 掌握—— 创建视图的方法; 掌握 —— 查看视图的方法。 创建视图 使用CREATE VIEW语句创建视图 语法格式: CREATE [OR REPLACE] VIEW 视图名 [(列名...
  • ORACLE 创建视图

    千次阅读 2021-06-18 08:57:00
    创建视图 CREATE VIEW 视图名称 AS SELECT…FROM…; 删除视图 DROP VIEW 视图名称;
  • mysql创建视图

    2021-12-13 23:51:27
    ​​
  • 一、需求数据库有个表car,需要为这个表建立一个视图view_car,并新建一个用户user01,赋予查询这个视图的权限二、实施步骤1、以管理员clgl登陆数据库,新建视图view_car:create or replace view view_caras select...
  • MySQL创建视图的详细步骤

    千次阅读 2021-02-03 06:35:08
    MySQL创建视图的详细步骤发布时间:2020-05-22 17:40:50来源:51CTO阅读:143作者:三月下面讲讲关于MySQL创建视图的详细步骤,文字的奥妙在于贴近主题相关。所以,闲话就不谈了,我们直接看下文吧,相信看完MySQL...
  • 创建视图的语句

    千次阅读 2021-01-28 10:22:32
    创建视图语句craete view t as select * from b;查看视图信息desc t;show table status like 't' \G;查看视图详细信息show create view '视图名' \G;二.在views中查看视图详细信息select * from information_schema....
  • 2、创建视图(CREATE VIEW)

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

    千次阅读 2021-09-13 15:44:35
    创建视图:给BILLS表创建视图。创建的视图实际上是一个虚表。 CREATE VIEW DEBTS AS SELECT * FROM BILLS; 可以选择特定的行进行新视图的创建。 CREATE VIEW CREDITCARD_DEBTS AS SELECT * FROM DEBTS WHERE ...
  • 如何在SQL Server中创建视图

    千次阅读 2020-07-25 22:30:11
    在本文中,我们将学习SQL Server中视图概念的基础知识,然后探索使用T-SQL和SQL Server Management Studio在SQL中创建视图的方法。 定义 (Definition) Most of the time, views can be defined as “virtual or ...
  • SQL篇-创建视图

    千次阅读 2021-05-16 17:19:57
    可以使用 CREATE VIEW 语句来创建视图,语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下: <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或...
  • MySQL创建视图(CREATE VIEW)

    千次阅读 2021-11-22 15:22:57
    可以使用 CREATE VIEW 语句来创建视图。 语法格式如下: CREATE VIEW <视图名> AS <SELECT语句> 语法说明如下。 <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 985,379
精华内容 394,151
关键字:

建立视图