Slideshow transcript
Slide 1: Università di Trento Corso di Laurea in Ingegneria dell’Informazione e dell’Organizzazione BASI DI DATI ESERCITAZIONI -05- MSSQL - SQL Email: francesco.magagnino@ewave.it 1 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 2: Subquery Le subquery permettono di esprimere delle condizioni basate sul risultato di interrogazioni 2 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 3: Subquery selezionare tutti i dati relativi ai cd di lagabue (senza join) SELECT * FROM tCd WHERE (cd_cantante_id = ( SELECT cantante_id FROM tCantante WHERE cantante_nome = 'ligabue') ) 3 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 4: Subquery inserire dati di Ella con genere di tipo \"soul\" INSERT INTO tCantante (cantante_genere_id, cantante_nome, cantante_sitointernet, cantante_descrizione) select genere_id, 'Ella', 'www.ella.it', 'Ella Fitzgerald' from tGenere where genere_tipo = 'soul' 4 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 5: Subquery inserire dati di Ella con genere di tipo \"soul“ label con di id 2 INSERT INTO tCantante ( 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' ) ; 5 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 6: Stored procedure: Vantaggi Evitare al client di riscrivere query complesse offrendo la possibilità di richiamare una procedura archiviata all'interno del database. Quantità informazioni scambiate tra client e server sarà minore a 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. 6 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 7: Stored procedure: Svantaggi Le stored procedure aumentano 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|applicativo dati-procedure|logica|applicativo) 7 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 8: Una view.. SELECT OrderID, OrderDate, RequiredDate, ShippedDate FROM dbo.Orders WHERE (CustomerID = N'VINET') 8 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 9: ..una stored procedure! set ANSI_NULLS ON set QUOTED_IDENTIFIER ON GO ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5) AS SELECT OrderID, OrderDate,RequiredDate, ShippedDate FROM Orders WHERE CustomerID = @CustomerID ORDER BY OrderID 9 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 10: (Per eseguirla dentro SQLServer) USE [Northwind] GO DECLARE @return_value int EXEC @return_value = [dbo].[CustOrdersOrders] @CustomerID = N'VINET' SELECT 'Return Value' = @return_value GO 10 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 11: Sp 1 ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5) AS SELECT OrderID, OrderDate, RequiredDate=CONVERT(datetime, RequiredDate + 1), ShippedDate FROM Orders WHERE CustomerID = @CustomerID ORDER BY OrderID 11 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 12: Sp 2 ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5) AS SELECT OrderID, OrderDate, RequiredDate AS RequiredDateORIGINALE, RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate + 1)), ShippedDate FROM Orders WHERE CustomerID = @CustomerID ORDER BY OrderID 12 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 13: Sp 3 ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5) AS SET ROWCOUNT 2 SELECT OrderID, OrderDate, RequiredDate AS RequiredDateORIGINALE, RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate + 1)), ShippedDate FROM Orders WHERE CustomerID = @CustomerID ORDER BY OrderID 13 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)
Slide 14: Sp 4 ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5) AS SET ROWCOUNT 2 SELECT OrderID, OrderDate, RequiredDate, RequiredDateMODIF=DATENAME(mm,CONVERT(datetime, RequiredDate + 1)), ShippedDate FROM Orders WHERE CustomerID = @CustomerID ORDER BY OrderID 14 Basi di Dati - 2004-2005 (L. Colazzo - F. Magagnino)






Add a comment on Slide 1
If you have a SlideShare account, login to comment; else you can comment as a guest- Favorites & Groups
Showing 1-50 of 0 (more)