Panelen



Forumnavigering
Senast inloggade
RSS
Sponsorer
Artiklar > Databaser & SQL

MySQL och Vyer

Inledning:

I denna artikel kommer jag att gå igenom vad en vy är och hur man skapar vyer och varför vyer är bra att använda.
Det enda du behöver för att skapa vyer är en SQL Editor som PhpMyAdmin.

 

Synstax:



CREATE VIEW name

  AS

    query...



En vy (view) är ett sätt att se databasen. En vy består utav SQL kod och sparas i databasen.
Vyer är bra att använda vid större och komplexa frågor. Man kan använda vyer för alla sina frågor också om man vill.
Man använder vyer på samma sätt som tabeller när man ska hämta resutatet med SELECT.

SELECT * FROM v


En fördel med vyer är att om du exporterar databasen följer all sqlkod med och du behöver inte skriva sqlkoden igen.


Jag brukar alltid börja ett vy-namn med prefixet "v_" för att tala om att detta är en vy. Men det är en smaksak.

Man kan skriva så här för skapa en vy som hämtar alla kunder från tabellen customers.

CREATE VIEW v_customers

  AS

    SELECT * FROM customers



Inte så användningsbart, det kunde man lika gära hämtat direkt från tabellen customers.
Man kan utöka den till att hämta kundernas ordrar.

Att skriva denna sql direkt i skriptet är inte roligt.


SELECT

  c.firstname,

  c.lastname,

  c.address,

  c.postcode,

  c.town,

  o.order_date,

  o.status,

  oi.item,

  oi.qty,

  oi.unit_price

FROM

  customers c,

  orders o,

  order_items oi

WHERE

      o.customer_id = c.id

  AND oi.order_id = o.id



I stället kan man skapa en vy genom att lägga till CREATE VIEW...

CREATE VIEW v_customer_orders

AS

 SELECT

   c.firstname,

   c.lastname,

   c.address,

   c.postcode,

   c.town,

   o.order_date,

   o.status,

   oi.item,

   oi.qty,

   oi.unit_price

 FROM

   customers c,

   orders o,

   order_items oi

 WHERE

       o.customer_id = c.id

   AND oi.order_id = o.id




I skriptet skriver man sql frågan precis som när man hämtar data från en tabell
SELECT * FROM v_customer_orders



Länkar:
MySQL.com - Views (Mer om vyer på MySQL.com)
PhpMyAdmin  (En webbaserad MySQL hanterare)
Navicat MySQL Manager (Min favorit)

Skapades: 2007-12-01 01:09:10
Skribent: chrillemeter
Lästs 1332 gånger
Betyg: 0 (artikeln har endast 0 röster, det krävs minst 5 för ett betyg)

Kommentarer

Shadi sa den 1 december 2007 kl 15:31:
Jag måste säga att detta är en mycket bra artikel, jag kommer definitivt att ta till mig detta och lära mig mer. Tack...
Timmie sa den 6 mars 2008 kl 00:38:
Hur är det med prestanda och vyer? Ökar det eller är det bara för att göra det lättare? Sedan om man kör med SPs så är det väll bara onödigt att köra med vyer?
chrillemeter sa den 25 mars 2008 kl 23:08:
Grejen med vyer är att du flyttar SQL:en till databasen.
Lagrade procedurer och vyer är olika saker.
© Copyright 2007-2009 Shadi Domat | Version 3.0 | Sidkarta | Policy