03. SQLite: database orders.db
Gli esercizi inclusi in questa sezione fanno riferimento al motore SQLite e richiedono alcuni CSV scaricabili tramite l'apposito link (uetnti Windows, utenti macOS)
Schema logico relazionale:
Customers(CustomerID, CustomerName, ContactName, Address, City, PostalCode, Country)
Categories(CategoryID, CategoryName, Description)
Employees(EmployeeID, LastName, FirstName, BirthDate, Photo, Notes)
OrderDetails(OrderDetailID, OrderID↑, ProductID↑, Quantity)
OrderID FK (Orders.OrderID)
ProductID FK(Products.ProductID)
Orders(OrderID, CustomerID↑, EmployeeID↑, OrderDate, ShipperID↑)
CustomerID FK (Customers.CustomerID)
EmployeeID FK(Employees.EmployeeID)
ShipperID FK (Shippers.ShipperID)
Products(ProductID, ProductName, SupplierID↑, CategoryID↑, Unit, Price)
SupplierID FK (Suppliers.SupplierID)
CategoryID FK (Categories.CategoryID)
Shippers(ShipperID, ShipperName, Phone)
Suppliers(SupplierID, SupplierName, ContactName, Address, City, PostalCode, Country, Phone)
Nota
Traduzione dei termini:
Customers: clienti
Categories: categorie
Employees: impiegati
OrderDetails: dettagli ordine
Orders: ordini
Products: prodotti
Shippers: spedizionieri
Suppliers: fornitori
────══════♦☆♦══════────
Esercizio 1
Dopo essersi posizionati nella cartella SQLite creare il database orders.db (utenti Windows: 'db\orders\orders.db', uteneti macOS 'db/orders/orders.db').
Creare nel database orders.db le tabelle referenziate nello schema di relazione.
Caricare, in ciascuna delle tabelle create, i dati contenuti nei file CSV corrispondenti, presenti nella cartella orders (utenti Windows db\orders\, utenti macOS db/orders/).
Suggerimento:
Fare riferimento al paragrafo 02. Generazione e popolamento di un DB
────══════♦☆♦══════────
Esercizio 2
Visualizzare il contenuto delle tabelle popolate con l'esercizio 1 effettuando delle query su ciascuna tabella
────══════♦☆♦══════────
Esercizio 3
Inserire i seguenti record nella tabella Customers:
CustomerName: La Bussola s.r.l.
ContactName: Antonio Izzo
Address: via Litoranea, 10
City: Torre del Greco
PostalCode: 80059
Country: Italy
CustomerName: Shine Caffè
ContactName: Marco Lo Russo
Address: via Nazionale, 817
City: Torre del Greco
PostalCode: 80059
Country: Italy
Selezionare tutti i Customers di Torre del Greco e verificare che risultino presenti i record inseriti in precedenza.
Cancellare tutti i Customers di Torre del Greco.
────══════♦☆♦══════────
Esercizio 4
Inserire un nuovo record in Orders coerente con i seguenti dati:
CustomerID relativi a: Franchi S.p.A. (CustomerName)
EmployeeID relativo a: King (LastName) Robert (FirstName)
OrderDate : Data corrente
ShipperID relativo a: United Package (ShipperName)
Inserire un nuovo record in OrderDetails coerente con i seguenti dati:
OrderID relativo all'ordine appena inserito
ProductID relativo a: Chocolade ( ProductName)
Quantity: 2
Dopo aver eseguito il comando
PRAGMA foreign_keys = ON;
eseguire la DELETE dell'ordine appena inserito. Giustificare l'esito dell'operazione.
Nota:
E' ammesso effettuare più operazioni distinte
Sito: 7ecnologie
Sezione: 12. SQL
Capitolo: 98. Esercizi
Paragrafo: 03. SQLite: database orders.db
Indice dei capitoli: 00. Risorse - 01. Generalità - 02. Comandi di DML - 03. Comandi di DDL - 04. Comandi di DCL - 05. Comandi di TCL - 06. SQLite - 07. Tutorial - 98. Esercizi
Indice dei paragrafi: 01. Query - 02. Definizione di tabelle - 03. SQLite: database orders.db - 04. SQLite: database classi.db - 05. SQLite: database regioni.db - 06. SQLite: database musei.db - 07. SQLite: altri database