Резюме :в този урок ще научите как да използвате SQLite CREATE VIEW
изявление за създаване на нов изглед в базата данни.
Какво е изглед
В теорията на базата данни изгледът е набор от резултати от съхранена заявка. Изгледът е начинът за пакетиране на заявка в наименуван обект, съхранен в базата данни.
Можете да получите достъп до данните на основните таблици чрез изглед. Таблиците, към които се отнася заявката в дефиницията на изгледа, се наричат основни таблици.
Изгледът е полезен в някои случаи:
- Първо, изгледите предоставят абстракционен слой върху таблици. Можете да добавяте и премахвате колоните в изгледа, без да докосвате схемата на основните таблици.
- Второ, можете да използвате изгледи, за да капсулирате сложни заявки с обединения, за да опростите достъпа до данни.
Изгледът на SQLite е само за четене. Това означава, че не можете да използвате INSERT
, DELETE
и UPDATE
оператори за актуализиране на данни в базовите таблици чрез изгледа.
SQLite CREATE VIEW
изявление
За да създадете изглед, използвате CREATE VIEW
изявление, както следва:
CREATE [TEMP] VIEW [IF NOT EXISTS] view_name[(column-name-list)]
AS
select-statement;
Code language: SQL (Structured Query Language) (sql)
Първо посочете име за изгледа. IF NOT EXISTS
опцията създава нов изглед само ако не съществува. Ако изгледът вече съществува, той не прави нищо.
Второ, използвайте TEMP
или TEMPORARY
опция, ако искате изгледът да се вижда само в текущата връзка с базата данни. Изгледът се нарича временен изглед и SQLite автоматично премахва временния изглед, когато връзката към базата данни е затворена.
Трето, посочете SELECT
изявление за изгледа. По подразбиране колоните на изгледа произлизат от набора от резултати на SELECT
изявление. Въпреки това, можете да присвоите имената на колоните на изгледа, които са различни от името на колоната на таблицата
SQLite CREATE VIEW
примери
Нека вземем няколко примера за създаване на нов изглед с помощта на CREATE VIEW
изявление.
1) Създаване на изглед за опростяване на сложна заявка
Следната заявка получава данни от tracks
, albums
, media_types
и genres
таблици в примерната база данни с помощта на клаузата за вътрешно свързване.
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
За да създадете изглед въз основа на тази заявка, използвате следния израз:
CREATE VIEW v_tracks
AS
SELECT
trackid,
tracks.name,
albums.Title AS album,
media_types.Name AS media,
genres.Name AS genres
FROM
tracks
INNER JOIN albums ON Albums.AlbumId = tracks.AlbumId
INNER JOIN media_types ON media_types.MediaTypeId = tracks.MediaTypeId
INNER JOIN genres ON genres.GenreId = tracks.GenreId;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
Отсега нататък можете да използвате следната проста заявка вместо сложната по-горе.
SELECT * FROM v_tracks;
Code language: SQL (Structured Query Language) (sql)
Опитайте го
2) Създаване на изглед с персонализирани имена на колони
Следното изявление създава изглед с име v_albums
който съдържа заглавието на албума и дължината на албума в минути:
CREATE VIEW v_albums (
AlbumTitle,
Minutes
)
AS
SELECT albums.title,
SUM(milliseconds) / 60000
FROM tracks
INNER JOIN
albums USING (
AlbumId
)
GROUP BY AlbumTitle;
Code language: SQL (Structured Query Language) (sql)
В този пример посочихме нови колони за изгледа AlbumTitle
за albums.title
колона и минути за израза SUM(milliseconds) / 60000
Тази заявка връща данни от v_albums
изглед:
SELECT * FROM v_albums;
Code language: SQL (Structured Query Language) (sql)
В този урок научихте за изгледите на база данни и как да използвате CREATE VIEW
изявление за създаване на нови изгледи в SQLite.