Corso sul linguaggio SQL



Похожие документы
Corso sul linguaggio SQL

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

Corso di Informatica (Basi di Dati)

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

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

Definizione di domini

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

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

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

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

Il linguaggio SQL: DDL di base

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

SQL Sintassi Dei Comandi

Gestione delle tabelle

Basi di Dati: Corso di laboratorio

Linguaggio SQL. Structured Query Language

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

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

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

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

Basi di Dati Relazionali

Basi di dati. Il Modello Relazionale dei Dati. K. Donno - Il Modello Relazionale dei Dati

INFORMATICA PER L IMPRESA (Docente Prof. Alfredo Garro)

Introduzione a MySQL

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

INDICI. Prevediamo di effettuare spesso interrogazioni simili alle seguenti:

SQL. Storia e standard

Laboratorio di Basi di Dati

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

Vincoli di Integrità Approccio dichiarativo alla loro implementazione

SQL. Alcune note sulla definizione dei dati

Volumi di riferimento

BASE DI DATI: sicurezza. Informatica febbraio ASA

Corso di Laboratorio di Basi di Dati

Vincoli di integrità

DBMS (Data Base Management System)

Il Modello Relazionale

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

Vincoli di Integrità

Informatica (Basi di Dati)

Lezione 8. Metadati, Viste e Trigger

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

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

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

Università degli Studi di Verona. Laboratorio di Basi di Dati

IL LINGUAGGIO SQL IDENTIFICATORI E TIPI DI DATI COMANDI E ISTRUZIONI

MySQL Database Management System

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

SQL: Concetti Base -Prima Parte-

Lo schema concettuale risultante dalla progettazione concettuale è l input alla fase di progettazione logica.

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

Basi di Dati prof. Letizia Tanca

MySQL Command Line Client: operazioni fondamentali

Basi di Dati e Sistemi Informativi. Progettazione logica: Il modello relazionale

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

Esercitazione: Il DBMS MySQL

SQL (STRUCTURED QUERY LANGUAGE)

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

Basi di dati 9 febbraio 2010 Compito A

2104 volume III Programmazione

Database. Appunti di Amaranto Oronzo e Giancane Diego Lezione dell Ing. Lucia Vaira 24/04/2014

User Tools: DataBase Manager

Il Modello Relazionale

Cardinalità e identificatori. Informatica. Generalizzazioni. Generalizzazioni. Generalizzazioni. Generalizzazioni

Corso di Access. Prerequisiti. Modulo L2A (Access) 1.1 Concetti di base. Utilizzo elementare del computer Concetti fondamentali 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))

Corso di Informatica Generale 1 IN1. Linguaggio SQL

Esercizio data base "Biblioteca"

Il linguaggio SQL: le basi

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

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

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

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:

Elena Baralis 2013 Politecnico di Torino 1

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

Raggruppamenti Conti Movimenti

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

Database. Si ringrazia Marco Bertini per le slides

Basi di dati Il linguaggio SQL

Basi di dati Il linguaggio SQL

DUE GRUPPI DI COMANDI

MODELLO RELAZIONALE. cesarini-bdsi mod relazionale 1 MODELLO RELAZIONALE

Schema della base di dati del Catalogo dei Dati della Pubblica Amministrazione Renzo Orsini

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

Unità 2.1 Comandi sui database

I DATABASE Database relazionale

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

Concetti fondamentali dei database database Cos'è un database Principali database

Progettazione di Database. Un Esempio

SQL PER LA DEFINIZIONE DI BASI DI DATI

Università degli Studi di L Aquila. Facoltà di Ingegneria. Corso di Laurea in Ingegneria Elettronica Corso di Sistemi Informativi

Informatica. Il modello relazionale: Relazioni e tabelle. Relazioni con attributi

5.3 TABELLE RECORD Inserire, eliminare record in una tabella Aggiungere record Eliminare record

CORSO ACCESS PARTE II. Esistono diversi tipi di aiuto forniti con Access, generalmente accessibili tramite la barra dei menu (?)

Si formulino le seguenti interrogazioni tramite il linguaggio SQL:

Archivi e Basi di Dati

Транскрипт:

Corso sul linguaggio SQL Modulo L2B (SQL) 2.2 Comandi sulle tabelle 1 Prerequisiti Introduzione ai DB Tabelle, relazioni e attributi Chiave primaria Chiave esterna Vincoli di integrità 2 1

Introduzione In questa Unità illustriamo i comandi DDL che si occupano della definizione delle tabelle e ne descriviamo, con esempi, la sintassi, le caratteristiche ed il funzionamento. 3 Informazioni generali N.B. A solo scopo didattico, per descrivere le istruzioni SQL, usiamo le seguenti convenzioni: i caratteri MAIUSCOLI indicano parole chiave del linguaggio; i caratteri corsivi indicano elementi che dovranno essere specificati dal programmatore; le parentesi quadre indicano opzione; la barra verticale indica alternativa. Per convenzione è preferibile che i nomi degli attributi e delle tabelle siano scritti in minuscolo. 4 2

Per gestire le tabelle, SQL fornisce i seguenti comandi: CREATE TABLE: creazione di uno schema ALTER TABLE: modifica lo schema DROP TABLE: elimina la tabella SHOW TABLES: elenca le tabelle presenti DESCRIBE: mostra lo schema Prima di agire su una tabella di un DB è necessario il comando USE db; dove db è il nome del database contenente la tabella. 5 - Creazione tabella Il comando CREATE TABLE: definisce uno schema di relazione ne crea un istanza vuota specifica attributi, domini e vincoli Sintassi CREATE TABLE tab (lista_attributi); dove tab è il nome assegnato alla tabella lista_attributi è una lista separata da virgole dei singoli attributi 6 3

- Creazione tabella Chiave primaria mysql> CREATE TABLE impiegato (matricola CHAR(6) PRIMARY KEY, Vieta valori nulli nome CHAR(20) NOT NULL, cognome CHAR(20) NOT NULL, dipart INTEGER, paga DECIMAL (6, 2) DEFAULT 0, UNIQUE (cognome, nome) ); Valore Chiave candidata mysql>_ predefinito Più valori NULL in una tabella o nella stessa colonna, non possiedono lo stesso valore. Il valore NULL non è lo zero, né il carattere spazio, ma è un nulla virtuale ogni volta diverso e mai uguale ad ogni altro. 7 - Creazione tabella Le parole chiave che qualificano alcuni attributi dell esempio si dicono vincoli intra-relazionali. I principali sono: PRIMARY KEY: definisce la chiave primaria; NOT NULL: l attributo non può avere valore nullo; DEFAULT: indica che l attributo viene inizializzato con un valore standard, modificabile dall utente UNIQUE: definisce chiavi candidate (ulteriori chiavi utilizzabili come primarie), ossia attributi il cui valore non può essere duplicato 8 4

I vincoli intra-relazionali possono essere indicati al momento della dichiarazione dell attributo o successivamente: 1. matricola CHAR(6) PRIMARY KEY 2. matricola CHAR(6), PRIMARY KEY (matricola) 9 Il vincolo intra-relazionale UNIQUE serve ad evitare i duplicati e segue una precisa regola: nome CHAR(20) NOT NULL cognome CHAR(20) NOT NULL UNIQUE (cognome, nome), Poiché i valori NULL in una tabella o nella stessa colonna, sono sempre diversi tra loro, è indispensabile il NOT NULL sui campi cognome e nome, altrimenti nel caso non inserissimo il nome, il vincolo UNIQUE sarebbe comunque rispettato. ATTENZIONE: la dichiarazione precedente è diversa da: nome CHAR(20) NOT NULL UNIQUE cognome CHAR(20) NOT NULL UNIQUE 10 5

dipart è chiave esterna e fa riferimento alla tabella dipartimento avente come chiave primaria nomedip mysql> CREATE TABLE impiegato (matricola CHAR(6) PRIMARY KEY, nome CHAR(20) NOT NULL, cognome CHAR(20) NOT NULL, dipart INTEGER, paga INTEGER DEFAULT 0, FOREIGN KEY (dipart) REFERENCES dipartimento (dip), UNIQUE (cognome, nome) ); mysql> _ Il vincolo chiave candidata non ci permette di inserire nella stessa colonna più di una volta lo stesso valore. 11 Le parole chiave FOREIGN KEY e REFERENCES servono ad esprimere i vincoli di integrità referenziale. Nell esempio, l attributo dipart è chiave esterna e fa riferimento alla tabella dipartimento, avente come chiave primaria nomedip. Si può verificare che in questo modo: è impossibile assegnare ad un impiegato un dipartimento che non è stato ancora creato; è impossibile eliminare un dipartimento se di esso fa parte almeno un impiegato; è possibile usare chiavi esterne composte (vedremo in seguito). 12 6

VEICOLO Prov TO RM MI Numero 23542H 16347G 56569A Ad esempio, vogliamo creare le tabelle relative a VIGILE, MULTA e VEICOLO, rappresentando le chiavi primarie ed esterne come rappresentato in figura. Cognome Rossi Rispoli Bianchi Codice 34321 53524 64521 73321 Nome Nello Alfio Mario MULTA Data 01/02/95 04/03/95 05/04/96 05/02/98 VIGILE Matricola 3987 3295 9345 7543 CodVigile 3987 3295 3295 9345 Cognome Marini Leoni Moretti Giacomi Prov TO RM MI MI Nome Ennio Luigi Mario Alfio Numero 23542H 16347G 56569A 56569A 13 ATTIVITA : Scrivere in SQL il comando per la creazione della tabella veicolo (10 caratteri per la targa, 20 per il cognome e 15 per il nome). CREATE TABLE veicolo ( prov CHAR (2), NOT NULL PRIMARY KEY, numero CHAR (10) NOT NULL PRIMARY KEY, cognome CHAR (20) NOT NULL, nome CHAR (15) NOT NULL ); CREATE TABLE vigile ( matricola INTEGER, NOT NULL PRIMARY KEY, ); cognome CHAR (20) NOT NULL, nome CHAR (15) NOT NULL ATTIVITA : Scrivere in SQL il comando per la creazione della tabella vigile (20 caratteri per il cognome e 15 per il nome). 14 7

ATTIVITA : Scrivere in SQL il comando per la creazione della tabella multa (codice 6 caratteri, provincia 2 caratteri, numero 10 caratteri). CREATE TABLE multa ( codice CHAR(6) NOT NULL PRIMARY KEY, data DATE NOT NULL, vigile INTEGER NOT NULL REFERENCES vigile(matricola), provincia CHAR(2), numero CHAR(6), FOREIGN KEY (provincia, numero) REFERENCES veicolo(provincia, numero) ); 15 2. Modifica tabella Il comando ALTER TABLE modifica lo schema di una relazione: aggiunge / elimina attributi modifica dominio di un attributo Sintassi ALTER TABLE tab comando; dove comando è uno dei seguenti: aggiunta / eliminazione colonne modifica nome e/o dichiarazione colonne relativo alla tabella tab. 16 8

2. Modifica tabella (aggiunta colonne) ALTER TABLE tab ADD [COLUMN] colonna tipo [FIRST AFTER colonna]; dove tab è il nome assegnato alla tabella; colonna è il nome dell attributo; tipo indica il dominio. Esempio: ALTER TABLE impiegato ADD COLUMN livello INTEGER; Aggiunge l attributo intero livello alla tabella impiegato E possibile impostarne la posizione 17 2. Modifica tabella (eliminazione colonne) ALTER TABLE tab DROP [COLUMN] colonna; dove tab è il nome assegnato alla tabella; colonna è il nome dell attributo. Esempio: ALTER TABLE impiegato DROP livello; Elimina l attributo produzione. 18 9

2. Modifica tabella (nome e dominio colonne) ALTER TABLE tab CHANGE [COLUMN] colonna nuovacolonna tipo [FIRST AFTER colonna]; dove tab è il nome assegnato alla tabella; colonna è il nome dell attributo; nuovacolonna è il nome della nuova colonna; tipo indica il dominio. E possibile impostarne la posizione. Esempio: ALTER TABLE impiegato CHANGE paga stipendio REAL; Modifica l attributo paga da Integer a Real e ne cambia il nome a stipendio 19 2. Modifica tabella (dichiarazione colonne) ALTER TABLE tab MODIFY [COLUMN] colonna tipo [FIRST AFTER colonna]; dove tab è il nome assegnato alla tabella; colonna è il nome dell attributo; tipo indica il dominio. E possibile impostarne la posizione Esempio: ALTER TABLE impiegato MODIFY stipendio DECIMAL(4, 2); Modifica l attributo stipendio a reale con due decimali.. 20 10

3. Eliminazione tabella Il comando DROP TABLE elimina la tabella dal DB. Sintassi DROP TABLE tab; dove tab è il nome assegnato alla tabella 21 3. Eliminazione tabella Esempi: DROP TABLE Impiegato; // Elimina la tabella Impiegato 22 11

4. Elenco tabelle Il comando SHOW TABLES visualizza l elenco delle tabelle presenti nel DB corrente. Sintassi SHOW TABLES; mysql> USE Turni; mysql> SHOW TABLES; +-------------------+ Tables_in_turni +-------------------+ mattina pomeriggio trasporti +-------------------+ 3 rows in set (0.00 sec) 23 5. Visualizzazione schema Il comando DESCRIBE visualizza lo schema di una entità. Sintassi DESCRIBE tab; mysql> USE Turni; mysql> DESCRIBE mattina; +-----------+----------------+------+------+---------+-------+ Field Type Null Key Default Extra +-----------+----------------+------+------+---------+-------+ Cognome varchar(10) Nome varchar(10) +-----------+----------------+------+------+---------+-------+ 2 rows in set (0.00 sec) mysql> _ 24 12

Esempi ATTIVITA : Scrivere in SQL il comando per la creazione della tabella seguente (titolo 20 caratteri, protagonista 20 caratteri) VIDEOTECA id_film titolo 10100 L armata brancaleone giacenza 12 anno 1970 protagonista 10101 2001 Odissea nello spazio 20 1975 10102 I promessi sposi 10 1985 CREATE TABLE videoteca ( id_film INTEGER NOT NULL PRIMARY KEY, titolo CHAR (20) NOT NULL, giacenza INTEGER, anno INTEGER, protagonista CHAR (20) ); 25 Esempi ATTIVITA : Scrivere in SQL il comando per: aggiungere l attributo genere (20 caratteri); eliminare l attributo protagonista. ALTER TABLE videoteca ADD COLUMN genere CHAR (20); ALTER TABLE videoteca DROP COLUMN protagonista; Ulteriori comandi sulle tabelle: SHOW TABLES; DESCRIBE tab; mostra le tabelle presenti nel DB mostra lo schema completo della tabella tab 26 13

La clausola CHECK Una particolare clausola consente di imporre vincoli sui dati per garantirne la validità. Tipo usato per stringhe Esempio: CREATE TABLE promosso ( nome CHAR(15), voto INT(2) CHECK (voto>=18 AND voto<=30) ); Valore usato per dimensionare i valori interi Clausola che determina il campo di validità dell attributo. 27 Argomenti 2. Modifica tabella 3. Eliminazione tabella 4. Elenco tabelle 5. Visualizzazione schema Esempi La clausola CHECK 28 14

Altre fonti di informazione Atzeni, Ceri, Paraboschi, Torlone, Basi di dati - McGraw-Hill, 1996-2002 P.Camagni,M.Della Puppa,R. Nikilassy, SQL ed. HOEPLI Education A. Lorenzi-D.Rossi Le basi di dati e il linguaggio SQL ed. ATLAS 29 15