CREATE VIEW statement

Description

Creates a view on the database. Views are used to give a different perspective on the data even though it is not stored that way.

Syntax

CREATE VIEW
… [ owner.]view-name [ ( column-name [ , … ] ) ]
… AS select-without-order-by
… [ WITH CHECK OPTION ]

Examples

Example 1

Creates a view showing all information for male employees only. This view has the same column names as the base table.

CREATE VIEW male_employee
AS SELECT *
FROM Employees
WHERE Sex = 'M'

Example 2

Creates a view showing employees and the departments they belong to:

CREATE VIEW emp_dept
AS SELECT Surname, GivenName, DepartmentName
FROM Employees JOIN Departments
ON Employees.DepartmentID = Departments.DepartmentID

Usage

A view can be created for another user by specifying the owner. You must have DBA authority to create a view for another user.

A view name can be used in place of a table name in SELECT, DELETE, UPDATE, and INSERT statements. Views, however, do not physically exist in the database as tables. They are derived each time they are used. The view is derived as the result of the SELECT statement specified in the CREATE VIEW statement. Table names used in a view should be qualified by the user ID of the table owner. Otherwise, a different user ID might not be able to find the table or might get the wrong table.

The columns in the view are given the names specified in the column name list. If the column name list is not specified, then the view columns are given names from the select list items. To use the names from the select list items, the items must be a simple column name or they must have an alias name specified (see SELECT statement). You cannot add or drop IDENTIY/AUTOINCREMENT columns from a view.

Views can be updated unless the SELECT statement defining the view contains a GROUP BY clause, an aggregate function, or involves a UNION operation. An update to the view causes the underlying tables to be updated.

view-name An identifier. The default owner is the current user ID.

column-name The columns in the view are given the names specified in the column-name list. If the column name list is not specified, the view columns are given names from the select list items. To use the names from the select list items, each item must be a simple column name or have an alias name specified (see SELECT statement).

AS The SELECT statement on which the view is based must not contain an ORDER BY clause, a subquery in the SELECT list, or a TOP or FIRST qualification. It may have a GROUP BY clause and may be a UNION.

WITH CHECK OPTION Rejects any updates and inserts to the view that do not meet the criteria of the views as defined by its SELECT statement. However, Sybase IQ currently ignores this option (it supports the syntax for compatibility reasons).


Side effects

Automatic commit.

Standards

Permissions

Must have RESOURCE authority and SELECT permission on the tables in the view definition.

See also

CREATE TABLE statement

DROP statement

“Copy Definition utility (defncopy)” in Chapter 3, “Database Administration Utilities” in the Utility Guide