SQL - Lezioni PDF
Document Details
Uploaded by AffordableGroup7338
Università San Raffaele Roma
Prof. M. Zaninelli
Tags
Summary
Questo documento è un insieme di slide su SQL, un linguaggio di programmazione per l'interazione con i database relazionali. Copre argomenti come la realizzazione dell'informazione digitale, la progettazione fisica, gli standard SQL, le istruzioni fondamentali (CREATE, DELETE, UPDATE, SELECT) e esempi di utilizzo. Il documento, realizzato da Prof. M. Zaninelli, fa parte di una serie di lezioni all'Università San Raffaele di Roma
Full Transcript
Prof. M. Zaninelli SQL La realizzazione dell’informazione digitale SQL 1 di 31 Prof. M. Zaninelli Progettazione fisica Schema fisico Cos’è...
Prof. M. Zaninelli SQL La realizzazione dell’informazione digitale SQL 1 di 31 Prof. M. Zaninelli Progettazione fisica Schema fisico Cos’è l’SQL? SQL 2 di 31 Prof. M. Zaninelli Introduzione SQL (“Structured Query Language”) – è il linguaggio attraverso cui è possibile interagire con i DBMS e quindi, implementare la progettazione fisica sui DBMS (che “fisicamente” la concludono) Ad esempio, è possibile: – Creare gli oggetti della base di dati (DB, tabelle, …) – Creare gli utenti e gestirne le autorizzazioni – Inserire, aggiornare, eliminare i record della base di dati, – Interrogare (query) la base di dati SQL 3 di 31 Prof. M. Zaninelli Storia dello Standard Prime implementazioni – IBM System/R 1979 (SEQUEL) Primi prodotti commerciali – IBM SQL/DS, Oracle 1981 SQL-86 – prima versione dello standard, basata sul dialetto IBM SQL 4 di 31 Prof. M. Zaninelli Storia dello Standard SQL-89 (SQL-1) SQL--92, full SQL SQL--92, intermediate SQL – vincoli di integrità SQL--92, entry SQL – livello1 e livello2 SQL--89, livello 2 SQL SQL--89, livello 1 SQL SQL-92 (SQL-2) – entry – intermediate – full SQL 5 di 31 Prof. M. Zaninelli Storia dello Standard Standard collegati SQL/CLI – “Call Level Interface” (ODBC), 1995 SQL/PSM – “Persistent Storage Modules”, 1997 SQL/OLB – “Object Language Bindings”, 1998 SQL 6 di 31 Prof. M. Zaninelli Storia dello Standard Implementazioni dello standard – gli standard hanno in alcuni casi inseguito la tecnologia di mercato Corrispondenza imperfetta – non esiste nessuna implementazione completa in commercio di SQL-92 full – molti DBMS offrono funzionalità “proprietarie” e non standard – problema di portabilità delle applicazioni SQL 7 di 31 Prof. M. Zaninelli Le Istruzioni Fondamentali – creazione della – interrogazioni base di dati SELECT CREATE – eliminazione delle DATABASE ennuple – creazione delle DELETE tabelle – modifica della CREATE TABLE ennuple – inserimento delle UPDATE ennuple INSERT INTO SQL 8 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di BD Sintassi – CREATE DATABASE ; – DROP DATABASE ; Esempio CREATE DATABASE universita; DROP DATABASE universita; SQL 9 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di BD Semantica – CREATE DATABASE crea una nuova base di dati vuota l’utente deve essere autorizzato l’utente diventa il proprietario della bd – DROP DATABASE elimina una base di dati esistente (anche non vuota) l’utente deve essere autorizzato SQL 10 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di Tabelle Istruzioni del DDL – CREATE TABLE – DROP TABLE Sintassi – CREATE TABLE (); – DROP TABLE ; SQL 11 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di Tabelle Esempio: la tabella Professori CREATE TABLE Professori ( cod char(4) PRIMARY KEY, cognome varchar(20) NOT NULL, nome varchar(20) NOT NULL, qualifica char(15), facolta char(10) ); DROP TABLE Professori; SQL 12 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di Tabelle Vincoli di colonna – PRIMARY KEY – UNIQUE – NOT NULL – REFERENCES SQL 13 di 31 Prof. M. Zaninelli Creazione ed Eliminazione di Tabelle Semantica – CREATE TABLE crea una nuova tabella vuota secondo lo schema specificato l’utente deve essere autorizzato l’utente diventa il proprietario della tabella attenzione ai vincoli di riferimento – DROP TABLE elimina una tabella esistente l’utente deve essere autorizzato SQL 14 di 31 Prof. M. Zaninelli Inserimenti Istruzione – INSERT Sintassi – INSERT INTO VALUES (); Semantica – inserimento della ennupla nella tabella – corrispondenza ordinata tra valori e attributi (notazione posizionale) SQL 15 di 31 Prof. M. Zaninelli Inserimenti Esempi: INSERT INTO Professori VALUES (‘FT’, ‘Totti’, ‘Francesco’, ‘ordinario’,‘Ingegneria’); INSERT INTO Studenti VALUES (111, ‘Rossi’, ‘Mario’, ‘laurea tr.’, 3, null); INSERT INTO Corsi VALUES (‘PR1’, ‘Programmazione 1’, ‘laurea tr.’, ‘FT’); SQL 16 di 31 Prof. M. Zaninelli Interrogazioni Istruzione – SELECT – sintassi concreta per specificare operatori dell’algebra Filosofia – parzialmente dichiarativa – si specificano gli operatori da applicare, non l’ordine in cui devono essere applicati – l’ottimizzatore sceglie la strategia ottima SQL 17 di 31 Prof. M. Zaninelli Interrogazioni Tre “clausole” principali (nucleo) – SELECT, FROM, WHERE SELECT – proiezioni, ridenominazioni, elimin. duplicati FROM – tabelle, join, prodotti cartesiani, alias WHERE – selezioni SQL 18 di 31 Prof. M. Zaninelli Esempi “Studenti della laurea triennale di anni successivi al primo” SELECT * FROM Studenti WHERE ciclo=‘laurea tr.’ AND anno>1; SQL 19 di 31 Prof. M. Zaninelli Clausola FROM Serve a specificare – le tabelle da cui prelevare i dati – gli eventuali prodotti cartesiani – gli eventuali join – gli eventuali alias Prodotti cartesiani: sintassi – FROM R, S, T AS V … – es: FROM Professori, Numeri SQL 20 di 31 Prof. M. Zaninelli Clausola FROM Join: Sintassi – FROM S JOIN R ON S.A=R.B.. – es: FROM Professori JOIN Personale ON Professori.cod = Personale.professore Semantica – costruisce la tabella unica, unione delle due in Join, basata sull’uguaglianza dei valori contenuti nelle due colonne messe coinvolte, ciascuna chiave esterna della propria tabella verso l’altra tabella messa a Join. SQL 21 di 31 Prof. M. Zaninelli Clausola ORDER BY Serve a specificare – ordinamenti finali Sintassi – ORDER BY Dove – è una lista di attributi di tabelle che compaiono nella clausola FROM SQL 22 di 31 Prof. M. Zaninelli Clausola ORDER BY Esempio SELECT * FROM Studenti ORDER BY cognome, annoCorso Normalemente: – l’ordinamento è crescente Ordinamento decrescente: DESC ORDER BY cognome, annoCorso DESC SQL 23 di 31 Prof. M. Zaninelli Cancellazioni Istruzione – DELETE Sintassi – DELETE FROM []; – : identica a quella vista Semantica – elimina dalla tabella tutte le ennuple (che soddisfano la condizione se è specificata) SQL 24 di 31 Prof. M. Zaninelli Cancellazioni Esempi: DELETE FROM Numeri; DELETE FROM Studenti WHERE matr=111; DELETE FROM Corsi WHERE ciclo=‘laurea tr.’ AND docente=‘FT’; SQL 25 di 31 Prof. M. Zaninelli Aggiornamenti Istruzione – UPDATE Sintassi – UPDATE SET = [] Semantica – aggiorna il valore dell’attributo di tutte le ennuple (che soddisfano la condizione se è specificata) SQL 26 di 31 Prof. M. Zaninelli Aggiornamenti Esempi: UPDATE Studenti SET anno=anno+1; UPDATE Studenti SET matr=11111 WHERE matr=111; UPDATE Corsi SET docente=‘VC’ WHERE ciclo=‘laurea tr.’ AND docente=‘FT’; SQL 27 di 31 Prof. M. Zaninelli Esercizio Esercizio tratto da: Basi di Dati di Atzeni, Ceri, Paraboschi, Torlone, casa editrice McGraw-Hill SQL 28 di 31 Prof. M. Zaninelli Soluzioni: SQL 29 di 31 Prof. M. Zaninelli Soluzioni SQL 30 di 31 Prof. M. Zaninelli Prof. M. Zaninelli Termini della Licenza This work is licensed under the Creative Commons Attribution- ShareAlike License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/1.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA. Original Work by: G. Mecca - [email protected] - Basi di Dati SQL 31 di 31