- 1. BASI DI DATI ESERCITAZIONI -05- MSSQL - SQL Email:
[email protected] Universit di Trento Corso di Laurea in
Ingegneria dellInformazione e dellOrganizzazione
2. Subquery
- Le subquery permettono di esprimere dellecondizioni basate sul
risultato di interrogazioni
3. Subquery
- selezionare tutti i dati relativi ai cd di lagabue (senza
join)
-
-
- WHEREcantante_nome = 'ligabue')
4. Subquery
- inserire dati di Ella con
-
- INSERT INTO tCantante (cantante_genere_id, cantante_nome,
cantante_sitointernet, cantante_descrizione)
-
- select genere_id, 'Ella', 'www.ella.it', 'Ella Fitzgerald' from
tGenere wheregenere_tipo='soul '
5. Subquery
- inserire dati di Ella con
- cantanti_nome, cantanti_sitointernet,
- cantanti_descrizione, cantanti_genere_id )
- SELECT ella ', 'www. ella .it',
- ( SELECT label_nome FROM tLabel WHERE Label_id = '2' ),
- ( SELECT generi_id FROM tGenere WHERE generi_tipo = 'soul' )
;
6. Stored procedure: Vantaggi
- Evitareal client diriscrivere querycomplesse offrendo la
possibilit di richiamare una procedura archiviata all'interno del
database.
- Quantitinformazioni scambiatetra client e server sarminorea
tutto vantaggio delle prestazioni.
- Mantenere librerie di funzioni da utilizzare all'interno del
database stesso.Potenzialmente si potrebbe eseguire ogni operazione
richiamando una diversa procedura, senza conoscere la struttura di
un database magari complesso, o avendone una conoscenza
limitata.
- Possibilit di assegnare permessi di modifica o di lettura
limitati sulle tabelle concedendo solo permesso di eseguire le
sp.
7. Stored procedure: Svantaggi
- Le stored procedureaumentano il carico di lavoro per il server
SLQ .
- A volte non si pu utilizzare il linguaggio che si vorrebbe
utilizzare, perch il DBMS non lo supporta.
- La logica del programma viene spostata sul server SQL;
(incompatibilit con il modello logico di applicativi a tre livelli)
(dati|logica|applicativodati-procedure|logica|applicativo)
8. Una view..
- SELECTOrderID, OrderDate, RequiredDate, ShippedDate
- WHERE(CustomerID = N'VINET')
9. ..una stored procedure!
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5
)
- SELECTOrderID, OrderDate,RequiredDate, ShippedDate
- WHERECustomerID = @CustomerID
10. (Per eseguirla dentro SQLServer)
- DECLARE @return_value int
- EXEC @return_value = [dbo].[CustOrdersOrders]
- SELECT 'Return Value' = @return_value
11. Sp 1
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5
)
- SELECTOrderID, OrderDate,
- RequiredDate=CONVERT(datetime, RequiredDate + 1),
- WHERECustomerID = @CustomerID
12. Sp 2
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5
)
- SELECTOrderID, OrderDate,
- RequiredDate AS RequiredDateORIGINALE,
- RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate +
1)),
- WHERECustomerID = @CustomerID
13. Sp 3
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5
)
- SELECTOrderID, OrderDate,
- RequiredDate AS RequiredDateORIGINALE,
- RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate +
1)),
- WHERECustomerID = @CustomerID
14. Sp 4
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5
)
- SELECTOrderID, OrderDate,
- RequiredDate MODIF =DATENAME(mm,CONVERT(datetime, RequiredDate
+ 1)),
- WHERECustomerID = @CustomerID