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 15:56]
chorn
views [2016/01/08 00:00] (aktuell)
Zeile 11: Zeile 11:
   ​   ​
 Daten einpflegen Daten einpflegen
-  ​+ 
 +<code sql>
   insert into products(asin,​ name, price) values   insert into products(asin,​ name, price) values
   ("​A1",​ "​Apfel",​ 1.23),   ("​A1",​ "​Apfel",​ 1.23),
   ("​B2",​ "​Birne",​ 2.34),   ("​B2",​ "​Birne",​ 2.34),
   ("​C3",​ "​Orange",​ 3.45),   ("​C3",​ "​Orange",​ 3.45),
-  ("E5", "​Pflaume",​ 3.45); +  ("D4", "​Pflaume",​ 3.45); 
-  +</​code>​ 
 + 
 +<code sql>
   insert into orders(asin,​ quantity, buy) values   insert into orders(asin,​ quantity, buy) values
   ("​A1",​ 2, "​2016-01-08 12:​00:​00"​),​ -- ok   ("​A1",​ 2, "​2016-01-08 12:​00:​00"​),​ -- ok
   ("​B2",​ 3, "​2016-01-07 12:​00:​00"​),​ -- ok   ("​B2",​ 3, "​2016-01-07 12:​00:​00"​),​ -- ok
-  ("D4", 4, "​2016-01-06 12:​00:​00"​),​ -- no related product+  ("E5", 4, "​2016-01-06 12:​00:​00"​),​ -- no related product
   ("​A1",​ 5, "​2016-01-05 12:​00:​00"​),​ -- out of time   ("​A1",​ 5, "​2016-01-05 12:​00:​00"​),​ -- out of time
   ("​C3",​ 1, "​2016-01-06 12:​00:​00"​) ​ -- insufficient quantity   ("​C3",​ 1, "​2016-01-06 12:​00:​00"​) ​ -- insufficient quantity
-  ​+</​code>​ 
 Was steht drin? Was steht drin?
-  ​+ 
 +<code sql>
   select * from products   select * from products
-  ​ +</​code>​ 
-  "​A1", "Apfel",  ​+ 
-  "​B2", "Birne",  ​+ 
-  "​C3", "Orange", ​+^ asin ^ name ^ price ^ 
-  +A1 Apfel 1.23 | 
 +B2 Birne 2.34 | 
 +C3 Orange ​3.45 | 
 +| D4 | Pflaume | 3.45 | 
 + 
 + 
 +<code sql>
   select * from orders   select * from orders
-  ​ +</​code>​ 
-  "​A1", ​2, "2016-01-08 12:00:00" + 
-  "​B2", ​3, "2016-01-06 12:00:00" + 
-  "​D4", ​4, "2016-01-06 12:00:00" +^ asin ^ quantity ^ buy ^ 
-  "​A1", ​5, "2016-01-05 12:00:00" +A1 2016-01-08 12:​00:​00 ​| 
-  "​C3", ​1, "2016-01-06 12:00:00" +B2 2016-01-07 12:​00:​00 ​| 
-  +| E5 | 2016-01-06 12:​00:​00 ​| 
 +A1 2016-01-05 12:​00:​00 ​| 
 +C3 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>
   create view recentOrders as   create view recentOrders as
   select *   select *
Zeile 53: Zeile 69:
   buy asc,   buy asc,
   quantity desc   quantity desc
 +</​code>​
     
 +<code sql>
   select * from recentOrders   select * from recentOrders
-  ​+</​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>
   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)
   group by asin   group by asin
   order by total desc   order by total desc
 +</​code>​
     
 +<code sql>
   select * from highSalery   select * from highSalery
-  ​+</​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 94: 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.1452264977.txt.gz · Zuletzt geändert: 2016/01/08 00:00 (Externe Bearbeitung)