Benutzer-Werkzeuge

Webseiten-Werkzeuge


views

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen gezeigt.

Link zu dieser Vergleichsansicht

Both sides previous revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
views [2016/01/08 17:05]
chorn
views [2016/01/08 00:00] (aktuell)
Zeile 19: Zeile 19:
   ("​D4",​ "​Pflaume",​ 3.45);   ("​D4",​ "​Pflaume",​ 3.45);
 </​code>​ </​code>​
-  ​+
 <code sql> <code sql>
   insert into orders(asin,​ quantity, buy) values   insert into orders(asin,​ quantity, buy) values
Zeile 28: Zeile 28:
   ("​C3",​ 1, "​2016-01-06 12:​00:​00"​) ​ -- insufficient quantity   ("​C3",​ 1, "​2016-01-06 12:​00:​00"​) ​ -- insufficient quantity
 </​code>​ </​code>​
-  ​+
 Was steht drin? Was steht drin?
-  ​+
 <code sql> <code sql>
   select * from products   select * from products
Zeile 41: Zeile 41:
 | C3 | Orange | 3.45 | | C3 | Orange | 3.45 |
 | D4 | Pflaume | 3.45 | | D4 | Pflaume | 3.45 |
-  ​+ 
 <code sql> <code sql>
   select * from orders   select * from orders
 </​code>​ </​code>​
-  ​+ 
 ^ asin ^ quantity ^ buy ^ ^ asin ^ quantity ^ buy ^
 | A1 | 2 | 2016-01-08 12:00:00 | | A1 | 2 | 2016-01-08 12:00:00 |
Zeile 53: Zeile 55:
 | C3 | 1 | 2016-01-06 12:00:00 | | C3 | 1 | 2016-01-06 12:00:00 |
  
-  ​+
 Eine View für Bestellungen ab dem 6.1. Eine View für Bestellungen ab dem 6.1.
-  ​+
 <code sql> <code sql>
   create view recentOrders as   create view recentOrders as
Zeile 72: Zeile 74:
   select * from recentOrders   select * from recentOrders
 </​code>​ </​code>​
-  ​+
 Ergebnis: Ergebnis:
-  ​ + 
-  asinquantitybuynameprice + 
-  "​B2", ​3, "2016-01-06 12:00:00", "Birne", ​2.34 +asin quantity ​buy name price ^ 
-  "​A1", ​2, "2016-01-08 12:00:00", "Apfel", ​1.23+B2 2016-01-07 12:​00:​00 ​Birne 2.34 | 
 +A1 2016-01-08 12:​00:​00 ​Apfel 1.23 
   ​   ​
 Für C, D, und E sind keine Ergebnisse vorhanden, da kein entsprechendes Produkt vorlag, die Bestellung älter als einen Tag oder die Stückzahl zu klein war. Für C, D, und E sind keine Ergebnisse vorhanden, da kein entsprechendes Produkt vorlag, die Bestellung älter als einen Tag oder die Stückzahl zu klein war.
  
 Und hier eine View für Artikel mit höchsten Umsatz: Und hier eine View für Artikel mit höchsten Umsatz:
-  ​+
 <code sql> <code sql>
   create view highSalery as    create view highSalery as
-  select p.*, count(o.asin) as sold, count(o.asin) * price as total+  select 
 + p.*, 
 + count(o.asin) as sold, 
 + count(o.asin) * price as total
   from products p   from products p
   left join orders o using(asin)   left join orders o using(asin)
Zeile 95: Zeile 102:
   select * from highSalery   select * from highSalery
 </​code>​ </​code>​
-  ​+
 Ergebnis: Ergebnis:
-  ​ + 
-  asinnamepricesoldtotal + 
-  "​C3", "Orange",  ​3.4513.45 +asin name price sold total ^ 
-  "​A1", "Apfel", ​  1.2322.46 +C3 Orange ​3.45 3.45 | 
-  "​B2", "Birne", ​  2.3412.34 +A1 Apfel 1.23 2.46 | 
-  "​E5",​ "Pflaume", ​3.4500.00+B2 Birne 2.34 2.34 | 
 +| D4 | Pflaume ​3.45 0.00 
  
 ---- ----
Zeile 115: Zeile 124:
 Um eine Materialized View anzulegen braucht man nur das entsprechende Schlüsselwort voranzustellen,​ z.B.: Um eine Materialized View anzulegen braucht man nur das entsprechende Schlüsselwort voranzustellen,​ z.B.:
  
 +<code sql>
   create materialized view recentOrders as ...   create materialized view recentOrders as ...
 +</​code>​
 +
 +danach kann man die View durch beliebige Trigger auf involvierte Relationen aktualisieren
 +
 +<code sql>
 +  CREATE TRIGGER materialize after insert or update or delete on orders EXECUTE PROCEDURE materialize();​
 +</​code>​
views.1452269145.txt.gz · Zuletzt geändert: 2016/01/08 00:00 (Externe Bearbeitung)