SQL1 Modifica dei dati inserimento cancellazione modifica.

Slides:



Advertisements
Presentazioni simili
TIPI STANDARD DI SQL BOOLEAN Valori: vero, falso CHAR(n)
Advertisements

Architettura del sistema
Sicurezza e concorrenza nelle basi di dati
Stored Procedure Function Trigger
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
SQL (Standard query language) Istruzioni per la creazione di una tabella: Create table ( tipo, (, [vincoli]) Primary key ( ) CHIVE PRIMARIA Foreign key(
1 Comandi per la manipolazione dei dati. 2 Tipi di comandi INSERT UPDATE DELETE COMANDI COMANDI 2.
Le Strutture Dati Su Disco Parte Prima
1 Basi di dati attive. 2 Sommario Preliminari Approcci architetturali Linguaggi per la specifica di regole – Eventi – Condizioni – Azioni – Ulteriori.
Principale limitazione di AR e SQL-92: interrogazioni ricorsive IMPIEGATO NOMENOMECAPO RossiVerdi NeriVerdi DeSio TucciDeSio DeLucaDeSio Lazio selezionare.
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
Basi di Dati prof. A. Longheu
SCUOLA INTERUNIVERSITARIA SICILIANA DI SPECIALIZZAZIONE PER LINSEGNAMENTO SECONDARIO Classe di Concorso: 42A Massimo Mancino MODULO DIDATTICO - Ambienti.
SQL Structured Query Language
19/01/2014 Viste. 19/01/2014 Viste Le Viste Logiche o Viste o View possono essere definite come delle tabelle virtuali, i cui dati sono riaggregazioni.
Elementi di PL/SQL.
1 Corso di Laurea in Biotecnologie Informatica (Basi di Dati) SQL: Data Manipulation Language (DML) Anno Accademico 2009/2010 Da: Atzeni, Ceri, Paraboschi,
SQL per la modifica di basi di dati. 29/01/2014SQL per la modifica di basi di dati2 Data Manipulation Language Introduciamo ora il Data Manipulation Language.
Esercitazione 5 MySQL Laboratorio di Progettazione Web AA 2009/2010 Chiara Renso ISTI- CNR -
Basi di dati attive Paolo Atzeni.
SQL: Lezione 7 Nataliya Rassadko
SQL: Lezione 6 Nataliya Rassadko
SQL Per la modifica di basi di dati
Esercizio zSi consideri la tabella Panorami, memorizzata in una base di dati Oracle 8i. Tale tabella contiene i seguenti campi: yId, di tipo NUMBER yNome,
SQL1 Indici elenco di valori di un attributo a ciascuno dei quali è associato lelenco delle posizioni (righe) del valore nella tabella create [unique]
SQL1 Structured Query Language Data Definition Language Data Manipulation Language Evoluzione Sequel IBM (1974) Standardizzazione ANSI/ISO: SQL-89, SQL-
Vincoli di integrità generici Con i costrutti visti sinora, non è sempre possibile definire tutti i possibili vincoli di integrità. Per questo esiste listruzione.
Manipolazione dei dati I comandi SQL che permettono di modificare il contenuto di una base di dati sono insertdeleteupdate insert ha la seguente sintassi:
SELECT STATEMENT Clausola WHERE permette di limitare il numero di record da estrarre SELECT */ [DISTINCT] colonna/ espressione [alias],… FROM table [WHERE.
Viste. Cosè una vista? è possibile creare un subset logico di dati o una combinazione di dati una vista è una tabella logica basata su una tabella o su.
Creazione e manipolazione tabelle. TABELLE una tabella può essere creata in qualsiasi momento,anche quando gli utenti stanno usando il database la struttura.
Basi di dati Claudia Raibulet
SQL: Structured Query Language
Corso di INFORMATICA anno scolastico 2009/10 Linguaggio SQL IDENTIFICATORI di tabelle e attributi: stringhe di lunghezza max 18 caratteri, composte da.
Creazione di un database MySQL
Basi di Dati e Sistemi Informativi
sql: esempi di linguaggio sql nell'implementazione mysql
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
BIOINFO3 - Lezione 081 create table est( gi int unsigned primary key auto_increment, acc char(8)not null, nome varchar(20), descrizione varchar(255),
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
CORSI DI FORMAZIONE - Basi di Dati: MySql - Parte 4 - Dicembre Utenti e privilegi del database - 1 Root è lutente amministratore predefinito, ma.
SQL (IV) Data Definition Language/ Data Manipulation Language.
Pagine ASP parte 3 I data base Stefano Schacherl.
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità D3 Sicurezza e concorrenza nelle basi di dati.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
SQL, esempi 30/10/2014Basi di dati SQL1. 30/10/2014Basi di dati SQL2 CREATE TABLE, esempi CREATE TABLE corsi( codice numeric NOT NULL PRIMARY KEY, titolo.
Interazione col DB Per interagire con una base dati da una pagina PHP occorre procedere come segue: Eseguire la connessione al DBMS MySQL in ascolto;
1 Basi di Dati S tructured Q uery L anguage Appunti Matteo Longhi.
Il linguaggio SQL.
SQL (III) Data Definition Language/ Data Manipulation Language.
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
1 Vincoli Ci sono i vincoli predefiniti ( unique, primary key, not null, foreign key … ) In SQL2 si ha anche check check Condizione Serve per dare condizioni.
Nozione ed uso Operazioni eseguite automaticamente ogni volta che avviene un certo evento Uso: –Gestione di vincoli di integrità: Per fallimento Per modifica.
PLSQL 1.1 LA REALIZZAZIONE DI APPLICAZIONI Quattro parti: Gestione dati Business rules Logica applicativa Interfaccia utente Molte possibili architetture.
Elementi di PL/SQL. Pl/Sql Il PL/SQL (Procedural Language/Structured Query Language) è un linguaggio di programmazione procedurale di Oracle che costituisce.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Transazioni in MySQL 4 Transazioni in MySQL 4
Vincoli interrelazionali
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
Basi di Dati attive. Sistemi Informativi DEE - Politecnico di Bari E. TinelliBasi di dati attive2 Definizione Una base di dati si dice attiva quando dispone.
Elementi di statistica con R e i database LEZIONE 2 Rocco De Marco rocco.demarco(a)an.ismar.cnr.it Ancona, 12 Aprile 2012.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
SQLite. Introduzione a SQLite Oltre alla possibilità di memorizzare informazioni persistenti attraverso Preferences e files, Android mette a disposizione.
Esercizi SQL Group by. CREATE TABLE dipendente (codDip CHAR(8) NOT NULL UNIQUE PRIMARY KEY, cognome CHAR(60) NOT NULL, nome CHAR(60) NOT NULL, stipendio.
* R AMAN K AZHAMIAKIN O SCAR Z G IOVANNI D E ITT M. B UONARROTI, T RENTO A NDROID D EVELOPMENT P ERSISTENZA.
SQL per la modifica di basi di dati
Transcript della presentazione:

SQL1 Modifica dei dati inserimento cancellazione modifica

SQL2 Insert insert into [(, …, )] values (, …, ); deve essere specificato un valore per ogni colonna della lista se una colonna non è specificata, viene inserito il valore null se non viene fornita la lista delle colonne, deve essere specificato un valore per ogni colonna della tabella così come appare nella istruzione create

SQL3 Esempio insert into PROGETTO (PNO, PNOME, COMPONENTI, BUDGET, PSTART, PMGR) values (313, 'BD', 3, , to_date(' ','dd-mm-yyyy'), 7411); insert into PROGETTO values (314, 'SI', 7411, 5, , to_date(' ','dd-mm-yyyy'), null);

SQL4 Insert (2) insert into [(, …, )] ; create table VECCHI_IMP ( INO number(4) not null, ASS_DATA date); insert into VECCHI_IMP select INO, DATA_ASS from IMPIEGATI where DATA_ASS<'31-DIC-60';

SQL5 Updates updates set =, …, = [where ]; espressione può essere una costante, una espressione funzionale, una query SQL

SQL6 Esempio update IMPIEGATI set LAVORO='DIRIGENTE', DIPNO=20, STIPENDIO=STIPENDIO+1000 where INOME='FORD'; (Il sig. Ford ha avuto un avanzamento di carriera)

SQL7 Esempio update IMPIEGATI set STIPENDIO=STIPENDIO*1.15 where DIPNO in (10,30); (Gli impiegati dei dipartimenti 10 e 30 hanno avuto un aumento dello stipendio del 15%)

SQL8 Esempio update IMPIEGATI set STIPENDIO = (select min(STIPENDIO) from IMPIEGATI where LAVORO='DIRIGENTE') where LAVORO='VENDITORE' and DIPNO=30; (I venditori del dipartimento 30 ricevono lo stesso stipendio del manager che ha lo stipendio più basso)

SQL9 Delete delete from [where ]; senza la clausola where, vengono cancellate tutte le righe

SQL10 Esempio delete from PROGETTO where PEND < sysdate; (Cancella tutti i progetti terminati alla data odierna)

SQL11 Commit e Rollback commit: rende permanenti le modifiche fatte durante l'ultima transazione quit, create, drop realizzano un commit implicito rollback: annulla le modifiche fatte durante l'ultima transazione

SQL12 Query su più tabelle (JOIN) select [distinct] [.], …, [.] from [ ], …, [ ] [where ];

SQL13 Alias Se colonne di tabelle diverse hanno lo stesso nome, è necessario usare la notazione. per eliminare ambiguità. Al posto di si può usare l'alias

SQL14 Esempi select INOME, I.DIPNO, DIPNOME from IMPIEGATI I, DIPARTIMENTO D where I.DIPNO=D.DIPNO and LAVORO='VENDITORE'; select INOME, DIPNOME, PNOME from IMPIEGATI I, DIPARTIMENTO D, PROGETTO P where I.INO=P.PMGR and D.DIPNO=I.DIPNO; select I1.INOME, I2.INOME from IMPIEGATI I1, IMPIEGATI I2 where I1.CAPO=I2.INO;

SQL15 Query annidate subquery query annidata La condizione in una clausola where può contenere anche una query: select … where … (select …)

SQL16 Interpretazione delle query annidate 1. viene eseguita la subquery 2. il risultato viene salvato in una tabella temporanea 3. il controllo della query esterna viene fatto sulle righe della tabella temporanea

SQL17 Regole per le query annidate più condizioni possono essere combinate con gli operatori and, or si può arrivare fino a 16 livelli di annidamento! una query esterna non può far riferimento a tabelle della query più interna (viceversa è possibile) se non specificato esplicitamente, i nomi di colonna fanno riferimento alle tabelle più vicine

SQL18 Subquery [not] in ( ) [any | all] ( ) [not] exists ( )

SQL19 Esempio select INOME, STIPENDIO from IMPIEGATI where INO in (select PMGR from PROGETTO where PSTART < 31-DIC-90) and DIPNO=20; Seleziona gli impiegati del dipartimento 20 (ed il loro stipendio) che partecipano a progetti partiti prima del 31/12/90

SQL20 Esempio select * from IMPIEGATI where DIPNO in (select DIPNO from DIPARTIMENTI where CITTA =BOSTON); Seleziona gli impiegati dei dipartimenti di Boston Poiché la subquery ha come risposta un solo valore, si poteva usare = invece di in.

SQL21 Subquery correlata Subquery che fa riferimento a colonne di tabelle utilizzate nella query principale Non si può usare lintepretazione vista per le query annidate!!

SQL22 Interpretazione delle subquery correlate 1. Per ogni riga della query esterna, 1. viene valutata la subquery 2. viene valutato il predicato della query esterna

SQL23 Esempio select * from IMPIEGATI I1 where DIPNO in (select DIPNO from IMPIEGATI [I2] where [I2.]INO=I1.CAPO); Seleziona i dipendenti che lavorano nello stesso dipartimento del loro capo

SQL24 any e all [any | all] ( ) confrontano con ogni valore selezionato da

SQL25 any la condizione è vera se esiste almeno una riga selezionata dalla subquery per cui il confronto ha successo se la subquery restiuisce un insieme vuoto, la condizione fallisce

SQL26 Esempio select * from IMPIEGATI where STIPENDIO >= any (select STIPENDIO from IMPIEGATI where DIPNO = 30) and DIPNO = 10 Seleziona gli impiegati del dipartimento 10 che hanno uno stipendio maggiore o uguale di almeno un impiegato del dipartimento 30

SQL27 all la condizione è vera se il confronto ha successo per tutte le righe selezionate dalla subquery se la subquery restiuisce un insieme vuoto, la condizione ha successo

SQL28 Esempio select * from IMPIEGATI where STIPENDIO > all (select STIPENDIO from IMPIEGATI where DIPNO = 30) and DIPNO <> 30 Seleziona gli impiegati che non lavorano nel dipartimento 30 e che hanno uno stipendio maggiore di tutti gli impiegati del dipartimento 30

SQL29 Equivalenze inè equivalente a = any not in è equivalente a <> all

SQL30 Exists [not] exists ( ) restituisce valore vero solo se linterrogazione fornisce un risultato non vuoto [vuoto]. ha senso solo per query correlate

SQL31 Esempio select * from DIPARTIMENTI where not exists (select * from IMPIEGATI where DIPNO=DIPARTIMENTI.DIPNO); Restituisce i dipartimenti che non hanno impiegati

SQL32 Operazioni su risultati di query [union [all] | intersect | minus ]

SQL33 union Restituisce l'unione delle tuple risultato delle due query. Se non viene specificata la clausola all, i duplicati vengono eliminati select INO from IMPIEGATI union select CAPO from IMPIEGATI;

SQL34 intersect Restituisce l'intersezione delle tuple risultato delle due query. select INO from IMPIEGATI intersect select CAPO from IMPIEGATI;

SQL35 minus Restituisce le tuple che sono risultato della prima query ma che non sono risultato della seconda select INO from IMPIEGATI minus select CAPO from IMPIEGATI;

SQL36 Query con raggruppamento Consentono di applicare le funzioni di gruppo non a tutte le righe ma a gruppi di righe che soddisfano certe proprietà select from where group by [having ];

SQL37 Interpretazione 1. Le righe risultato della select che hanno gli stessi valori di vengono raggruppate. 2. Le funzioni di gruppo specificate nella select vengono applicate a ciascun gruppo separatamente. N.B. solo le colonne di possono essere listate nella clausola select senza funzioni di gruppo

SQL38 Esempi select DIPNO, min(STIPENDIO), max(STIPENDIO) from IMPIEGATI group by DIPNO; select DIPNO, min(STIPENDIO), max(STIPENDIO) from IMPIEGATI where LAVORO='VENDITORE' group by DIPNO;

SQL39 having Dopo che i gruppi sono stati formati, se ne possono eliminare alcuni in base a certe condizioni select DIPNO, min(STIPENDIO), max(STIPENDIO) from IMPIEGATI group by DIPNO having count(*)>3;

SQL40 Accesso a tabelle di altri utenti Per accedere a tabelle di altri utenti (sempre che se ne abbiano i privilegi) bisogna far precedere il nome di tabella dal nome dell'utente.

SQL41 Sinonimi Si possono creare sinonimi sia per le proprie tabelle che per quelle di altri utenti: create synonym for [.] ;

SQL42 Commenti alle definizioni Si possono aggiungere commenti esplicativi alle definizioni di tabelle e alle colonne comment on table is ' '; comment on column. is ' '; I commenti sono inseriti nelle viste del dizionario dei dati USER_TAB_COMMENTD e USER_COL_COMMENTS

SQL43 Modifiche di definizioni E' possibile modificare la struttura di una tabella aggiungendo colonne aggiungendo vincoli di tabella modificando definizioni di colonne

SQL44 alter table alter table add ( ); alter table add ( ) alter table modify ( );

SQL45 Cancellazione di una tabella drop table [cascade constraints]; Cancella le righe e la definizione di una tabella

SQL46 Viste Una vista è una tabella virtuale costruita selezionando righe e colonne di altre tabelle. Una vista può essere usata come le altre tabelle per la ricerca e per la modifica di dati. Una vista viene rivalutata ogni volta che vi si accede.

SQL47 Viste (2) create view [( )] as [with check option [constraint ]]; se ( ) non viene specificato, le colonne della vista avranno lo stesso nome delle colonne selezionate il vincolo with check option consente di rifiutare le modifiche e gli inserimenti di righe nella vista che non rispondono alla definizione, ovvero che non verrebbo selezionati dalla query

SQL48 Esempi create view DIP20 as select INOME, LAVORO, STIPENDIO*12 STIP_ANNUO from IMPIEGATI where DIPNO=20; create view DIP20 (INOME, LAVORO, STIP_ANNUO) as select INOME, LAVORO, STIPENDIO*12 from IMPIEGATI where DIPNO=20;

SQL49 Cancellazione di viste delete ;

SQL50 Vincoli di integrità check constraint limita i valori possibili per un attributo foreign key constraint specifica interdipendenze tra relazioni

SQL51 check constraint specifica il rango dei possibili valori di uno o più attributi o certe condizioni che tali valori devono soddisfare [constraint ] check ( ) può essere un vincolo di colonna (se condizione agisce su una sola colonna) o di tabella (se condizione agisce su più colonne)

SQL52 Esempio create table IMPIEGATI ( … INOME varchar2(30) constraint CK_NOME check(INOME=upper(INOME)), STIPENDIO number(5,2) check (STIPENDIO >= 500), DIPNO number(3) check (DIPNO between 10 and 100) );

SQL53 Esempio create table PROGETTO ( … COMPONENTI number(5) constraint CK_COMPONENTI check(COMPONENTI>2), … constraint CK_DATE check(PEND > PSTART) );

SQL54 foreign key constraint crea un legame tra i valori di un attributo della tabella corrente (interna) ed i valori di un attributo chiave primaria di un'altra tabella (esterna), in modo tale che ogni valore dell'attributo della tabella interna, se non nullo, sia presente tra i valori dell'attributo chiave primaria della tabella esterna può essere un vincolo di colonna o un vincolo di tabella

SQL55 foreign key [constraint ] [foreign key ( )] references [( )] [on delete cascade]

SQL56 la clausola foreign key deve essere usata se si tratta di un vincolo di tabella, ovvero se coinvolge più colonne e deve indicare le colonne della tabella interna coinvolte references indica quali colonne della tabella esterna sono coinvolte; in assenza di specifica viene presa la colonna che costituisce la chiave primaria della tabella esterna on delete cascade specifica che se viene cancellato un elemento dalla tabella esterna, tutte le righe della tabella interna che hanno il valore dell'attributo cancellato, vengono a loro volta cancellate

SQL57 Esempio create table IMPIEGATI ( INO number(4) primary key, … DIPNO number(3) references DIPARTIMENTO(DIPNO) );

SQL58 Esempio create table PROGETTO ( PNO number(3) primary key, PMGR number(4) not null references IMPIEGATI, … );

SQL59 Esempio create table IMPIEGATI ( INO number(4) primary key, … CAPO number(4) not null references IMPIEGATI, … );