Basi Di Dati 05
-
Upload
francesco-magagnino -
Category
Documents
-
view
1.083 -
download
0
Transcript of Basi Di Dati 05
- 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)
-
- SELECT*
-
- FROMtCd
-
- WHERE
-
- (cd_cantante_id =
-
-
- (
-
-
-
- SELECTcantante_id
-
-
-
- FROMtCantante
-
-
-
- WHEREcantante_nome = 'ligabue')
-
-
-
- )
-
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 wheregenere_tipo='soul '
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' ) ;
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
- FROMdbo.Orders
- WHERE(CustomerID = N'VINET')
9. ..una stored procedure!
- set ANSI_NULLS ON
- set QUOTED_IDENTIFIER ON
- GO
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5 )
- AS
- SELECTOrderID, OrderDate,RequiredDate, ShippedDate
- FROMOrders
- WHERECustomerID = @CustomerID
- ORDER BYOrderID
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
11. Sp 1
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5 )
- AS
- SELECTOrderID, OrderDate,
- RequiredDate=CONVERT(datetime, RequiredDate + 1),
- ShippedDate
- FROMOrders
- WHERECustomerID = @CustomerID
- ORDER BYOrderID
12. Sp 2
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5 )
- AS
- SELECTOrderID, OrderDate,
- RequiredDate AS RequiredDateORIGINALE,
- RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate + 1)),
- ShippedDate
- FROMOrders
- WHERECustomerID = @CustomerID
- ORDER BYOrderID
13. Sp 3
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5 )
- AS
- SET ROWCOUNT 2
- SELECTOrderID, OrderDate,
- RequiredDate AS RequiredDateORIGINALE,
- RequiredDate=DATENAME(mm,CONVERT(datetime, RequiredDate + 1)),
- ShippedDate
- FROMOrders
- WHERECustomerID = @CustomerID
- ORDER BYOrderID
14. Sp 4
- ALTER PROCEDURE[dbo].[CustOrdersOrders] @CustomerIDnchar(5 )
- AS
- SET ROWCOUNT 2
- SELECTOrderID, OrderDate,
- RequiredDat e ,
- RequiredDate MODIF =DATENAME(mm,CONVERT(datetime, RequiredDate + 1)),
- ShippedDate
- FROMOrders
- WHERECustomerID = @CustomerID
- ORDER BYOrderID