Till KTH:s startsida Till KTH:s startsida

Inlämningsuppgift 3

Inlämningsuppgift 3

Inlämningsuppgifterna består alltid av 2 delar, en individuell som lämnas in via Bilda senast kvällen före nästa föreläsning och en gruppuppgift som lämnas in utskriven på papper vid början av nästa föreläsningstillfälle.

Gruppuppgiften löses lämpligen först individuellt, sedan träffas gruppen och går igenom de olika förslagen och tar fram en gemensam lösning. Det är denna gemensamma lösning som lämnas in. Gruppens storlek är 3-4 personer.

Vid inlämningstillfället ska gruppen också vara beredd att redovisa sin lösning inför klassen. Slumpvis valda grupper kommer att få redovisa. För att erhålla poäng på uppgiften krävs närvaro vid dessa redovisningstillfällen.

Notera att endast gruppuppgiften har graderat betyg (enligt tidigare meddelande). Den individuella uppgiften bedöms endast som godkänd/icke godkänd.

Inlämningsuppgift 3

En kommentar till fråga 5

För att returnera en hel tabell från en PostgrSQL-funktion använder du dig av nyckelordet SETOF.
Ett exempel, välj ut alla rader med ett givet avdelningsnummer från en tabell med anställda (bygger på Employee-Department-Project-exemplet). 
Först exempel på en SQL-funktion:

CREATE FUNCTION getEmployeesAtDepartment(INT) 
RETURNS SETOF Employee AS $$  
SELECT * FROM Employee  
WHERE $1 = dno;
$$ LANGUAGE SQL;

Kan "anropas" så här:

SELECT * FROM getEmployeesAtDepartment(1);

Motsvarande funktion i PLPGSQL:

CREATE OR REPLACE FUNCTION getEmployeesAtDepartment2(INT) 
RETURNS SETOF Employee AS $$
DECLARE emp Employee%ROWTYPE;
BEGIN  
FOR emp IN SELECT * FROM Employee  
WHERE $1 = dno LOOP  
RETURN NEXT emp;  
END LOOP;  
RETURN;
END 
$$ LANGUAGE PLPGSQL;

Lite udda syntax; RETURN NEXT emp lägger till ytterligare en rad i resultat-setet, utan att funktionen avslutar (det gör det sista RETURN).

Du kan läsa mer om funktioner med SETOF på denna sida.

Anders Lindström skapade sidan 8 november 2011

Anders Lindström redigerade 8 november 2011

Inlämningsuppgift 3

Inlämningsuppgifterna består alltid av 2 delar, en individuell som lämnas in via Bilda senast kvällen före nästa föreläsning och en gruppuppgift som lämnas in utskriven på papper vid början av nästa föreläsningstillfälle.

Gruppuppgiften löses lämpligen först individuellt, sedan träffas gruppen och går igenom de olika förslagen och tar fram en gemensam lösning. Det är denna gemensamma lösning som lämnas in. Gruppens storlek är 3-4 personer.

Vid inlämningstillfället ska gruppen också vara beredd att redovisa sin lösning inför klassen. Slumpvis valda grupper kommer att få redovisa. För att erhålla poäng på uppgiften krävs närvaro vid dessa redovisningstillfällen.

Notera att endast gruppuppgiften har graderat betyg (enligt tidigare meddelande). Den individuella uppgiften bedöms endast som godkänd/icke godkänd.

Inlämningsuppgift 3

 

Anders Lindström redigerade 10 november 2011

Inlämningsuppgift 3 Inlämningsuppgifterna består alltid av 2 delar, en individuell som lämnas in via Bilda senast kvällen före nästa föreläsning och en gruppuppgift som lämnas in utskriven på papper vid början av nästa föreläsningstillfälle.

Gruppuppgiften löses lämpligen först individuellt, sedan träffas gruppen och går igenom de olika förslagen och tar fram en gemensam lösning. Det är denna gemensamma lösning som lämnas in. Gruppens storlek är 3-4 personer.

Vid inlämningstillfället ska gruppen också vara beredd att redovisa sin lösning inför klassen. Slumpvis valda grupper kommer att få redovisa. För att erhålla poäng på uppgiften krävs närvaro vid dessa redovisningstillfällen.

Notera att endast gruppuppgiften har graderat betyg (enligt tidigare meddelande). Den individuella uppgiften bedöms endast som godkänd/icke godkänd.

Inlämningsuppgift 3

 En kommentar till fråga 5 För att returnera en hel tabell från en PostgrSQL-funktion använder du dig av nyckelordet SETOF. Ett exempel, välj ut alla rader med ett givet avdelningsnummer från en tabell med anställda (bygger på Employee-Department-Project-exemplet). Först exempel på en SQL-funktion:¶

CREATE FUNCTION getEmployeesAtDepartment(INT) RETURNS SETOF Employee AS $$   SELECT * FROM Employee   WHERE $1 = dno; $$ LANGUAGE SQL; Kan "anropas" så här:¶

SELECT * FROM getEmployeesAtDepartment(1); Motsvarande funktion i PLPGSQL:¶

CREATE OR REPLACE FUNCTION getEmployeesAtDepartment2(INT) RETURNS SETOF Employee AS $$ DECLARE emp Employee%ROWTYPE;BEGIN   FOR emp IN SELECT * FROM Employee   WHERE $1 = dno LOOP   RETURN NEXT emp;   END LOOP;   RETURN; END $$ LANGUAGE PLPGSQL; Lite udda syntax; RETURN NEXT emp lägger till ytterligare en rad i resultat-setet, utan att funktionen avslutar (det gör det sista RETURN).¶

Du kan läsa mer om funktioner med SETOF på denna sida.