Viktigt
Översättning är en gemenskapsinsats du kan gå med i. Den här sidan är för närvarande översatt till 88.89%.
15.5. Lektion Utsikter
När du skriver en fråga måste du lägga ner mycket tid och möda på att formulera den. Med hjälp av vyer kan du spara definitionen av en SQL-fråga i en återanvändbar ”virtuell tabell”.
Målet för den här lektionen: Att spara en fråga som en vy.
15.5.1. Skapa en vy
Du kan behandla en vy precis som en tabell, men dess data hämtas från en fråga. Låt oss skapa en enkel vy baserad på ovanstående:
create view roads_count_v as
select count(people.name), streets.name
from people, streets where people.street_id=streets.id
group by people.street_id, streets.name;
As you can see the only change is the create view roads_count_v as part
at the beginning. We can now select data from that view:
select * from roads_count_v;
Resultat:
count | name
-------+-------------
1 | Main Road
2 | High street
1 | Low Street
(3 rows)
15.5.2. Ändra en vy
En vy är inte fast och den innehåller inga ”riktiga data”. Det innebär att du enkelt kan ändra den utan att det påverkar någon data i din databas:
CREATE OR REPLACE VIEW roads_count_v AS
SELECT count(people.name), streets.name
FROM people, streets WHERE people.street_id=streets.id
GROUP BY people.street_id, streets.name
ORDER BY streets.name;
(I det här exemplet visas också den bästa metoden att använda UPPER CASE för alla SQL-nyckelord)
You will see that we have added an ORDER BY clause so that our view rows
are nicely sorted:
select * from roads_count_v;
count | name
-------+-------------
2 | High street
1 | Low Street
1 | Main Road
(3 rows)
15.5.3. Släppa en vy
Om du inte längre behöver en vy kan du ta bort den så här:
drop view roads_count_v;
15.5.4. Sammanfattningsvis
Med hjälp av vyer kan du spara en fråga och komma åt dess resultat som om den vore en tabell.
15.5.5. Vad händer härnäst?
Ibland när du ändrar data vill du att dina ändringar ska få effekter på andra ställen i databasen. I nästa lektion får du veta hur du gör det.