La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

SQL1 Structured Query Language Data Definition Language Data Manipulation Language Evoluzione Sequel IBM (1974) Standardizzazione ANSI/ISO: SQL-89, SQL-

Presentazioni simili


Presentazione sul tema: "SQL1 Structured Query Language Data Definition Language Data Manipulation Language Evoluzione Sequel IBM (1974) Standardizzazione ANSI/ISO: SQL-89, SQL-"— Transcript della presentazione:

1 SQL1 Structured Query Language Data Definition Language Data Manipulation Language Evoluzione Sequel IBM (1974) Standardizzazione ANSI/ISO: SQL-89, SQL- 2, … Oracle SQL

2 SQL2 Programma del corso SQL linguaggio di definizione dello schema di una base di dati; specifica delle interrogazioni; uso del linguaggio di interrogazione per la definizione dei dati; comandi per il controllo e laccesso ai dati; interazione tra SQL ed i tradizionali linguaggi di programmazione PL/SQL SQL*Plus

3 SQL3 Terminologia SQL Relazioni = Tabelle Risultato di una interrogazione = Tabella Tupla = Riga Attributo = Colonna Nessuna distinzione fra maiuscole e minuscole (ad eccezione delle stringhe)

4 Esempio INOINOMELAVOROCAPODATA_ASSSTIPENDIODIPNO 7369SMITHIMPIEGATO ALLENVENDITORE WARDVENDITORE BLAKEMANAGER FORDANALISTA DIPNODIPNOMECITTA 10MAGAZZINOCHICAGO 20RICERCADALLAS 30VENDITENEW YORK 40MARKETINGBOSTON LIVELLOMINSALMAXSAL Tabella IMPIEGATI Tabella DIPARTIMENTO Tabella SALARI

5 SQL5 Tipi di dati elementari char (n) varchar2(n) number(o,d) integer decimal smallint real date long

6 SQL6 Il valore null null 0 null

7 SQL7 Proprietà delle tabelle Lordine delle righe è irrilevante Non esistono righe duplicate (possono però apparire righe duplicate nella risposta ad una query)

8 SQL8 Select select [distinct] from [where ] [order by [asc | desc] ];

9 SQL9 Esempi: selezione di colonne select CITTA, DIPNO from DIPARTIMENTO; select * from IMPIEGATI; select INOME, DIPNO, STIPENDIO*12 as SALARIO_ANNUO from IMPIEGATI;

10 SQL10 Funzioni numeriche +, -, *, /, mod, power, sqrt abs, ceil, floor, sign cos, cosh, sin, sinh, tan, tanh log, ln, exp round, trunc nvl vsize

11 SQL11 Funzioni su stringhe ||, concat initcap, lower, upper instr substr, rtrim length lpad, rpad soundex

12 SQL12 Funzioni di data add_months, months_between greatest, least last_day, next_day new_time round trunc to_char, to_date

13 SQL13 Esempi: distinct e order by select DIPNO from IMPIEGATI; select distinct DIPNO from IMPIEGATI; select INOME, DIPNO, DATA_ASS from IMPIEGATI order by DIPNO [asc], DATA_ASS desc;

14 SQL14 Esempi: selezione di tuple select LAVORO, STIPENDIO from IMPIEGATI where (CAPO = 7698 or CAPO = 7566) and STIPENDIO > 1500;

15 SQL15 Operatori nella clausola where logici: and, or di confronto: =, !=, <>, >, = di appartenenza: in, not in select * from DIPARTIMENTO where DIPNO in (20, 30); di valore nullo: is null, is not null select * from IMPIEGATI where CAPO is not null; di rango: between … and …, not between … and … select INO, INOME, STIPENDIO from IMPIEGATI where STIPENDIO between 1500 and 2500;

16 SQL16 Funzione like % carattere jolly _ marcatore di posizione Esempi … where CITTA like '%YORK%' … where CITTA not like '_A%' … where CITTA like '%A%'

17 SQL17 Funzioni di gruppo Operano su un gruppo di righe calcolando un singolo valore da un insieme di valori di una colonna count: conta il numero di righe per una colonna select count(*) from IMPIEGATI; select count(distinct LAVORO) from IMPIEGATI; select count(*) from IMPIEGATI where LAVORO='VENDITORE'; conta anche eventuali valori null

18 SQL18 Funzioni di gruppo (2) max: calcola il massimo dei valori di una colonna min: calcola il minimo dei valori di una colonna select min(STIPENDIO), max(STIPENDIO) from IMPIEGATI; select max(STIPENDIO)-min(STIPENDIO) from IMPIEGATI; select max(CITTA) from DIPARTIMENTO; ignorano le tuple che hanno valore null nella colonna specificata

19 SQL19 Funzioni di gruppo (3) sum: calcola la somma dei valori di una colonna avg: calcola la media dei valori di una colonna select sum(STIPENDIO) from IMPIEGATI where DIPNO=30; select avg(STIPENDIO) from IMPIEGATI where LAVORO='VENDITORE'; ignorano le tuple che hanno valore null nella colonna specificata applicabili solo a dati numerici

20 SQL20 Definizione dei dati create table ( [default] [ ] {, [default] [ ]} {, } );

21 SQL21 Nomi di colonna e di tabella devono iniziare con una lettera possono contenere numeri e _ possono essere lunghi fino a 30 caratteri i nomi di colonna devono essere unici allinterno di una tabella

22 SQL22 Esempio create table IMPIEGATI ( INO number(4), INOME varchar2(30), LAVORO char(10), CAPO number(4), DATA_ASS date, STIPENDIO number(7,2), DIPNO number(2) );

23 SQL23 describe per vedere la struttura di una tabella si puo usare il comando describe ; Esempio: describe IMPIEGATI;

24 SQL24 Vincoli [constraint ] primary key | unique | not null

25 SQL25 not null richiede che i valori dellattributo corrispondente siano diversi da null create table IMPIEGATI ( INO number(4) not null, INOME varchar2(30), LAVORO char(10), CAPO number(4), DATA_ASS date, STIPENDIO number(7,2), DIPNO number(2) );

26 SQL26 unique richiede che i valori dellattributo corrispondente siano tutti distinti (i valori null sono ammessi e non violano tale vincolo) create table IMPIEGATI ( INO number(4) not null unique, INOME varchar2(30)unique, LAVORO char(10), CAPO number(4), DATA_ASS date, STIPENDIO number(7,2), DIPNO number(2) );

27 SQL27 primary key definisce un identificatore unico per ogni tupla non ammette valori null create table IMPIEGATI ( INO number(4) constraint PK_IMP primary key, INOME varchar2(30) not null, LAVORO char(10), CAPO number(4), DATA_ASS date, STIPENDIO number(7,2), DIPNO number(2) );

28 SQL28 Esempio create table PROGETTO ( PNO number(3) constraint pk_prg primary key, PNOME varchar2(60) unique, PMGR number(4) not null, COMPONENTI number(5), BUDGET number(8,2) not null, PSTART date, PEND date );

29 SQL29 default consente di specificare un valore di default da assegnare ad un attributo quando ad esso non viene assegnato alcun valore PSTART date default (01-JAN-01),

30 SQL30 Vincoli di tabella I vincoli unique e primary key possono essere riferiti a piu colonne. In tal caso i vincoli devono essere definiti dopo che sono state definite tutte le colonne interessate constraint DATE_DIVERSE unique(PSTART, PEND)

31 SQL31 Checklist Quali attributi delle tuple devono essere memorizzati? Quali sono i tipi di dati degli attributi? Puo essere usato varchar2 al posto di char? Quali colonne costituiscono la chiave primaria? Quali colonne non ammettono valori nulli? Quali colonne non ammettono valori duplicati? Ci sono valori default per certe colonne?


Scaricare ppt "SQL1 Structured Query Language Data Definition Language Data Manipulation Language Evoluzione Sequel IBM (1974) Standardizzazione ANSI/ISO: SQL-89, SQL-"

Presentazioni simili


Annunci Google