SQL (STRUCTURED QUERY LANGUAGE)



Похожие документы
SQL (STRUCTURED QUERY LANGUAGE)

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

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

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

DBMS (Data Base Management System)

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

Definizione di domini

Istruzioni DML di SQL

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


IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

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

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

Basi di Dati: Corso di laboratorio

OR true null false true true true true null true null null false true null false NOT

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

********************* MODIFICA STRUTTURA DI UNA TABELLA (inserimento di un nuovo campo) ALTER TABLE Personale ADD Nascita date;

Appunti di MySql. Evoluzione di un tutorial di base di mysql, scritto da Etel Sverdlov.

SQL e ACCESS. Modello relazionale PROBLEMA ENTITA STUDENTE

Linguaggio SQL. Structured Query Language

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

ESEMPI DI QUERY SQL. Esempi di Query SQL Michele Batocchi AS 2012/2013 Pagina 1 di 7

SQL. Alcune note sulla definizione dei dati

Gestione delle tabelle

MAX, SUM, AVG, COUNT)

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

Informatica per le discipline umanistiche 2 lezione 10

Operazioni sui database

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

Il linguaggio SQL: le basi

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

Corso di Laboratorio di Basi di Dati

Corso di Informatica Generale 1 IN1. Linguaggio SQL

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

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

SQL Sintassi Dei Comandi

Join in SQL (primo modo) Informatica. Tabella Dipartimento. Interrogazione 4a. Interrogazione 4b. Interrogazione 4a

Lezione V. Aula Multimediale - sabato 29/03/2008

PROGRAMMA DI CLASSE 5AI

Gli operatori relazionali

Il linguaggio SQL. ing. Alfredo Cozzi 1

Volumi di riferimento

Introduzione a MySQL

Il linguaggio SQL. Evoluzione del linguaggio. I linguaggi dentro SQL. I dialeu SQL. U@lizzo di SQL SQL. A. Ferrari 1

INFORMATICA. Applicazioni WEB a tre livelli con approfondimento della loro manutenzione e memorizzazione dati e del DATABASE.

Informatica. Sintassi. Interrogazioni in SQL. Significato dell interrogazione. Tabella Impiegato. Basi di dati parte 4 SQL

Basi di Dati Relazionali

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

Istruzioni SQL 1. Query di selezione 2 Istruzione SELECT 2 Istruzione SELECT DISTINCT 2 ORDER BY 3 WHERE 3 La condizione LIKE 4 BETWEEN AND 5

Corso di Informatica (Basi di Dati)

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

Laboratorio di Basi di Dati e Web

Laboratorio di Basi di Dati

SQL - Funzioni di gruppo

SISTEMI INFORMATIVI E TELEMEDICINA INFORMATICA MEDICA. 3. Panoramica su SQL Prof. Mauro Giacomini

SQL -DDL. FONDISTA(Nome, Nazione, Età) GAREGGIA(NomeFondista, NomeGara, Piazzamento) GARA(Nome, Luogo, Nazione, Lunghezza)

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

Uso delle basi di dati. Informazione e dato. Cos è un database. Tabelle. Esempi di database

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

Corso sul linguaggio SQL

Structured Query Language parte 1

Preparazione. Introduzione a MySQL: costruzione di una base di dati e gestione degli accessi. Accesso all area condivisa. Avvio Server MySQL

Abilità Informatiche A.A. 2010/2011 Lezione 9: Query Maschere Report. Facoltà di Lingue e Letterature Straniere

User Tools: DataBase Manager

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

Data base relazionale ed SQL. Modello relazionale dei data base e il linguaggio standard per la loro gestione

Esercitazione di riepilogo sulle Query MySQL Giugno 2011 Classe VB Informatica

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

Insegnamento di Informatica CdS Scienze Giuridiche A.A. 2006/7. Il trattamento dei dati

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

S.Q.L. Introduzione a Structured Query Language. I.T.C. "V.Emanuele II" - Perugia. Prof.Claudio Maccherani INDICE

SQL quick reference. piccolo manuale di riferimento dei principali comandi SQL (prof. Claudio Maccherani, Perugia, 2013)

Archivi e Basi di Dati

SQL IL LINGUAGGIO DI INTERROGAZIONE

SQL Manuale introduttivo

Il linguaggio SQL: DDL di base

SQL: Concetti Base -Prima Parte-

Corso sul linguaggio SQL

DUE GRUPPI DI COMANDI

Utilizzando Microsoft Access. Si crea la tabella Anagrafica degli alunni,le Materie e i voti si mettono alcuni campi

Basi di Dati Corso di Laura in Informatica Umanistica

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

SQL: definizione schema

Modello Relazionale. Sistemi di Elaborazione delle Informazioni. DB ed SQL. Modello relazionale: concetti di base

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

Database Lezione 1. Sommario. - Introduzione - Tabelle e chiave primaria - Query - Calcoli ed alias - Ordinamento

CAPITOLO 4 ESERCIZI SU SQL

Lezione del modulo 7 SQL e database del giorno 04/05/2006 tot. ore 3. Lo Standard SQL

Data management a.a Il linguaggio SQL

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

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

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

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:

Esprimere in algebra (ottimizzata), calcolo relazionale la seguente query:

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

Data Management Software. Il linguaggio SQL. Raggruppamenti. Paolo Avallone Sr Consulting IT Specialist DB2, Data Management Marzo 2004

Structured Query Language. Informatica Generale - SQL Versione 1.0, aa p.1/172

Транскрипт:

SQL (STRUCTURED QUERY LANGUAGE) Prof. Nicoletta D Alpaos & Prof. Andrea Borghesan SQL DDL Data Definition Language DML Data Manipulation Language DCL Data Control Language

DDL Obiettivo: Definire la struttura delle relazioni del database (DDL: Data Definition Language) DDL Create Drop Alter 2

Create database Il comando create database serve a creare un nuovo database, che potrà contenere : Tabelle Viste stored procedure Trigger altri tipi di oggetti. 3 Nota 1: in Access i database devono essere creati all interno dell ambiente GUI. Nota 2: esiste anche: ALTER DATABASE nome_database CHARACTER SET caratteri; (caratteri per esempio latin1).

Create database CREATE DATABASE nome_database; Esempio: CREATE DATABASE azienda; 4

Drop database Il comando drop database serve a cancellare un database. DROP DATABASE nome_database; Esempio: DROP DATABASE azienda; 5

Create table Il comando create table ha la funzione di creare una nuova tabella (o tavola). Una tabella è composta da: attributi domini vincoli 6

Create table Il nome della tabella: 1. Può essere scritto indifferentemente in MAIUSCOLO o in minuscolo 2. Può essere formato da lettere e numeri, ma il primo carattere deve sempre essere una lettera; 3. Non può superare i 30 caratteri di lunghezza; 4. Non può avere lo stesso nome di una tabella o vista già esistente sullo stesso utente di database. La tabella può : essere creata vuota (create table) essere creata e riempita di dati (create table + select) 7

8 Create table CREATE TABLE nome_tabella ( nome_campo tipo [(lunghezza)] [NOT NULL NULL] [DEFAULT valore_di_default] [AUTO_INCREMENT] [[PRIMARY] KEY] [UNIQUE] [CHECK (espressione)] [PRIMARY KEY (nome_campo [, ])] [[UNIQUE] INDEX [nome_indice] (nome_campo [, ])] [FOREIGN KEY [nome_indice] (nome_campo [, ]) REFERENCES nome_tabella_f nome_campo_f DELETE ON UPDATE DEFAULT SET NULL RESTRICT) ] ); [ON (CASCADE SET

Create table CREATE TABLE nome_tabella AS SELECT...; La struttura della tabella, in questo caso, è definita implicitamente dal numero di colonne (o campi) estratti dalla select, dal tipo di dato di ciascuna colonna e dai nomi delle rispettive colonne estratte dalla select (o dagli alias ad esse applicati). 9

Create table Esempio: CREATE TABLE tblamici ( codice SMALLINT PRIMARY KEY, nome CHAR (20) NOT NULL, cognome CHAR (30), telefono VARCHAR (15) DEFAULT 0, data_nascita date, gruppo INTEGER, UNIQUE (nome,cognome), FOREIGN KEY (gruppo) REFERENCES compagnie (id_gruppo) ON DELETE CASCADE ) 10

Create table. Che cos è il tipo? Domini: Domini elementari (predefiniti) Domini definiti dall'utente (semplici, ma riutilizzabili) 11 (vedi più avanti)

Create table. Foreign key? REFERENCES nome_tabella [ ( colonna1 [, colonna2... ] ) ] [ ON DELETE { CASCADE SET DEFAULT SET NULL } ] [ ON UPDATE { CASCADE SET DEFAULT SET NULL } ] Le clausole ON DELETE e ON UPDATE indicano quale azione deve essere compiuta nel caso in cui una tupla nella tabella referenziata venga eliminata o aggiornata. Infatti in tali casi nella colonna referenziante (che e' quella che si sta definendo) potrebbero esserci dei valori inconsistenti. Le azioni possono essere: o o o CASCADE: eliminare la tupla contenente la colonna referenziante (nel caso di ON DELETE) o aggiornare anche la colonna referenziante (nel caso di ON UPDATE). SET DEFAULT: assegnare alla colonna referenziante il suo valore di default. SET NULL: assegnare alla colonna referenziante il valore NULL. 12

Drop table Il comando drop table consente di distruggere una tabella, eliminandola fisicamente dal database. Come tutti i comandi DDL è un'operazione irreversibile, e provoca la perdita di tutti i dati contenuti nella tabella. DROP TABLE nome_tabella; 13

Rename Il comando rename consente di rinominare una tabella. RENAME nome_tabellato nuovo_nome_tabella; 14

SQL (STRUCTURED QUERY LANGUAGE) DML 15

DML Modificare i dati contenuti nel database, con operazioni di inserimento, variazione e cancellazione (DML: Data Manipulation Language) 16 DML Insert Update Delete Select

Insert Il comando insert into permette l inserimento dei nuovi dati INSERT INTO nome_tabella [nome_campo [, ]] {VALUES (espressione[, ]) SELECT.} 17

Insert Esempi (1): INSERT INTO studenti (matricola, nome, cognome, via, citta, telefono) VALUES (100, Mario, Rossi, viale indipendenza 15, Milano, 02-12345678 ); 18 INSERT INTO studenti (matricola, nome, cognome, via, citta, telefono) VALUES (100, Mario, Rossi, viale indipendenza 15, Milano, 02-12345678 ), (101, Valentina, Bianchi, Piazza delle Erbe, Padova, 049-98765432 );

Insert Esempi (2): INSERT INTO studenti VALUES (100, Mario, Rossi ); INSERT INTO studenti (matricola, nome, cognome, citta) SELECT matricola, nome, cognome, citta FROM nuoviiscritti WHERE citta = Milano ; 19

Update Il comando update permette l aggiornamento di una tabella UPDATE nome_tabella SET nome_campo = { espressione NULL DEFAULT SELECT } WHERE condizione }; 20

Update Esempi: UPDATE studenti SET classe = classe+1 WHERE promosso = true AND classe < 5; 21

Delete Il comando delete from permette l eliminazione di righe di una tabella DELETE FROM nome_tabella [WHERE condizione ][LIMIT massimo_numero righe]; Nota access non supporta limit 22

Delete Esempi: DELETE FROM studenti WHERE promosso = true AND classe = 5; DELETE FROM nuoviiscritti; (che differenza c è con DROP TABLE nuoviiscritti;?) Nota: se il vincolo di integrità non è definito nello schema di creazione della tabella, l eliminazione è sempre possibile, altrimenti. (vedi foreign key) 23

SQL (STRUCTURED QUERY LANGUAGE) DCL 24

DCL Gestire il controllo degli accessi e i permessi per gli utenti (DCL: Data Control Language) DCL Grant Revoke 25

SQL (STRUCTURED QUERY LANGUAGE) QUERY Language 26

QUERY Language Porre interrogazioni al database SELECT [ALL DISTINCT] {* (nome_campo [AS alias])[, ]} FROM nome_tabella [AS alias] [, ] [WHERE condizione] [GROUP BY nome_campo] [HAVING condizione] [ORDER BY (nome_campo) [ASC DESC] [, ] [LIMIT [ riga_iniziale,][righe]]; 27 Nota: LIMIT per MYSQL; TOP per ACCESS.

Operatori relazionali selezione proiezione congiunzione (join) 28

Selezione L operazione di selezione (non confondere con il comando SQL, SELECT!) estrae un sottoinsieme di righe da una tabella in base a delle condizioni imposte ai valori contenuti in una o più colonne. 29

Proiezione L operazione di proiezione estrae un sottoinsieme di colonne da una tabella 30

Esempio selezione: SELECT * FROM articoli WHERE colore= Rosso ; 31

Esempio proiezione: SELECT colore FROM articoli; 32

Esempio: SELECT DISTINCT colore FROM articoli ORDER BY colore; 33

Esempio selezione e proiezione: SELECT descrizione FROM articoli WHERE colore= Rosso ; 34

Join L operazione di congiunzione (non confondere nella traduzione dall inglese UNION con JOIN) combina le operazioni di prodotto e di selezione tra due (o più tabelle); viene cioè effettuato prima il prodotto fra le tabelle e poi estratte solo le righe che soddisfano una determinata condizione tra le colonne della prima e della seconda tabella. 35

Join Date le tabelle di partenza tbla e tblb: 36

Join Outer join 37

Esempio selezione: SELECT * FROM TblLibri WHERE prezzo < 20,00; 38

Esempio proiezione: SELECT Titolo, isbn FROM TblLibri ORDER BY Titolo; 39

Esempio join: SELECT * FROM TblLibri,TblEditore WHERE TblLibri.Id_CasaEditrice = TblEditori.Id_CasaEditrice; SELECT * FROM TblLibri INNER JOIN TblEditore ON TblLibri.Id_CasaEditrice = TblEditori.Id_CasaEditrice; 40

Esempio outer join: SELECT * FROM TblLibri LEFT JOIN TblEditore ON TblLibri.Id_CasaEditrice = TblEditori.Id_CasaEditrice; 41

Esempio outer join : SELECT * FROM TblLibri RIGHT JOIN TblEditore ON TblLibri.Id_CasaEditrice = TblEditori.Id_CasaEditrice; 42

Altri operatori ORDER BY LIKE BETWEEN IN 43

Esempio: SELECT isbn,titolo FROM TblLibri WHERE DataPubblicazione BETWEEN #01/01/2005 # AND #31/12/2005# AND isbn LIKE 88-* ORDER BY isbn DESC; 44

Esempio: SELECT editore FROM TblEditori WHERE provincia IN ( TO, PD, VE ); 45

Esempio: SELECT titolo FROM TblLibri WHERE Id_CasaEditrice IN ( SELECT Id_CasaEditrice FROM TblEditori WHERE provincia = MI ); query nidificata 46

Operatori di aggregazione AVG COUNT MAX MIN SUM 47

Operatori di aggregazione (2) STDEV (access) STDDEV (mysql) VAR (access) VARIANCE (mysql) 48

Esempio: SELECT AVG(Prezzo) FROM TblLibri; 21,28 SELECT COUNT(*) FROM TblLibri; 5 SELECT COUNT(Id_CasaEditrice) FROM TblLibri; 4 SELECT COUNT(*) - COUNT(Id_CasaEditrice) FROM TblLibri; 1 SELECT COUNT(DISTINCT Id_CasaEditrice) FROM TblLibri; 3 (ma solo mysql) 49

Raggruppamenti GROUP BY serve per raggruppare ed elaborare diverse righe che nella tabella origine hanno valori uguali in una (o più) determinata colonna 50

Condizioni di gruppo HAVING permette di porre condizioni sulla nuova tabella ottenuta dopo il raggruppamento SELECT FROM [JOIN] [WHERE]. GROUP BY. [HAVING condizione]; 51

Esempio: SELECT trimestre, SUM (totale) AS venduto FROM TblVendite GROUP BY trimestre; 52

Esempio: SELECT zona, AVG (totale) AS media FROM TblVendite GROUP BY zona HAVING AVG (totale) < 1000; 53

54 Appendice

Caratteri Jolly (ACCESS) Carat tere Utilizzo Esempio * Corrisponde a un numero qualsiasi di caratteri. Può essere utilizzato come primo o ultimo carattere nella stringa dei caratteri.? Corrisponde a qualsiasi singolo carattere alfabetico. no* trova nome, note e notare B?llo trova ballo, bello e bollo [] Corrisponde a qualsiasi singolo carattere all'interno delle parentesi quadre B[ae]llo trova ballo e bello, ma non bollo 55

Caratteri Jolly (ACCESS) Carat tere Utilizzo Esempio! Corrisponde a qualsiasi carattere non incluso nelle parentesi quadre - Corrisponde a uno qualsiasi dei caratteri di un intervallo. È necessario specificare l'intervallo in ordine crescente (dalla A alla Z, non dalla Z alla A) # Corrisponde a qualsiasi singolo carattere numerico b[!ae]llo trova bollo e bullo, ma non ballo e bello b[a-c]d trova bad, bbd e bcd Corrisponde a qualsiasi singolo carattere numerico. 1#3 trova 103, 113 56