精华内容
下载资源
问答
  • MySQL中,在两个或者以上的基本表上创建视图 在student表和stu_info表上,创建stu_class视图,查询出s_id号、姓名和班级 首先,创建stu_info表,并向表中插入数据 查看表中的数据 创建stu_class视图 查看视图 ...
  • 本文实例讲述了mysql视图之创建视图(CREATE VIEW)和使用限制。分享给大家供大家参考,具体如下: mysql5.x 版本之后支持数据库视图,在mysql中,视图的几乎特征符合SQL:2003标准。 mysql以两种方式处理对视图的...
  • SQL SERVER中先判断视图是否存在,使用IF NOT EXISTS,然后再创建视图,使用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/

    展开全文
  • 如何创建视图授权

    2014-06-20 22:04:44
    如何创建视图授权
  • 如何在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 ...

    In this article, we will learn the basics of the view concept in SQL Server and then explore methods to create a view in SQL using T-SQL and SQL Server Management Studio.

    在本文中,我们将学习SQL Server中视图概念的基础知识,然后探索使用T-SQL和SQL Server Management Studio在SQL中创建视图的方法。

    定义 (Definition)

    Most of the time, views can be defined as “virtual or logical” tables, but if we expand this basic definition we can understand the views more clearly. A view is a query that is stored in the database and returns the result set of the query in which it is defined. The query that defines the view can be composed of one or more tables. A view returns column or columns of the query in which it is referenced. However, we need to underline a significant point about the views, a simple view never stores data, merely it fetches the results of the query in which it is defined.

    在大多数情况下,视图可以定义为“虚拟或逻辑”表,但是如果我们扩展此基本定义,我们可以更清楚地理解视图。 视图是存储在数据库中的查询,并返回定义查询的结果集。 定义视图的查询可以由一个或多个表组成。 视图返回引用它的查询的一个或多个列。 但是,我们需要在视图上强调一个重点,一个简单的视图永远不会存储数据,只是它会获取定义了它的查询的结果。

    Query simplicity is the main advantage that comes first to our minds related to the views. We can encapsulate the complex query scripts into views so that we can use the views instead of the complex query codes. On the other hand, views can provide us to handle security issues. Each user can be granted authorization to see specific data through the views so we don’t have to struggle to give permissions to users for multiple-tables.

    查询简单是与视图相关的首要优势。 我们可以复杂的查询脚本封装到视图中,以便我们可以使用视图代替复杂的查询代码。 另一方面,视图可以为我们提供处理安全问题的方法。 可以授予每个用户通过视图查看特定数据的权限,因此我们不必费心为多个表授予用户权限。

    如何在SQL中使用单个表创建视图 (How to create a view in SQL with a single table)

    In this section, we will learn the syntax of the views. The following statement defines the syntax of a view:

    在本节中,我们将学习视图的语法。 以下语句定义了视图的语法:

    CREATE VIEW view_name AS
    SELECT column1, column2, ...
    FROM table_name
    WHERE condition;
    

    At first, we need to specify the CREATE VIEW statement and then we have to give a name to the view. In the second step, we define the SELECT statement after the AS keyword. The following example will create a view that will be named as VProductSpecialList. VProductSpecialList view fetches data from the Product table and it only returns the ProductID, Name and ProductNumber columns of the Product table:

    首先,我们需要指定CREATE VIEW语句,然后必须给视图命名。 在第二步中,我们在AS关键字之后定义SELECT语句。 下面的示例将创建一个名为VProductSpecialList的视图。 VProductSpecialList视图从产品表获取数据,它只是返回的产品ID, 产品表的名称ProductNumber列:

    CREATE VIEW VProductSpecialList
    AS
    select p.ProductID AS [ProductIdNumber] , 
    p.Name AS [ProductName],
    p.ProductNumber [ProductMainNumber] from [Production].[Product] p 
         
        WHERE ProductID >900
    

    After the creation of the view, we can retrieve data using a simple SELECT statement. The following example shows how to fetch data from the VProductSpecialList view:

    创建视图后,我们可以使用简单的SELECT语句检索数据。 以下示例显示如何从VProductSpecialList视图获取数据:

    SELECT * FROM VProductSpecialList
    

    Create a view in SQL for a singe table

    As you can see above, the column names have been replaced with aliases which are defined in the query definition of the view. In addition, the data which is fetched by the view is filtered according to the criteria of the WHERE statement.

    如您在上方所见,列名已替换为在视图的查询定义中定义的别名。 此外,根据WHERE语句的条件过滤由视图获取的数据。

    For the different circumstances, we may need some particular columns of the view for this we can only use these column names in the SELECT statement:

    对于不同的情况,为此我们可能需要视图的某些特定列,因此我们只能在SELECT语句中使用这些列名称:

    SELECT ProductIdNumber,ProductName FROM VProductSpecialList
    

    How to retrieve data from a view in SQL?

    如何在SQL中使用多表创建视图 (How to create a view in SQL with multiple-tables)

    In the previous example, we created a view for a single table but we can also create a view for joined multiple tables. In the following example, we will achieve this idea:

    在上一个示例中,我们为单个表创建了一个视图,但是我们也可以为联接的多个表创建一个视图。 在以下示例中,我们将实现此想法:

    CREATE VIEW VProductDetailList
    AS
    select p.ProductID AS [ProductIdNumber] , 
    p.Name AS [ProductName],
    p.ProductNumber [ProductMainNumber],
    pm.Name as [ProductModelName]  from [Production].[Product] p 
        INNER JOIN [Production].[ProductModel] pm 
        ON p.[ProductModelID] = pm.[ProductModelID] 
        WHERE ProductID >900
        GO
        
    SELECT * FROM VProductDetailList WHERE ProductModelName='LL Mountain Frame'
    

    Create a view in SQL for a multiple table

    The above example demonstrated how to create a view from multiple tables and then we saw, how we fetch data from this view and we also filtered fetched data of the VProductDetailList view.

    上面的示例演示了如何从多个表创建视图,然后我们看到了如何从该视图中获取数据,并且还过滤了VProductDetailList视图的获取数据。

    如何通过SSMS在SQL中创建视图 (How to create a view in SQL via SSMS)

    SQL Server Management Studio AKA SSMS is the most popular and powerful tool to manage, configure, administer and do other uncountable operations in SQL Server. So, we can create a view through SSMS.

    SQL Server Management Studio AKA SSMS是用于管理,配置,管理和执行SQL Server中其他不可数操作的最流行,功能最强大的工具。 因此,我们可以通过SSMS创建视图。

    We will launch SSMS and login the database with any user who granted to create a view. Expand the database in which we want to create a view. Then right-click on the Views folder and choose the New View option:

    我们将启动SSMS并使用任何有权创建视图的用户登录数据库。 展开我们要在其中创建视图的数据库。 然后右键单击“ 视图”文件夹,然后选择“ 新建视图”选项:

    Create a view in SQL via SSMS

    The Add Table dialog appears on the screen. On this screen, we will find and then select the Product and ProductModel tables and click Add:

    屏幕上将出现“ 添加表”对话框。 在此屏幕上,我们将找到然后选择ProductProductModel表,然后单击Add

    Add tables for view in SQL Server Management Studio

    The relations between the tables are automatically detected and created by SSMS and at the same time, the view query will be generated in the query tab automatically:

    由SSMS自动检测和创建表之间的关系,同时,将在查询选项卡中自动生成视图查询:

    Column options of the view in SSMS

    In this step, we will check in the necessary columns for the view. If we want to select all column names of the table we can check in the * (All Columns) option. We will check in ProductId, Name, ProductNumber columns in the Production table and Name column in ProductModel table. We can observe the query changing when we check in the names of the columns in tables:

    在此步骤中,我们将检查视图的必要列。 如果要选择表的所有列名,可以在*(所有列)选项中进行检查。 我们将检入Production表中的ProductIdNameProductNumber列和ProductModel表的Name列。 当我们检查表中列的名称时,我们可以观察到查询的变化:

    Query options of the view in SSMS

    We will set aliases of the columns:

    我们将设置列的别名:

    Setting the alias options of the columns to view

    We will set the filter criteria and it will be automatically added into the WHERE condition of the query:

    我们将设置过滤条件,并将其自动添加到查询的WHERE条件中:

    Setting the filter options of the view in SSMS

    We can right-click in the table panel so that we can execute the view. The result data shows at the bottom of the screen:

    我们可以在表格面板中单击鼠标右键,以便执行视图。 结果数据显示在屏幕底部:

    Execute the view in SSMS

    Finally, we will press CTRL+S keys in order to save the view and give a name to the view and click OK:

    最后,我们将按CTRL + S键以保存视图并为视图命名,然后单击OK

    Save the view in SSMS

    The created view can be found under the Views folder:

    可以在“ 视图”文件夹下找到创建的视图:

    Monitoring the view of the database

    如何在SQL中删除视图 (How to drop a view in SQL)

    In order to delete a view in a database, we can use the DROP VIEW statement. However, the DROP VIEW statement may return an error if the view we want to delete do not exists in the database. To overcome this issue, we can use the IF EXISTS keyword with the DROP VIEW statement. The following script deletes the vProductSpecialList from the database:

    为了删除数据库中的视图,我们可以使用DROP VIEW语句。 但是,如果我们要删除的视图在数据库中不存在,则DROP VIEW语句可能会返回错误。 为了克服这个问题,我们可以将IF EXISTS关键字与DROP VIEW语句一起使用。 以下脚本从数据库中删除vProductSpecialList

    DROP VIEW IF EXISTS [VProductSpecialList]
    

    结论 (Conclusion)

    In this article, we explored the view notion in SQL and then we learned how to create a view in SQL with two different methods. In the first one, we used the T-SQL method and the second one we used SQL Server Management Studio.

    在本文中,我们探讨了SQL中的视图概念,然后学习了如何使用两种不同的方法在SQL中创建视图。 在第一个中,我们使用T-SQL方法,第二个中,我们使用SQL Server Management Studio。

    翻译自: https://www.sqlshack.com/how-to-create-a-view-in-sql-server/

    展开全文
  • Oracle过程中创建视图实例
  • 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;
    
    展开全文
  • 2、创建视图(CREATE VIEW)

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

    创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。

    基本语法

    可以使用 CREATE VIEW 语句来创建视图。

    语法格式如下:

    CREATE VIEW <视图名> AS <SELECT语句>
    

    语法说明如下。

    • <视图名>:指定视图的名称。该名称在数据库中必须是唯一的,不能与其他表或视图同名。
    • <SELECT语句>:指定创建视图的 SELECT 语句,可用于查询多个基础表或源视图。

    对于创建视图中的 SELECT 语句的指定存在以下限制:

    • 用户除了拥有 CREATE VIEW 权限外,还具有操作中涉及的基础表和其他视图的相关权限。
    • SELECT 语句不能引用系统或用户变量。
    • SELECT 语句不能包含 FROM 子句中的子查询。
    • SELECT 语句不能引用预处理语句参数。

    视图定义中引用的表或视图必须存在。但是,创建完视图后,可以删除定义引用的表或视图。可使用 CHECK TABLE 语句检查视图定义是否存在这类问题。

    视图定义中允许使用 ORDER BY 语句,但是若从特定视图进行选择,而该视图使用了自己的 ORDER BY 语句,则视图定义中的 ORDER BY 将被忽略。

    视图定义中不能引用 TEMPORARY 表(临时表),不能创建 TEMPORARY 视图。

    WITH CHECK OPTION 的意思是,修改视图时,检查插入的数据是否符合 WHERE 设置的条件。

    创建基于单表的视图

    MySQL 可以在单个数据表上创建视图。

    查看 test_db 数据库中的 tb_students_info 表的数据,如下所示。

    mysql> SELECT * FROM tb_students_info;
    +----+--------+---------+------+------+--------+------------+
    | id | name   | dept_id | age  | sex  | height | login_date |
    +----+--------+---------+------+------+--------+------------+
    |  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
    |  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
    |  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
    |  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
    |  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
    |  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
    |  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
    |  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
    |  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
    | 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
    +----+--------+---------+------+------+--------+------------+
    

    【实例 1】在 tb_students_info 表上创建一个名为 view_students_info 的视图,输入的 SQL 语句和执行结果如下所示。

    mysql> CREATE VIEW view_students_info
        -> AS SELECT * FROM tb_students_info;
    
    mysql> SELECT * FROM view_students_info;
    +----+--------+---------+------+------+--------+------------+
    | id | name   | dept_id | age  | sex  | height | login_date |
    +----+--------+---------+------+------+--------+------------+
    |  1 | Dany   |       1 |   25 | F    |    160 | 2015-09-10 |
    |  2 | Green  |       3 |   23 | F    |    158 | 2016-10-22 |
    |  3 | Henry  |       2 |   23 | M    |    185 | 2015-05-31 |
    |  4 | Jane   |       1 |   22 | F    |    162 | 2016-12-20 |
    |  5 | Jim    |       1 |   24 | M    |    175 | 2016-01-15 |
    |  6 | John   |       2 |   21 | M    |    172 | 2015-11-11 |
    |  7 | Lily   |       6 |   22 | F    |    165 | 2016-02-26 |
    |  8 | Susan  |       4 |   23 | F    |    170 | 2015-10-01 |
    |  9 | Thomas |       3 |   22 | M    |    178 | 2016-06-07 |
    | 10 | Tom    |       4 |   23 | M    |    165 | 2016-08-05 |
    +----+--------+---------+------+------+--------+------------+
    

    默认情况下,创建的视图和基本表的字段是一样的,也可以通过指定视图字段的名称来创建视图。

    【实例 2】在 tb_students_info 表上创建一个名为 v_students_info 的视图,输入的 SQL 语句和执行结果如下所示。

    mysql> CREATE VIEW v_students_info
        -> (s_id,s_name,d_id,s_age,s_sex,s_height,s_date)
        -> AS SELECT id,name,dept_id,age,sex,height,login_date
        -> FROM tb_students_info;
    
    mysql> SELECT * FROM v_students_info;
    +------+--------+------+-------+-------+----------+------------+
    | s_id | s_name | d_id | s_age | s_sex | s_height | s_date     |
    +------+--------+------+-------+-------+----------+------------+
    |    1 | Dany   |    1 |    24 | F     |      160 | 2015-09-10 |
    |    2 | Green  |    3 |    23 | F     |      158 | 2016-10-22 |
    |    3 | Henry  |    2 |    23 | M     |      185 | 2015-05-31 |
    |    4 | Jane   |    1 |    22 | F     |      162 | 2016-12-20 |
    |    5 | Jim    |    1 |    24 | M     |      175 | 2016-01-15 |
    |    6 | John   |    2 |    21 | M     |      172 | 2015-11-11 |
    |    7 | Lily   |    6 |    22 | F     |      165 | 2016-02-26 |
    |    8 | Susan  |    4 |    23 | F     |      170 | 2015-10-01 |
    |    9 | Thomas |    3 |    22 | M     |      178 | 2016-06-07 |
    |   10 | Tom    |    4 |    23 | M     |      165 | 2016-08-05 |
    +------+--------+------+-------+-------+----------+------------+
    

    可以看到,view_students_info 和 v_students_info 两个视图中的字段名称不同,但是数据却相同。因此,在使用视图时,可能用户不需要了解基本表的结构,更接触不到实际表中的数据,从而保证了数据库的安全。

    创建基于多表的视图

    MySQL 中也可以在两个以上的表中创建视图,使用 CREATE VIEW 语句创建。

    【实例 3】在表 product 和表product_price 上创建视图product_view_info,输入的 SQL 语句和执行结果如下所示。

    CREATE VIEW product_view_info (商品ID,商品名,进货价,出售价)
    AS SELECT product.productid,product.productname,product.price,product_price.price
    FROM product,product_price WHERE product.productid=product_price.productid;
    
    mysql> SELECT * FROM product_view_info;
    
    

    在这里插入图片描述

    通过这个视图可以很好地保护基本表中的数据。商品ID 字段对应 product表中的 productid 字段,商品名 字段对应 product表中的 productname字段,进货价字段对应 product 表中的 price字段,出售价字段对应product_price表中的price字段。

    查询视图

    视图一经定义之后,就可以如同查询数据表一样,使用 SELECT 语句查询视图中的数据,语法和查询基础表的数据一样。

    视图用于查询主要应用在以下几个方面:

    • 使用视图重新格式化检索出的数据。
    • 使用视图简化复杂的表连接。
    • 使用视图过滤数据。

    DESCRIBE 可以用来查看视图,语法如下:

    DESCRIBE 视图名;
    

    【实例 4】通过 DESCRIBE 语句查看视图 v_students_info 的定义,输入的 SQL 语句和执行结果如下所示。

    mysql> DESCRIBE v_students_info;
    +----------+---------------+------+-----+------------+-------+
    | Field    | Type          | Null | Key | Default    | Extra |
    +----------+---------------+------+-----+------------+-------+
    | s_id     | int(11)       | NO   |     | 0          |       |
    | s_name   | varchar(45)   | YES  |     | NULL       |       |
    | d_id     | int(11)       | YES  |     | NULL       |       |
    | s_age    | int(11)       | YES  |     | NULL       |       |
    | s_sex    | enum('M','F') | YES  |     | NULL       |       |
    | s_height | int(11)       | YES  |     | NULL       |       |
    | s_date   | date          | YES  |     | 2016-10-22 |       |
    +----------+---------------+------+-----+------------+-------+
    

    注意:DESCRIBE 一般情况下可以简写成 DESC,输入这个命令的执行结果和输入 DESCRIBE 是一样的。

    展开全文
  • MySQL创建视图语法,MySQL视图的作用

    千次阅读 2019-10-01 14:32:22
    MySQL创建视图语法,MySQL视图的作用 一、语法 1、 MySQL创建视图语法如下: CREATE VIEW view_name AS SELECT * FROM table_name ; 2、view_name:必填,唯一不可重复。 3、调用视图: SELECT * FROM ...
  • Oracle数据库创建视图

    千次阅读 2020-01-02 16:19:56
    Oracle数据库用户创建视图 学生表(学生编号、学员姓名、学员年龄) 课程表(课程编号、课程名称、所在阶段) 成绩表(学员编号、课程编号、分数、考试时间) 1.为教员级别的用户创建一个视图,用来查询每门课的课程...
  • Oracle 数据库创建视图

    千次阅读 2019-08-08 10:34:35
    首先应确认登录用户有无创建视图的权限,如没有,请以DBA用户登录,赋予ceshi用户创建视图的权限; grant create view to ceshi;--1.以DBA用户登录赋予权限; create view vi_boss as select b.first_name,b....
  • Mysql 视图基础和动态创建视图

    千次阅读 2019-01-31 16:58:52
    视图的定义: 视图(View)是一种虚拟存在的表,对于使用视图的... 根据不同的需求,可以创建不同的视图,满足不同的权限所能查到的数据,也能屏蔽一些隐私性信息。 使用视图,可以简化数据操作 一个复杂的查询创...
  • MySQL——创建视图

    千次阅读 2018-05-16 20:05:04
    创建视图是指在已经存在的数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。一. 查看用户是否具有创建视图的权限 创建视图需要具有 CREATE VIEW 的权限,同时应该具有查询涉及的列的 ...
  • SQL语句--创建视图

    千次阅读 2021-03-02 17:45:21
    SQL语句–创建视图 写这个创建视图的语句 首先我们要写出 相关内容的查询语句 eg: select* from Student t1 inner join Teacher t2 on t1.no=t2.no where t2.Tname='Mimo_YY' 然后写外框架,即完成 create VIEW ...
  • MySQL数据库视图:视图定义、创建视图、修改视图

    万次阅读 多人点赞 2017-03-20 11:54:15
    视图是指计算机数据库中的视图,是一个虚拟表,其内容由查询定义。视图不直接存储数据,不知真正的表。 关系型数据库中的数据是由一张一张的二维关系表所组成,简单的单表查询只需要遍历一个表,而复杂的多表查询...
  • mysql视图之创建视图(CREATE VIEW)和使用限制

    万次阅读 多人点赞 2018-07-12 15:26:10
    mysql以两种方式处理对视图的查询:第一种方式,MySQL会根据视图定义语句创建一个临时表,并在此临时表上执行传入查询。第二种方式,MySQL将传入查询与查询定义为一个查询并执行组合查询。mysql支持版本系统的视图...
  • SQL语句之数据库之创建视图

    千次阅读 2021-03-31 23:15:58
    MySQL之创建视图
  • SQLServer之创建视图

    万次阅读 2018-10-24 11:33:17
    使用SSMS数据库管理工具创建视图 1、连接数据库,选择数据库,展开数据库-》右键视图-》选择新建视图。 2、在添加表弹出框-》选择要创建视图的表、视图、函数、或者同义词等-》点击添加-》添加完成后选择关闭。 ...
  • 创建视图 视图包含应用的 HTML 代码,并将应用的控制器逻辑和表现逻辑进行分离。视图文件存放在 resources/views 目录中。下面是一个简单的视图示例: &lt;!-- resources/views/greeting.blade.php 视图文件 ...
  • 创建视图在单表上创建视图在多表上创建视图
  • Phoenix创建视图映射HBase已创建的表 前言 HBase版本:Version 1.2.0-cdh5.10.2 Phoenix版本:phoenix-4.9 网上翻了好多资料都没有搞定,这里记录一下 准备HBase 登陆HBase Shell ...
  • Oracle中创建视图

    万次阅读 2018-07-17 16:14:34
    Oracle中创建视图  视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。视图基于的表称为基表。  视图是存储在数据字典里的一条select语句。 通过创建视图可以...
  • Mysql创建视图语法及其创建种类

    千次阅读 2018-01-11 14:55:20
    Mysql创建视图语法及其创建种类
  • 在mybatis中怎么创建视图

    千次阅读 2020-08-06 10:30:33
    xml文件中的代码: <insert id="createView"> create...from grid_user where "createDate"=CURRENT_DATE </update> 运行截图: 注:使用insert标签和update标签都可以,虽然会返回false,但是数据库中视图创建成功。
  • 创建视图是指在已经存在的 MySQL 数据库表上建立视图。视图可以建立在一张表中,也可以建立在多张表中。 视图的好处? 视图使用的时候跟表一样。主要作用是不让所有的人都能看到整张表。 比如有个员工信息表,里面...
  • oracle查询创建视图语句

    万次阅读 2019-02-14 10:01:30
    select view_name,text from user_views;      此处文章 转载等 https://blog.csdn.net/zhou920786312/article/details/72841143
  • SQLServer-创建视图

    千次阅读 2019-04-25 09:44:40
    创建视图 if exists (select * from sysobjects where name = 'view_t')-- view_t 视图名称 drop view [dbo].[view_t]--如果存在删除视图 go create view view_t-- view_t 视图名称 as[查询sql] go ...
  • Oracle创建视图

    千次阅读 2018-03-22 13:54:00
    在本教程中,您将学习如何使用Oracle CREATE VIEW语句在数据库中创建视图。 Oracle CREATE VIEW语法 要在数据库中创建视图,请使用以下Oracle CREATE VIEW语句: CREATE [OR REPLACE] VIEW view_name [...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 768,465
精华内容 307,386
关键字:

创建视图