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

Slides:



Advertisements
Presentazioni simili
Interrogazioni Semplici Le operazioni di interrogazione vengono specificate per mezzo dellistruzione select select ListaAttributi from ListaTabelle [where.
Advertisements

Structured Query Language
DBMS (DataBase Management System)
SQL applicato a SQL Server
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
DML – Data Manipulation Language
Esercitazioni del Corso di Sistemi Informativi Marina Mongiello
1 SQL come linguaggio di definizione di dati Eugenio Di Sciascio.
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.
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.
Corso di Informatica (Basi di Dati)
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.
Laboratorio di Basi di Dati Introduzione ad Access 2ª Parte.
Atzeni, Ceri, Paraboschi, Torlone Basi di dati McGraw-Hill, 1999
Basi di dati Università Degli Studi Parthenope di Napoli
SQL: Lezione 7 Nataliya Rassadko
SQL Per la modifica di basi di dati
SQL Per la definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Duplicati Lalgebra relazionale non ammette duplicati, SQL li ammette. Quindi select Città from Persona where Cognome= Rossi estrae una lista di città in.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
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.
SQL basato su ANSI (American National Standards Institute) – standard SQL SQL – Structured Query Language è un linguaggio dichiarativo e permette di comunicare.
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.
Corso di Basi di Dati Il Linguaggio SQL Home page del corso:
sql: esempi di linguaggio sql nell'implementazione mysql
1 Il Linguaggio SQL Il Linguaggio SQL Prof. Lorenzo Vita, Ing. Luigi Testa.
Basi di Dati e Sistemi Informativi
Basi di Dati e Sistemi Informativi Il Linguaggio SQL Home page del corso:
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
Sistemi Informativi Insieme di “strutture” in grado di acquisire, elaborare, trasmettere ed archiviare informazioni in genere ad uso di un’organizzazione.
SQL Interrogazioni. 2 Interrogazioni in SQL Non esiste un SQL standard (vari dialetti) Formulazione di interrogazioni (query) è parte del Data Manipulation.
Microsoft Access (parte 5) Introduzione alle basi di dati Scienze e tecniche psicologiche dello sviluppo e dell'educazione, laurea magistrale Anno accademico:
SEFOC – SETTORE FORMAZIONE CONTINUA DEL PERSONALE CORSO MYSQL AVANZATO ROBERTO PENNOLINO – CARMELO MASSIMO PRIOLO PALERMO – 07 | 06 | 2011.
Basi di dati I Prof.ssa Rosalba Giugno Prof. Alfredo Pulvirenti SQL :Structured Query Language: SELECT (IV) SQL (Slide tratte in parte da da Atzeni, Ceri,
SQL (IV) Data Definition Language/ Data Manipulation Language.
Pagine ASP parte 3 I data base Stefano Schacherl.
Il Linguaggio SQL. Le interrogazioni in SQL (continua…) La parte di SQL dedicata alla formulazione di interrogazioni fa parte del DML. SQL esprime le.
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.
Algebra relazionale (III). Esempi di Interrogazioni: 3 Trovare matricola e nome dei capi i cui impiegati guadagnano tutti più di Tutti gli impiegati?
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.
SQL (III) Data Definition Language/ Data Manipulation Language.
MySQL Database Management System
Database Elaborato da: Claudio Ciavarella & Marco Salvati.
Interrogazioni Le interrogazioni in SQL sono formulate in modo dichiarativo specificando cioè cosa si vuole ottenere e non come lo si vuole ottenere. L’interrogazione.
Vincoli Interrelazionali Per i vincoli visti l’inserimento di un valore che li viola viene semplicemente impedito. In caso di vincoli di integrità referenziale,
Vincoli interrelazionali
Raggruppamenti e target list scorretta select padre, avg(f.reddito), p.reddito from persone f join paternita on figlio = nome join persone p on padre =
Lezione 6 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
© 2015 Giorgio Porcu - Aggiornamennto 28/03/2015 UdA 1A Database Progettazione Fisica G IORGIO P ORCU
Lezione 5 - SQL. Linguaggi per DB Per interagire con le basi di dati occorre un linguaggio Linguaggio SQL (Structured Query Language), linguaggio standardizzato.
Funzionalità del DBMS relazionale l Funzioni per –definizione della base di dati –inserimento / rimozione /aggiornamento di informazioni deve soddisfare.
Approfondimenti SQL.
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.
SQL Linguaggio per l’interrogazione di una base dati.
Linguaggio SQL. Linguaggi per database La diffusione del modello relazionale ha favorito l’uso prevalente di linguaggi non procedurali: in questo modo.
Il linguaggio SQL (Structured Query Language) è il linguaggio standard per creare, manipolare e interrogare database relazionali. SQL non è case-sensitive:
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.
Transcript della presentazione:

TIPI STANDARD DI SQL BOOLEAN Valori: vero, falso CHAR(n) Stringa di lunghezza n (fissa) DATE Data nella forma MM/GG/AA TIME Ora nella forma HH:MM INTEGER Numero intero con precisione 10 SMALLINT Numero intero con precisione 5 FLOAT Numero reale con mantissa di precisione 15 Precisione indica il numero max di cifre che il n° può contenere, escluso segno e . (dec) Mantissa indica il numero di cifre che seguono il punto decimale. Le costanti stringa sono delimitate tramite l’apice ‘. Il linguaggio SQL può controllare la presenza e l’assenza di Null in una colonna. Tutti i risultati di confronto numerici o stringa con attributi di valore Null sono sconosciuti.

DBMS (DataBase Management System) Un DBMS deve essere in grado di: Permettere la creazione di una nuova base di dati, definendo la composizione degli archivi, la loro articolazione, le correlazioni logiche tra essi, gli accessi ed i vincoli al progetto, mediante il DDL (Data Definition Language); Facilitare gli utenti nell’inserimento dati, cancellazione e variazione dei dati del DB, sfruttando il DML (Data Manipulation Language); Rendere possibile l’estrazione di informazioni dal DB mediante il linguaggio di interrogazione QL (Query Language); Fornire o revocare agli utenti i permessi necessari per poter utilizzare i comandi DML e DDL, usando il linguaggio DCL (Data Control Language). DDL: CREATE TABLE, ALTER T., DROP T. DML: INSERT INTO TABLE, DELETE, UPDATE … SET DQL: SELECT, WHERE, SELECT + WHERE

CREATE TABLE CREATE TABLE Impiegati (ID smallint primary key, Cognome char(15) not null, Nome char(15) not null, Residenza char(15) default ‘*** Manca Residenza’, Stipendio float, Dipartimento char(15) references Dipartimenti(Codice)); UNIQUE (Cognome, Nome, Dipartimento); Altre costruzioni per le chiavi: Se la chiave primaria è composta da più attributi si mettono alla fine primary key (Matricola, CodCorso); La chiave esterna è dichiarata come modifica: ALTER TABLE Impiegati add constraint ffk foreign key (Dipartimento) references Dipartimenti(Codice);

ALTER TABLE Serve per aggiungere una nuova colonna ed è seguito da ADD: ALTER TABLE Impiegati ADD AnnoNascita; Serve per cancellare una colonna ed è seguito da DROP: DROP Residenza; CREATE INDEX Viene utilizzato per creare un nuovo indice su una tabella esistente, che esegue una selezione su uno o più campi specifici. CREATE UNIQUE INDEX IndiceImpiegati ON (Cognome, Nome);

INSERT, DELETE e UPDATE Per inserire i valori di una nuova riga in Impiegati: INSERT INTO Impiegati (ID,Nome,Cognome,Residenza,Stipendio, Dipartimento) VALUES (20, ‘Mario’, ‘Rossi’, ‘Caserta’, 31500, ‘Mag’); Per assegnare il dipendente con ID=20 al dipartimento Produzione: UPDATE Impiegati SET Dipartimento= ‘Prod’ WHERE ID= 20; Per aumentare del 5% lo stipendio di tutti i dipendenti del Dipart. Produzione: SET Stipendio= Stipendio*1,05 WHERE Dipartimento= ‘Prod’; Per cancellare da Impiegati i dati del dipendente con ID=20: DELETE FROM Impiegati

Query di inserimento: INSERT INTO INSERT INTO dbase.tabella_dipendenti (IDUser,FullName,Interno) values (3,’Antonio Rossi’, 1234); UPDATE … SET … WHERE Questa istruzione serve per modificare i dati in una tabella. UPDATE Persone SET Nome=‘Paperone’ WHERE Cognome= ‘De Paperoni’; IDUser FullName Indirizzo Interno 1 Mario Bianchi Via Verdi, 5 7894 2 Carlo Verdi Via Roma, 45 1546 IDUser FullName Indirizzo Interno 1 Mario Bianchi Via Verdi, 5 7894 2 Carlo Verdi Via Roma, 45 1546 3 Antonio Rossi 1234

Query di cancellazione: DELETE DELETE FROM Dbase.Persone WHERE Cognome= ‘De Paperoni’; ALIAS Sono usati per dare nomi ai campi (1) e alle tabelle (2). (1) SELECT campo AS alias_campo FROM tabella; (2) SELECT campo1, campo2 FROM Nometabella AS AliasTabella; Query di impiegati (nome, cognome impiegati, descrizione dipartimento) che hanno sede lavorativa a Roma SELECT I.Cognome, I.Nome, D.Descrizione FROM Impiegati AS I, Dipartimenti AS D WHERE I.Dipartimento = D.Codice AND D.Sede = ‘Roma’;

ISTRUZIONI SQL SELECT è usata per selezionare dei dati da una tabella. Sintassi SELECT campo1, campo2, … FROM NomeDB.NomeTabella; Esempio SELECT id, nome, telefono FROM Dbtelefoni.telefoni; Per vedere tutti i campi del database SELECT * FROM Dbtelefoni.telefoni; id nome telefono 1 Pippo 0444/543188 2 Pluto 0444/991761 3 Paperino 0444/746111 4 Topolino 0444/519922 id nome indirizzo telefono 1 Pippo Via Rossi, 4 0444/543188 2 Pluto Via Piave, 11 0444/991761 3 Paperino Via Roma, 1 0444/746111 4 Topolino Via Verdi, 6 0444/519922

ISTRUZIONI SQL Società SELECT DISTINCT è utilizzata per restituire soltanto dei valori distinti. SELECT Società FROM Ordini; Mentre SELECT DISTINCT Società FROM Ordini; Società Microsoft Oracle HP Società Microsoft Oracle HP

ORDER BY È possibile ordinare l’ elenco ottenuto con il comando ORDER BY NomeCampo. SELECT id, nome, telefono FROM Dbtelefoni.telefoni ORDER BY nome; SELECT id, nome, telefono FROM Dbtelefoni.telefoni ORDER BY nome DESC; id nome telefono 3 Paperino 0444/746111 1 Pippo 0444/543188 2 Pluto 0444/991761 4 Topolino 0444/519922 id nome telefono 4 Topolino 0444/519922 2 Pluto 0444/991761 1 Pippo 0444/543188 3 Paperino 0444/746111

WHERE SELECT id, nome, telefono FROM Dbtelefoni.telefoni WHERE nome= ‘Topolino’ ORDER BY nome DESC; SELECT id, nome, telefono FROM Dbtelefoni.telefoni WHERE nome= ‘Topolino’ AND id >= 4; id nome telefono 4 Topolino 0444/519922 id nome telefono 4 Topolino 0444/519922 9 0444/214569

WHERE id nome telefono 4 Topolino 0444/519922 45 Paperoga 0444/124589 SELECT id, nome, telefono FROM Dbtelefoni.telefoni WHERE nome= ‘Topolino’ OR id >= 4; Da notare che se il valore che viene cercato è una stringa va inserito tra apici. SELECT id, nome, telefono FROM Dbtelefoni.telefoni WHERE nome= Topolino OR id >= 4; restituirebbe un errore perché Topolino è una stringa. BETWEEN … AND Seleziona un intervallo di dati tra due valori, che possono essere numeri, testo, date. SELECT * FROM telefoni WHERE id BETWEEN 4 AND 22; oppure SELECT * FROM telefoni WHERE id NOT BETWEEN 4 AND 22; id nome telefono 4 Topolino 0444/519922 45 Paperoga 0444/124589 9 0444/214569 12 Clarabella 0444/927856

LIKE SELECT id, nome FROM Dbtelefoni.telefoni WHERE nome LIKE ‘%ert%’; SELECT id, nome FROM Dbtelefoni.telefoni WHERE nome LIKE ‘Pa%’; Cerca quello che inizia con Pa e finisce con qualche altra. SELECT id, nome FROM Dbtelefoni.telefoni WHERE nome LIKE ‘_upa’ Cerca le stringhe di 4 caratteri che finiscono con ‘upa’. Invece: SELECT id, nome FROM Dbtelefoni.telefoni WHERE nome LIKE ‘Anna_M%’ ESCAPE In questo caso l’ underscore ‘_’ non è sostituto di un carattere ma è proprio _, quindi metto ESCAPE. id nome 405 Roberto 421 Alberto 437 783 Umberto

ALTRE CONDIZIONI DEL WHERE IN Controlla se un valore appartiene ad uno dei valori della lista precisata dopo In all’interno della condizione. INTO È usato per indicare i valori dentro una selezione. IS NULL Controlla la presenza del valore null in una colonna. IS NOT NULL Per valutare la condizione opposta alla precedente. GROUP BY Permette di raggruppare un insieme di righe aventi lo stesso valore nelle colonne indicate dalla clausola.* HAVING (con il Group by): dopo l’having, è controllato il valore restituito dalle funzioni di aggregazione. TOP Restituisce le prime n righe di una tabella. AND È applicato prima di OR. OR NOT È applicato prima di AND. *: tutti gli attributi che compaiono nella lista accanto al Select devono essere inclusi nel Group by oppure devono essere argomenti di una funzione di aggregazione.

FUNZIONI DI AGGREGAZIONE SELECT funzione(campo) FROM NomeTabella; Funzione Descrizione AVG (coloumn) Restituisce il valore medio di una colonna COUNT (coloumn) Restituisce il numero di righe (escludendo quelle con valore null) di una colonna COUNT (*) Restituisce il numero di righe selezionate FIRST (coloumn) Restituisce il valore del primo record di un campo specificato LAST (coloumn) Restituisce il valore dell’ultimo record di un campo specificato MAX [or MIN](coloumn) Restituisce il valore massimo [o minimo] in una colonna SUM (coloumn) Restituisce la somma dei valori di una colonna

QUERY ANNIDATE Si chiamano così perché il comando Select offre la possibilità di inserire un comando Select all’interno della struttura di un altro comando Select. Query dei clienti (nome, cognome, reddito) che hanno il reddito massimo SELECT nome, cognome, reddito FROM Clienti WHERE (reddito= SELECT MAX (reddito) FROM Clienti)); Query dei clienti (nome, cognome, reddito) che abitano in città che hanno almeno 2 clienti SELECT nome, cognome, reddito FROM Clienti WHERE città IN (SELECT città GROUP BY città HAVING COUNT (*) >= 2);

QUERY ANNIDATE ANY è utilizzato in una clausola Where in espressioni : x > ANY Elenco. Query dei dipendenti (nome, cognome) del Dipartimento Amministrazione che hanno lo stipendio superiore a quello di almeno un impiegato del MKT SELECT nome, cognome FROM Impiegati WHERE Dipartimento= ‘Amm’ AND Stipendio > ANY (SELECT stipendio WHERE Dipartimento= ‘Mkt’ ); ALL è usato in una clausola Where in espressioni : x <= ALL Elenco. Query dei dipendenti (nome, cognome) dell’ Amministrazione che hanno lo stipendio superiore a quello di tutti i dipendenti del MKT SELECT nome, cognome FROM Impiegati Stipendio > ALL (SELECT stipendio

QUERY ANNIDATE Valgono le seguenti equivalenze: Attributo IN (Select…) equivale a: Attributo = ANY (Select…) Attributo NOT IN (Select…) equivale a: Attributo <> ALL (Select…) EXISTS è utilizzato in una clausola Where in espressioni : EXISTS Elenco. Query dei dipendenti (nome, cognome, scostamento dalla media degli stipendi) del MKT, solo se esistono dipendenti che lavorano in quel dipart. SELECT nome, cognome, stipendio – (SELECT AVG(stipendio) FROM Impiegati WHERE Dipartimento= ‘Mkt’) FROM Impiegati WHERE EXISTS (SELECT * WHERE Dipartimento= ‘Mkt’ );