SQL applicato a SQL Server

Slides:



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

Introduzione al linguaggio C++
Accesso ai dati su file Lab. Sistemi Informativi Economico-Aziendali Accesso ai dati su file Localizzazione dei dati File system locali e distribuiti Protocolli.
Structured Query Language
DBMS (DataBase Management System)
© 2007 SEI-Società Editrice Internazionale, Apogeo Unità C1 Il linguaggio SQL.
Structured Query Language (SQL) Presentazione 13.1 Informatica Generale (Prof. Luca A. Ludovico)
EP 10/11 - PBLezione 2-21 Elementi di Programmazione Tipi di Dati Conversioni Istruzioni di controllo del flusso.
Sistemi per il recupero delle informazioni
1 SQL come linguaggio di definizione di dati Eugenio Di Sciascio.
SQL Structured Query Language
Anno accademico Gli operatori e le espressioni in C.
Il linguaggio C Gli operatori e le espressioni C Language
1 IT FOR BUSINESS AND FINANCE ACCESS INTRODUCTION.
Corso di Informatica (Basi di Dati)
1 Corso di Laurea in Biotecnologie Informatica (Programmazione) Variabili e tipi primitivi Anno Accademico 2009/2010.
Corso di Laurea in Biotecnologie Informatica (Programmazione)
1 Corso di Informatica (Programmazione) Lezione 10 (12 novembre 2008) Programmazione in Java: espressioni booleane e controllo del flusso (selezione)
Corso di Laurea in Biotecnologie Informatica (Programmazione)
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 definizione di basi di dati SQL per definire ed amministrare Ogni utente puo definire una base di dati di cui diventa lamministratore potendo.
Istruzioni di selezione in Java Programmazione Corso di laurea in Informatica.
Dichiarazioni e tipi predefiniti nel linguaggio C
Trovare le matricole dei capi degli impiegati che guadagnano più di 40 milioni PROJCapo (SELStipendio>40 (Supervisione JOIN Impiegato=Matricola Impiegati))
Equivalenza di espressioni
Il Linguaggio C.
SQL SQL (pronunciato anche come l’inglese sequel) è l’acronimo di Structured Query Language (linguaggio di interrogazione strutturato) E’ un linguaggio.
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
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
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:
SQL.
BIOINFO3 - Lezione 31 TIPI DEI CAMPI Abbiamo concluso la lezione precedente scoprendo che in un database relazionale SQL ogni campo di una tabella può
BIOINFO3 - Lezione 51 INSERIMENTO DEI DATI Visto come si creano le tabelle (sinora tristemente vuote), cominciamo ad occuparci di come riempirle con dei.
BIOINFO3 - Lezione 41 ALTRO ESEMPIO ANCORA Progettare il comando di creazione di una tabella di pubblicazioni scientifiche. Come chiave usare un numero.
Tipi di dati semplici in C (1/3)
LINGUAGGIO S Q L breve presentazione curata da Aldo Pappalepore
Modulo 5 Uso delle Basi di dati Paola Pupilli 2.
Politecnico di Milano Corso di Sistemi Informatici A.A. 2004/2005 Access™ Le Tabelle Luca De Ponti Lucidi realizzati.
#sqlsatPordenone #sqlsat367 February 28, 2015 Ricerche full-text Emiliano Pinto
MODULO 5: Database ITCG “V. De Franchis” - PON FSE Modulo G/1 l’informatica” Lezione 2.
IV D Mercurio DB Lezione 2
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.
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
Politecnico di Milano Corso di Sistemi Informatici A.A. 2004/2005 Access™ Le Tabelle Luca De Ponti Lucidi realizzati.
© 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.
Cloud informatica V anno. Introduzione a PHP Lo scripting PHP PHP è un linguaggio di scripting lato server. Le caratteristiche di un linguaggio di scripting.
Basi di Dati e Sistemi Informativi Esercitazione: Il Linguaggio SQL (DDL+DML) Home page del corso:
Lezione 2 : Basi del linguaggio Variabili. Come visto nella lezione 1 le classi registrano il proprio stato nelle variabili  int cadenza = 0;  int velocita.
Linguaggio SQL prima parte Linguaggio SQL prima parte A. Lorenzi, E. Cavalli INFORMATICA PER SISTEMI INFORMATIVI AZIENDALI Copyright © Istituto Italiano.
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:
SQL Structured Query Language. Il linguaggio SQL è un linguaggio di interrogazione per database progettato per o leggere, o modificare o gestire dati.
Transcript della presentazione:

SQL applicato a SQL Server Il linguaggio SQL SQL applicato a SQL Server Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 I Tipi di Dato bigint  (8 bytes) Contiene valori numerici interi da -4294967296 a 4294967294. binary(n)  (lunghezza fissa) Contiene dati binari (1 byte) fino ad un massimo di 8000 dati. bit  (1 bit) Rappresenta i flag (vero/falso o true/false o si/no). Non possono avere valori nulli e non possono avere indici. char(n)  (lunghezza fissa) Contiene caratteri ANSI (1 byte) fino ad un massimo di 8000 caratteri. datetime  (8 bytes) Contiene date tra il 1/gen/1753 e il 31/dic/9999 (precisione al trecentesimo di secondo). decimal(p, s)  (da 2 bytes a 17 bytes) Contiene valori tra 10^38 - 1 e - 10^38 -1. Con p cifre di precisione (massimo 28), e s cifre decimali dopo la virgola (scala). float  (8 bytes) Contiene numeri reali positivi da 2.23E-308 a 1.79E308 e negativi da -2.23E-308 a -1.79E308 (massimo 15 cifre di precisione). image  Contiene fino a 2147483647 bytes di dati binari (è solitamente usato per le immagini). int  (4 bytes) Contiene valori numerici interi da -2147483648 a 2147483647. money  (8 bytes) Contiene valori monetari da -922337203685477.5808 a 922337203685477.5807 nchar(n)  (lunghezza fissa) Contiene caratteri UNICODE (2 bytes) fino ad un massimo di 4000 caratteri. ntext  (lunghezza variabile) Contiene caratteri UNICODE fino ad un massimo di 1073741823 caratteri. numeric(p, s)  E’ equivalente al tipo ‘decimal(p, s)’ nvarchar(n)  (lunghezza variabile) Contiene caratteri UNICODE (2 bytes) fino ad un massimo di 4000 caratteri. real  (4 bytes) Contiene numeri reali positivi da 1.18E-38 a 3.40E38 e negativi da -1.18E-38 a -3.40E38 (massimo 7 cifre di precisione). smalldatetime (4 bytes) Contiene date tra il 1/gen/1753 e il 31/dic/9999 (precisione al minuto). smallint  (2 bytes) Contiene valori numerici interi da -32768 a 32767. smallmoney  (4 bytes) Contiene valori monetari da - 214748.3648 a 214748.3647 sql_variant  Tipo che può contenere tipi di dati diversi (int, binary, char). text  (lunghezza variabile) Contiene caratteri ANSI (1 byte) fino ad un massimo di 2147483647 caratteri. timestamp  (8 bytes) È un contatore incrementale per colonna assegnato automaticamente da SQL Server 7. tinyint  (1 byte) Contiene valori numerici interi da 0 a 255. uniqueidentifier  (16 bytes) E' un identificatore unico a livello globale E' generato automaticamente da SQL Server. varbinary(n)  (lunghezza variabile) Contiene dati binari (1 byte) fino ad un massimo di 8000 dati. varchar(n)  (lunghezza variabile) Contiene caratteri ANSI (1 byte) fino ad un massimo di 8000 caratteri. xml  è equivalente al tipo ‘ntext’. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Gli Operatori +  Addizione -  Sottrazione *  Prodotto / Divisione %  Modulo <  Minore >  Maggiore <=  Minore o Uguale >=  Maggiore o Uguale =  Uguaglianza <>  Disuguaglianza AND  E logico OR  O logico NOT  Negazione Alice Pavarani - 5B informatica - dicembre 2007

Data Definition Language DDL Data Definition Language Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Creare una Tabella CREATE TABLE <NomeTabella> ( <NomeCampo1> <Tipo1> [NOT NULL], <NomeCampo2> <Tipo2> [NOT NULL], … <NomeCampoN> <TipoN> [NOT NULL], ); Alice Pavarani - 5B informatica - dicembre 2007

Modificare una Tabella Aggiungere un nuovo campo ad una tabella: ALTER TABLE <NomeTabella> ADD <NomeCampo1> <Tipo1> [NOT NULL]; Modificare il tipo di un campo: ALTER COLUMN <NomeCampo> <NuovoTipo>; Eliminare un campo DROP COLUMN <NomeCampo1>; Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Eliminare una Tabella DROP TABLE <NomeTabella>; NB: Non è possibile eliminare una tabella a cui fa riferimento un vincolo FOREIGN KEY. È prima necessario eliminare il vincolo FOREIGN KEY o la tabella di riferimento. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Creare nuovi Domini Definire un nuovo tipo di dato: CREATE TYPE <NomeTipo> FROM <TipoBase> <Condizione>; <NomeTipo>  Nome del tipo di dato da creare. <TipoBase>  Tipo già esistente dal quale deriva il nuovo tipo. <Condizione>  Condizione che i dati del nuovo tipo devono soddisfare. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Vincoli Interni NOT NULL  Impedisce di inserire un dato nullo nel campo in cui viene specificato. <NomeCampo> <Tipo> NOT NULL; PRIMARY KEY  Imposta un campo (o più campi) come chiave primaria della tabella. PRIMARY KEY (<NomeCampo>); CHECK  Indica un controllo su un’espressione tra i campi della tabella. CHECK (<NomeCampo> VALUE IN (<valori>)); CHECK (<NomeCampo> VALUE BETWEEN (<valore1> AND <valore2>)); Alice Pavarani - 5B informatica - dicembre 2007

Vincoli di Integrità Referenziale FOREIGN KEY  Imposta una chiave esterna in una tabella, con campi che fanno riferimento ad un’altra tabella del DataBase. FOREIGN KEY (<ElencoCampi>) REFERENCES <NomeTabella> (<ElencoCampiTabella>); <ElencoCampi>  Elenco dei campi della tabella corrente. <NomeTabella>  Tabella in cui sono presenti i campi esterni. <ElencoCampiEsterni>  Elenco dei campi della tabella di riferimento. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 QL Query Language Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 SELECT (PROJECT) Per estrarre informazioni dal DB: SELECT [DISTINCT] <Campo1> [AS “Alias1”], <Campo2> [AS “Alias2”], … <CampoN> [AS “AliasN”] FROM <Tabella1>, <Tabella2>, … <TabellaN> DISTINCT  Questa opzione permette di ottenere solo tuple differenti tra loro. <Campo>  Elenco dei campi da estrarre. <Tabella>  Tabella in cui sono contenuti i campi da estrarre. “Alias”  Etichetta da assegnare al campo nella selezione (facoltativa). *  Sostituendolo ai nomi dei campi implica la selezione di tutti i campi della tabella specificata. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 SELECT (RESTRICT) Per estrarre informazioni dal DB, limitate da una condizione: SELECT [DISTINCT] <Campo1>, <Campo2>, … <CampoN> FROM <Tabella1>, <Tabella2>, … <TabellaN> [WHERE <Condizione>] <Condizione>  Indica la condizione che devono soddisfare le tuple estratte. All’interno di questa espressione limitativa è possibile specificare: nomi dei campi di una qualsiasi delle tabelle indicate; operatori di confronto, come =, <>, >, >=, <=, <; operatori logici come NOT, AND, OR; l’operatore LIKE; la parola chiave IS NULL o IS NOT NULL. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 SELECT (JOIN) Per concatenare due tabelle in base ad un campo comune (JOIN) può essere utilizzata l’istruzione SELECT-WHERE, con una particolare condizione: SELECT [DISTINCT] <Campo1>, <Campo2>, … <CampoN> FROM <Tabella1>, <Tabella2>, … <TabellaN> WHERE <Tabella1>.<Campo1> = <Tabella2>.<Campo2> Alice Pavarani - 5B informatica - dicembre 2007

Funzioni per i Calcoli sui Dati COUNT([DISTINCT] <Campo>)  Conta il numero di elementi del campo indicato. MIN([DISTINCT] <Campo>)  Restituisce il valore minimo del campo indicato. MAX([DISTINCT] <Campo>)  Restituisce il valore massimo del campo indicato. SUM([DISTINCT] <Campo>)  Calcola e restituisce la somma dei valori presenti nel campo indicato. AVG([DISTINCT] <Campo>)  Calcola e restituisce la media aritmetica dei valori presenti nel campo indicato. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Ordinamento Per raggruppare i campi selezionati in base al valore di uno o più campi: SELECT [DISTINCT] <Campo1>, <Campo2>, … <CampoN> FROM <Tabella1>, <Tabella2>, … <TabellaN> [WHERE <Condizione>] [ORDER BY <CampoOrdine1> [ASC|DESC], <CampoOrdine2> [ASC|DESC], … <CampoOrdineN> [ASC|DESC]]; <CampoOrdine>  Campo(i) in base al(ai) quale(i) ordinare il risultato ottenuto dalla SELECT. ASC|DESC  Indicano l’ordinamento crescente [ASC] o decrescente [DESC] dei campi. Di default viene impostato il modificatore ASC. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Raggruppamento Per ordinare i campi selezionati: SELECT [DISTINCT] <Campo1>, <Campo2>, … <CampoN> FROM <Tabella1>, <Tabella2>, … <TabellaN> [WHERE <Condizione>] [GROUP BY <CampoGruppo1>, < CampoGruppo2>, … <CampoGruppoN> [HAVING <CondizioneGruppo>]]; <CampoGruppo>  Campo(i) in base al(ai) quale(i) raggruppare tutti i record ottenuti dalla SELECT. <CondizioneGruppo>  Specifica la condizione secondo la quale verranno raggruppati i record. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Unione Per accodare i campi due tabelle compatibili (con campi omogenei): ( SELECT <Campo1> FROM <Tabella1> UNION SELECT <Campo2> FROM <Tabella2> ); Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Differenza Per estrarre da due tabelle compatibili (con campi omogenei) solo i record presenti nella prima ma non nella seconda: ( SELECT <Campo1> FROM <Tabella1> EXCEPT SELECT <Campo2> FROM <Tabella2> ); Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Intersezione Per estrarre da due tabelle compatibili (con campi omogenei) i record che entrambe le tabelle hanno in comune: ( SELECT <Campo1> FROM <Tabella1> INTERSECT SELECT <Campo2> FROM <Tabella2> ); Alice Pavarani - 5B informatica - dicembre 2007

Interrogazioni Nidificate Per facilitare l’estrazione di dati da un DataBase, altrimenti molto complessa: SELECT <Campo1> FROM <Tabella1> WHERE <Campo1> = ( <Campo2> FROM <Tabella2> WHERE <Condizione2>); Alice Pavarani - 5B informatica - dicembre 2007

Data Manipulation Language DML Data Manipulation Language Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Inserimento INSERT INSERT INTO <NomeTabella> [(<Campo1>, <Campo2>, … <CampoN>)] VALUES (<Valore1>, <Valore2>, … <ValoreN>); <NomeTabella>  Nome della tabella in cui inserire i dati. <Campo>  Lista dei campi della tabella in cui inserire i valori specificati di seguito. <Valore>  Lista dei valori da inserire nei rispettivi campi. L’elenco dei campi è opzionale; se non viene specificato è necessario inserire un valore per tutti i campi della tabella. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Modifica UPDATE UPDATE <NomeTabella> SET <Campo1> = <Valore1>, <Campo2> = <Valore2>, … <CampoN> = <ValoreN> [WHERE <Condizione>]; <NomeTabella>  Nome della tabella in cui modificare i dati. <Campo>  Lista dei campi della tabella in cui modificare i dati esistenti con i valori seguenti. <Valore>  Lista dei valori da sostituire a quelli dei rispettivi campi. Se non viene specificata alcuna condizione WHERE, il valore inserito viene sostituito ai valori di ogni campo. Alice Pavarani - 5B informatica - dicembre 2007

Alice Pavarani - 5B informatica - dicembre 2007 Eliminazione DELETE DELETE FROM <NomeTabella> [WHERE <Condizione>]; <NomeTabella>  Nome della tabella dalla quale verranno eliminati i dati. <Condizione>  Condizione che deve essere soddisfatta dai campi che verranno eliminati. Se non viene specificata alcuna condizione WHERE, viene eliminato il valore di ogni campo. Alice Pavarani - 5B informatica - dicembre 2007