210 likes | 323 Vues
Introduzione a SQL Server 2000. LSA - Laboratorio di Sistemi Informativi Economico-Aziendali. Salvatore Ruggieri Dipartimento di Informatica, Università di Pisa. SQL Server 2000:. History Riconducibile al 1987 Sybase (Aston-Tate) Versioni: personal, standard, enterprise
E N D
Introduzione a SQL Server 2000 LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università di Pisa
Lab. Sistemi Informativi Economico-Aziendali SQL Server 2000: • History • Riconducibile al 1987 Sybase (Aston-Tate) • Versioni: personal, standard, enterprise • Prossima release: SQL Server codename Yukon (2a metà 2004) • Data Definition/Manipulation/Control Language • T-SQL (Transact SQL) • Tabelle, Viste, Indici, Vincoli, Regole • Trigger, Stored Procedures, User-defined functions • Tool di amministrazione • Query analyzer • Enterprise manager • Books on line • Service Manager • SQL profiler • Distributed transaction coordinator
Lab. Sistemi Informativi Economico-Aziendali Query Analyser Client per definizione ed esecuzione di query SQL
Lab. Sistemi Informativi Economico-Aziendali Books online Manuali strumenti, SQL, librerie
Lab. Sistemi Informativi Economico-Aziendali Enterprise Manager Client di amministrazione
Lab. Sistemi Informativi Economico-Aziendali Enterprise Manager • Registrazione server • autenticazione trusted e SQL Server • Database di sistema • master • login, configurazioni • model • template di database vuoto • msdb • scheduling jobs • tempdb • tabelle temporanee • Database di esempio • pubs • Northwind
Lab. Sistemi Informativi Economico-Aziendali Enterprise Manager • Creazione database • file dati e log • tabelle di sistema • Creazione/modifica/eliminazione tabelle • tipi di dato • indici • visualizzazione contenuto • Creazione/modifica/eliminazione viste • Diritti • Nome completo tabella: SELECT * FROM lsa.dbo.census SELECT * FROM census SELECT * FROM lsa..census database schema tabella
Accesso ai dati: SQL Server 2000, CSV, XML e altri RDBMS LSA - Laboratorio di Sistemi Informativi Economico-Aziendali Salvatore Ruggieri Dipartimento di Informatica, Università di Pisa
Lab. Sistemi Informativi Economico-Aziendali SQL Server 2000 -> CSV • Potremmo farlo usando JDBC • Utility da linea di comando: • bcp (Bulk Copy) • Export bcp “select * from census..selezione” queryout outputfile.csv –S tera.di.unipi.it –U ruggieri –c –t, • queryout, direzione dei dati da query SQL a file di output • -S <server_name> -U <user_name> • -ccodifica ASCII -w codifica UNICODE • Default: \t come separatore e \n come fine riga • oppure-t <separatore> -r<fine_riga>
Lab. Sistemi Informativi Economico-Aziendali CSV -> SQL Server 2000 • Utility bcp • Import bcp census..selezione2 in inputfile.csv –S tera.di.unipi.it –U ruggieri –c –t, • Estensione SQL BULK INSERT census..Selezione2 FROM 'f:\census\selection.csv' WITH (FIELDTERMINATOR = ‘,', ROWTERMINATOR = '|\n' ) • 'f:\census\selection.csv‘ riferisce un file del server • Limiti in espressività e generalità • Formati, gestione errori, trasformazioni
Lab. Sistemi Informativi Economico-Aziendali CSV, RDBMS <-> SQL Server 2000 • Soluzione generale • Enterprise Manager -> Database -> All Tasks -> Import / Export Data • Wizard di import export da/verso file di testo o altri database • Esempio di export/import verso file di testo • mapping del nome delle colonne • Esempio di export/import verso altri RDBMS • creazione delle tabelle se non esistenti
Lab. Sistemi Informativi Economico-Aziendali Esercitazione: TRANSCODIFICA • Su un file Excel è presente una tabella con, tra le altre, una colonna “marital-status” (stato civile). Si vuole importare tale tabella in SQL server. • Creare una tabella SQLServer di traduzione da Inglese a Italiano dei possibili stati civili. • Aggiornare la colonna “marital-status” con la versione italiana della descrizione dello stato civile.
Lab. Sistemi Informativi Economico-Aziendali SQL Server 2000 -> XML • Potremmo farlo usando JDBC • Potremmo farlo grazie allo standard di SQL/2003 che prevede costrutti per generare XML: SELECT XMLELEMENT(Name “root”, XMLAGG( XMLELEMENT(Name “emp”, name) ORDER BY name ) ) FROM employees … <root> <emp>Luigi Rossi</emp> <emp>Mario Bianchi</emp> </root> • SQL/2003 non è attualmente implementato da SQLServer, DB2, Oracle • Esistono però driver JDBC che accettano query SQL/2003 verso tali RDBMS: Data Direct
Lab. Sistemi Informativi Economico-Aziendali SQL Server 2000 -> XML (ROW) • Cosa offre SQL Server 2000? • SELECT … FOR XML RAW SELECT name As nome, eta FROM employees FOR XML RAW • Produce XML in formato ROW (senza root) • colonne come attributi <row nome=“Luigi Rossi” eta=“30”/> <row nome=“Mario Bianchi” eta=“40”/>
Lab. Sistemi Informativi Economico-Aziendali Access -> SQL Server 2000 • OPENROWSET SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0', 'D:\Corso_LSA\L2\src\Nwind.mdb';'admin';'', 'select * from clienti') • 'Microsoft.Jet.OLEDB.4.0', provider OLE DB per Access • 'D:\Corso_LSA\L2\src\Nwind.mdb';'admin';'‘, file Access con utente e password • il file risiede sul SERVER o il path è in formato UNC • 'select * from clienti' query SQL per ottenere il rowset
Lab. Sistemi Informativi Economico-Aziendali ODBC -> SQL Server 2000 SELECT * FROM OPENROWSET('MSDASQL', 'FoodMart 2000';'Admin';'', 'select * from customer') • 'MSDASQL', provider OLE DB per ODBC • ‘FoodMart 2000’;'admin';'‘, DSN di sistema con utente e password • 'select * from customer' query SQL per ottenere il rowset
Lab. Sistemi Informativi Economico-Aziendali ODBC -> SQL Server 2000 SELECT * FROM OPENROWSET('MSDASQL', ‘DRIVER=Microsoft Access Driver (*.mdb);UID=admin;DBQ=D:\Corso_LSA\L2\src\Nwind.mdb', 'select * from clienti') • ‘DRIVER=Microsoft Access Driver (*.mdb);UID=admin;DBQ=D:\Corso_LSA\L2\src\Nwind.mdb' stringa di connessione ODBC
Lab. Sistemi Informativi Economico-Aziendali Linked Servers SQL Server accetta query SQL con riferimenti a database accessibili via OLE DB SELECT A.name, B.address FROM sales.dbo.transactions A, db2..owner.addresses B WHERE A.name = B.name
Lab. Sistemi Informativi Economico-Aziendali Linked Servers