SQL VIEW (näkymä)

Näkymät ovat visuaalisia tauluja.

Tämä luku selittää, miten näkymät luodaan, päivitetään ja poistetaan.

SQL CREATE VIEW lause

Mitä näkymä on?

SQL:ssa näkymä on visualisointi SQL-lauseen tuloksista.

Näkymät sisältävät rivejä ja sarakkeita, kuten todellinen taulu. Näkymän kentät ovat todellisia taulujen kenttiä yhdestä tai useammasta tietokannasta. Voimme lisätä SQL-funktioita, WHERE- ja JOIN-lauseita näkymään ja toimittaa tietoja, ikään kuin ne olisivat tulleet yhdestä taulusta.

Huomautus:Tietokannan suunnittelu ja rakenne ei ole vaikuttunut näkymien funktioista, where- tai join-lauseista.

SQL CREATE VIEW syntaksi

CREATE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

Huomautus:Näkymät näyttävät aina uusimmat tiedot. Kun käyttäjä kysyy näkymää, tietokantamoottori rebuildaa tiedot käyttämällä SQL-käskyjä.

SQL CREATE VIEW esimerkki

Näkymää voidaan käyttää jossain kyselyssä, jossain tallennetussa menettelyssä tai toisessa näkymässä. Voimme toimittaa käyttäjille tarkasti haluamamme tiedot lisäämällä funktioita, join ja niin edelleen näkymään.

Northwind-sampelitietokanta sisältää joitakin oletuksella asennettuja näkymiä. Näkymä "Current Product List" listaa kaikki käytössä olevat tuotteet taulusta Products. Tämä näkymä luodaan seuraavalla SQL-käskyllä:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName
FROM Products
WHERE Discontinued=No

Voimme hakea tästä näkymästä:

SELECT * FROM [Current Product List]

Toinen näkymä Northwind-sampelitietokannasta valitsee kaikki tuotteet, joiden yksikkö hinta on korkeampi kuin keskimääräinen yksikkö hinta tuotteista taulusta Products:

CREATE VIEW [Products Above Average Price] AS
SELECT ProductName,UnitPrice
FROM Products
WHERE UnitPrice>(SELECT AVG(UnitPrice) FROM Products) 

我们可以像这样查询上面这个视图:

SELECT * FROM [Products Above Average Price]

Toinen näkymä Northwind-tietokannasta laskee kaikenlaisille myyntien kokonaismäärän vuonna 1997. Huomaa, että tämä näkymä ottaa tiedot toisesta nimeltään "Product Sales for 1997" näkymästä:

CREATE VIEW [Category Sales For 1997] AS
SELECT DISTINCT CategoryName,Sum(ProductSales) AS CategorySales
FROM [Product Sales for 1997]
GROUP BY CategoryName 

我们可以像这样查询上面这个视图:

SELECT * FROM [Category Sales For 1997]

我们也可以向查询添加条件。现在,我们仅仅需要查看 "Beverages" 类的全部销量:

SELECT * FROM [Category Sales For 1997]
WHERE CategoryName='Beverages'

SQL 更新视图

您可以使用下面的语法来更新视图:

SQL CREATE OR REPLACE VIEW Syntax
CREATE OR REPLACE VIEW view_name AS
SELECT column_name(s)
FROM table_name
WHERE condition

现在,我们希望向 "Current Product List" 视图添加 "Category" 列。我们将通过下列 SQL 更新视图:

CREATE VIEW [Current Product List] AS
SELECT ProductID,ProductName,Category
FROM Products
WHERE Discontinued=No

SQL 撤销视图

您可以通过 DROP VIEW 命令来删除视图。

SQL DROP VIEW 语法

DROP VIEW view_name