SQL: concetti base SQL. Definizione dei dati in SQL. SQL: "storia"



Documenti analoghi
SQL Laboratorio di Basi di Dati a.a. 2002/2003

Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, SQL

SQL-DDL. Basi di Dati. Prof. Alfredo Cuzzocrea Università degli Studi di Trieste

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

SQL: "storia" 31/05/2006 2

SQL. Definizione dei da6 in SQL. SQL: "storia" CREATE TABLE: esempio. CREATE TABLE: esempio

Basi di Dati. Programmazione e gestione di sistemi telematici

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Corso di Laurea in Ingegneria Informatica Algoritmi e basi di dati Modulo Basi di dati a.a

Definizione di domini

Basi di Dati Relazionali

Basi di dati. Il Linguaggio SQL. K. Donno - Il Linguaggio SQL

SQL SQL. Definizione dei dati. Domini. Esistono 6 domini elementari:

Basi di dati. SQL: concetti base

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.2 Data Description Language - 2

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

SQL. Alcune note sulla definizione dei dati

Linguaggio SQL. Structured Query Language

Domini elementari, 2. Basi di dati. Domini elementari, 4. Domini elementari, 3. Domini definiti dagli utenti. Domini elementari, 5

Corso di Informatica (Basi di Dati)

DDL DML. Tipi di linguaggi per basi di dati. Si distinguono due categorie:

Basi di dati SQL. Standardizzazione di SQL. Linguaggi di Interrogazione: SQL. Prof.Angela Bonifati

Corso sul linguaggio SQL

Il linguaggio SQL. Il linguaggio SQL. Il linguaggio SQL. SQL - Tipi di dato. SQL - Tipi di dato numerici. SQL - Tipi di dato numerici

SQL - Tipi di dato Il linguaggio SQL

Corso di Laurea in Ingegneria Informatica Fondamenti di Informatica II Modulo Basi di dati a.a

SQL. SQL: una visione panoramica. SQL: "storia" Definizione dei dati

Basi di Dati: Corso di laboratorio

Basi di Dati e Sistemi Informativi. Structured Query Language

SQL (STRUCTURED QUERY LANGUAGE)

SQL Sintassi Dei Comandi

Basi di dati. SQL: Amministrazione e Viste. Prof.ssa Rosalba Giugno Dott. Aurelio Giudice

Gestione delle tabelle

Linguaggio SQL: fondamenti D B M G. Gestione delle tabelle

Storia. Corso di Basi di Dati Spaziali. Componente DDL. Funzionalità. Esempio. Creazione di schema. Linguaggi: SQL. Storia:

SQL: Concetti Base -Prima Parte-

SQL. Storia un po piu in dettaglio. SQL: "storia" Tre livelli per SQL-2. Standard, dialetti, mercato

SQL. Laboratorio di Progettazione di Basi di Dati (CdS in Informatica e TPS)

1.3 Il linguaggio SQL

Laboratorio di Basi di Dati

Corso di Basi di Dati A.A. 2013/2014

Basi di Dati prof. Letizia Tanca lucidi ispirati al libro Atzeni-Ceri-Paraboschi-Torlone. SQL: il DDL

Basi di Dati. Laboratorio Ing. G. Laboccetta Dott.ssa. V. Policicchio. Corso di Laurea in Informatica. a.a

Laboratorio di Basi di Dati e Web

SQL (STRUCTURED QUERY LANGUAGE)

Basi di Dati prof. Letizia Tanca

DDL, VINCOLI D INTEGRITÁ, AGGIORNAMENTI E VISTE. SQL è più di un semplice linguaggio di interrogazione

Corso sul linguaggio SQL

Il linguaggio SQL: le basi

Basi di Dati. 3. Il Linguaggio SQL. Basi di Dati - A.A. 2003/ Diego Calvanese 3. SQL - 1. Diego Calvanese SQL SQL-92

SQL. Storia e standard

Il linguaggio SQL: DDL di base

Linguaggi per basi di dati

Basi di Dati Corso di Laura in Informatica Umanistica

Giovanna Rosone 04/03/ /03/2010 SQL, Istruzioni per la modifica dello schema

Capitolo 4: SQL (Slides( da Atzeni,, Ceri, Paraboschi, Torlonee,, Basi di dati McGraw-Hill. Hill,, 2002)

DBMS (Data Base Management System)

Esercitazione query in SQL L esercitazione viene effettuata sul database viaggi e vacanze che prevede il seguente modello E/R:


Corso Sistemi Informativi Avanzati. Programma 30 set Installazione Macchina Virtuale. Introduzione alla BI nelle Aziende.

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

MAX, SUM, AVG, COUNT)

Il linguaggio SQL: le basi. Versione elettronica: SQLa-basi.pdf

SQL PER LA DEFINIZIONE DI BASI DI DATI

SQL non è solo un linguaggio di interrogazione (Query Language), ma. Un linguaggio per la definizione di basi di dati (Data-definition language (DDL))

Query. Query (Interrogazioni) SQL SQL. Significato dell interrogazione. Sintassi

DUE GRUPPI DI COMANDI

Descrizione del linguaggio SQL Definizione del database. Giovanna Rosone 02-03/03/2010

Archivi e Basi di Dati

PROGRAMMA DI CLASSE 5AI

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro) ESERCIZIO 3

Vincoli di Integrità

Il linguaggio SQL. è di fatto lo standard tra i linguaggi per la gestione di data base relazionali.

Il Modello Relazionale

1. Schema concettuale della base di dati Lo schema concettuale (o statico) è uno dei due schemi del progetto concettuale di un sistema informativo.

Laboratorio di Basi di Dati Introduzione a SQL

Esame di Stato Istituto Tecnico Industriale Soluzione della Seconda Prova Indirizzo: INFORMATICA Tema: INFORMATICA Anno Scolastico:

Volumi di riferimento

Capitolo 4. Soluzione: Soluzione: Create domain STRING as character varying (256) default sconosciuto not null

Basi di dati. SQL: concetti base

Corso di Laboratorio di Basi di Dati

Universita di Milano Bicocca Corso di Basi di dati 1 in elearning C. Batini 6. SQL DDL 6.1 Data Description Language - 1

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL

Data Base. Master "Bio Info" Reti e Basi di Dati Lezione 6

Basi di dati Maurizio Lenzerini Dipartimento di Informatica e Sistemistica Antonio Ruberti Università di Roma La Sapienza

Documentazione SQL. Argomento Sintassi Note Definizione schema create schema [NomeSchema] [[authorization] Autorizzazione] {DefElementoSchema}

a.a. 2012/13 12 Novembre 2012 Preparazione al Test in itinere, Compito A 1. Modellare tramite uno schema entità- relazione la seguente base di dati:

SQL. Linguaggio di interrogazione per basi di dati relazionali. Relazione = tabella con attributi (a 1, a 2,, a n ): Funzionalità principali di SQL:

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Linguaggio SQL. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni

SQL Matteo Magnani, Danilo Montesi Università di Bologna SQL. Linguaggio di interrogazione per basi di dati relazionali

Vincoli di integrità

I comandi del linguaggio DDL (Data Definition Language): CREATE E ALTER

User Tools: DataBase Manager

Viste come strumenti di programmazione

SQL. Structured Query Language 1974: SEQUEL by IBM 1981: SQL by IBM : SQL ISO 9075:1992 SQL:1999 SQL:2003

Linguaggio SQL Descriviamo la notazione usata nel seguito:

INFORMATICA GENERALE Prof. Alberto Postiglione. Scienze della Comunicazione Università di Salerno. INFORMATICA GENERALE Prof. Alberto Postiglione

Transcript:

SQL SQL: concetti base originariamente "Structured Query Language", ora "nome proprio" linguaggio con varie funzionalità: contiene sia il DDL sia il DML ne esistono varie versioni vediamo gli aspetti essenziali, non i dettagli SQL: "storia" prima proposta SEQUEL (1974); prime implementazioni in SQL/DS e Oracle (1981) dal 1983 ca. "standard di fatto" standard (1986, poi 1989 IR, 1992, 1999 e infine 2003) recepito solo in parte (!!) Definizione dei dati in SQL Istruzione CREATE TABLE: definisce uno schema di relazione e ne crea un istanza vuota specifica attributi, domini e vincoli 1

CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) Domini Domini elementari (predefiniti) Domini definiti dall'utente (semplici, ma riutilizzabili) DB2 vuole NOT NULL per la chiave primaria Domini elementari Carattere: singoli caratteri o stringhe, anche di lunghezza variabile Bit: singoli booleani o stringhe Numerici, esatti e approssimati Data, ora, intervalli di tempo sql-2 Introdotti in SQL:1999: Boolean BLOB, CLOB (binary/character large object): per grandi immagini e testi Definizione di domini Istruzione CREATE DOMAIN: (no mysql) definisce un dominio (semplice), utilizzabile in definizioni di relazioni, anche con vincoli e valori di default 2

CREATE DOMAIN, esempio CREATE DOMAIN Voto AS SMALLINT DEFAULT NULL CHECK ( value >=18 AND value <= 30 ) Vincoli intrarelazionali NOT NULL UNIQUE definisce chiavi PRIMARY KEY: chiave primaria (una sola, implica NOT NULL; DB2 non rispetta lo standard) CHECK, vedremo più avanti UNIQUE e PRIMARY KEY due forme: nella definzione di un attributo, se forma da solo la chiave come elemento separato CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) 3

PRIMARY KEY, alternative Matricola CHAR(6) PRIMARY KEY Matricola CHAR(6),, PRIMARY KEY (Matricola) CREATE TABLE, esempio CREATE TABLE Impiegato( Matricola CHAR(6) PRIMARY KEY, Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, Dipart CHAR(15), Stipendio NUMERIC(9) DEFAULT 0, FOREIGN KEY(Dipart) REFERENCES Dipartimento(NomeDip), UNIQUE (Cognome,Nome) ) Chiavi su più attributi, attenzione Nome CHAR(20) NOT NULL, Cognome CHAR(20) NOT NULL, UNIQUE (Cognome,Nome), Nome CHAR(20) NOT NULL UNIQUE, Cognome CHAR(20) NOT NULL UNIQUE, Non è la stessa cosa! Vincoli interrelazionali E' possibile definire politiche di reazione alla CHECK, violazione vedremo per più modifica avanti o cancellazione REFERENCES e FOREIGN KEY permettono di Cascade definire vincoli di integrità referenziale Set di nuovo null due sintassi Set per default singoli attributi No su action più attributi E' possibile definire politiche di reazione alla violazione 4

Infrazioni Codice 34321 53524 64521 73321 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 3295 9345 Prov MI TO PR PR Numero 39548K E39548 839548 839548 Infrazioni Codice 34321 53524 64521 73321 Data 1/2/95 4/3/95 5/4/96 5/2/98 Vigile 3987 3295 3295 9345 Prov MI TO PR PR Numero 39548K E39548 839548 839548 Vigili Matricola 3987 3295 9345 7543 Cognome Mori Nome Luca Piero Mario Gino Auto Prov Numero MI TO PR 39548K E39548 839548 Cognome Nome Mario Mario Luca CREATE TABLE, esempio CREATE TABLE Infrazioni( Codice CHAR(6) NOT NULL PRIMARY KEY, Data DATE NOT NULL, Vigile INTEGER NOT NULL REFERENCES Vigili(Matricola), Provincia CHAR(2), Numero CHAR(6), FOREIGN KEY(Provincia, Numero) REFERENCES Auto(Provincia, Numero) ) ALTER DOMAIN ALTER TABLE DROP DOMAIN DROP TABLE... Modifiche degli schemi 5

Definzione degli indici è rilevante dal punto di vista delle prestazioni ma è a livello fisico e non logico in passato era importante perché in alcuni sistemi era l'unico mezzo per definire chiavi CREATE INDEX DDL, in pratica In molti sistemi si utilizzano strumenti diversi dal codice SQL per definire lo schema della base di dati SQL, operazioni sui dati interrogazione: SELECT modifica: INSERT, DELETE, UPDATE Istruzione SELECT (versione base) SELECT ListaAttributi FROM ListaTabelle [ WHERE Condizione ] "target list" clausola FROM clausola WHERE 6

Maternità Paternità Madre Luisa Luisa Anna Anna Maria Maria Padre Sergio Luigi Luigi Franco Franco Figlio Maria Luigi Olga Filippo Andrea Aldo Figlio Franco Olga Filippo Andrea Aldo Persone Nome Età Andrea 27 Aldo 25 Maria 55 Anna 50 Filippo 26 Luigi 50 Franco 60 Olga 30 Sergio 85 Luisa 75 Reddito 21 15 42 35 30 40 20 41 35 87 Selezione e proiezione Nome e reddito delle persone con meno di trenta anni PROJ Nome, Reddito (SEL Eta<30 (Persone)) select nome, reddito where eta < 30 SELECT, abbreviazioni select nome, reddito where eta < 30 select p.nome as nome, p.reddito as reddito p where p.eta < 30 Selezione, senza proiezione Nome, età e reddito delle persone con meno di trenta anni SEL Eta<30 (Persone) where eta < 30 7

SELECT, abbreviazioni where eta < 30 select nome, età, reddito where eta < 30 Proiezione, senza selezione Nome e reddito di tutte le persone PROJ Nome, Reddito (Persone) select nome, reddito R(A,B) SELECT, abbreviazioni from R Espressioni nella target list select Reddito/2 as redditosemestrale from Persone where Nome = 'Luigi' equivale (intuitivamente) a select X.A as A, X.B as B from R X where true 8

Condizione complessa where reddito > 25 and (eta < 30 or eta > 60) Condizione LIKE Le persone che hanno un nome che inizia per 'A' e ha una 'd' come terza lettera where nome like 'A_d%' Gestione dei valori nulli Impiegati Matricola 7309 5998 Cognome Filiale Milano Roma Età 32 45 5998 9553 Bruni Milano NULL 45 9553 Bruni Milano NULL Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL (Età > 40) OR (Età IS NULL) (Impiegati) Gli impiegati la cui età è o potrebbe essere maggiore di 40 SEL Età > 40 OR Età IS NULL (Impiegati) from impiegati where eta > 40 or eta is null 9

Proiezione, attenzione cognome e filiale di tutti gli impiegati select cognome, filiale from impiegati select distinct cognome, filiale from impiegati Matricola Cognome Filiale Stipendio 7309 Napoli 55 5998 Milano 64 9553 Roma 44 5698 Roma 64 PROJ Cognome, Filiale (Impiegati) Cognome Filiale Napoli Milano Roma Roma Cognome Filiale Napoli Milano Roma Selezione, proiezione e join Istruzioni SELECT con una sola relazione nella clausola FROM permettono di realizzare: selezioni, proiezioni, ridenominazioni con più relazioni nella FROM si realizzano join (e prodotti cartesiani) 10