Basi Di Dati 05
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Basi Di Dati 05

on

  • 1,828 views

 

Statistics

Views

Total Views
1,828
Views on SlideShare
1,827
Embed Views
1

Actions

Likes
0
Downloads
87
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

CC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs LicenseCC Attribution-NonCommercial-NoDerivs License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Basi Di Dati 05 Presentation Transcript

  • 1. BASI DI DATI ESERCITAZIONI -05- MSSQL - SQL Email: francesco.magagnino@ewave.it Università di Trento Corso di Laurea in Ingegneria dell’Informazione e dell’Organizzazione
  • 2. Subquery
    • Le subquery permettono di esprimere delle condizioni basate sul risultato di interrogazioni
  • 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')
        • )
  • 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 '
  • 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
    • 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.
  • 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)
  • 8. Una view..
    • SELECT OrderID, OrderDate, RequiredDate, ShippedDate
    • FROM dbo.Orders
    • WHERE (CustomerID = N'VINET')
  • 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
  • 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] @CustomerID nchar(5 )
    • AS
    • SELECT OrderID, OrderDate,
    • RequiredDate=CONVERT(datetime, RequiredDate + 1),
    • ShippedDate
    • FROM Orders
    • WHERE CustomerID = @CustomerID
    • ORDER BY OrderID
  • 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
  • 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
  • 14. Sp 4
    • ALTER PROCEDURE [dbo].[CustOrdersOrders] @CustomerID nchar(5 )
    • AS
    • SET ROWCOUNT 2
    • SELECT OrderID, OrderDate,
    • RequiredDat e ,
    • RequiredDate MODIF =DATENAME(mm,CONVERT(datetime, RequiredDate + 1)),
    • ShippedDate
    • FROM Orders
    • WHERE CustomerID = @CustomerID
    • ORDER BY OrderID