Anteprima
Vedrai una selezione di 3 pagine su 10
Sql (basi di dati) Pag. 1 Sql (basi di dati) Pag. 2
Anteprima di 3 pagg. su 10.
Scarica il documento per vederlo tutto.
Sql (basi di dati) Pag. 6
1 su 10
D/illustrazione/soddisfatti o rimborsati
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Estratto del documento

DEFINIZIONE DEI DATI

Create table

Permette di creare istanza vuota di una tabella

sintassi

CREATE TABLE NomeTabella (

NomeAttributo Dominio [vincoli]

NomeAttributo Dominio [vincoli]

….

NomeAttributo Dominio [vincoli]

[AltriVincoli]

)

Tramite DEFAULT è possibile applicare valore di default all’attributo.

WARNING È importante definire una primary key o attributi unique altrimenti la tabella

potrà avere ennuple completamente uguali.

Create domain

Permette di creare domini personalizzati da domini predefiniti tramite check

sintassi

CREATE DOMAIN NomeDominio

AS DominioPresistente [Default][Vincoli]

Alter table

Permette di modificare una tabella, essenziale per creare vincoli foreign key

sintassi

ATLER TABLE NomeTabella

ADD Attributo|Vincolo

CONSTRAINT permette di

dare un nome al vincolo 1

Drop table

Permette di eliminare una tabella

sintassi

DROP TABLE NomeTabella RESTRICT|CASCADE

I parametri RESTRICT e CASCADE specificano come eliminare le tabelle collegate:

- RESTRICT => elimina solo se non ci sono riferimenti ad essa

- CASCADE => elimina tabella e tutte le tabelle che si riferiscono ad essa

Vincoli intrarelazionali

Esprimono condizioni sui valori di ogni tupla

- PRIMARY KEY => assegna chiave primaria, valore univoco identificativo (NOT NULL)

- NOT NULL => il valore non può essere NULL

- UNIQUE => permette di creare una superchiave per l’attributo

OSS Attributo1 UNIQUE… attribuito2 UNIQUE =/= UNIQUE( attributo1, attributo2)

- CHECK => vincoli sulle tuple (ex. Permette di assegnare valori predefiniti nelle quali

possono rientrare i valori delle tuple)

Vincoli interrelazionali

Permettono di associare informazioni su relazioni differenti

- CHECK => permette di creare vincoli complessi tra tabelle, tra cui vincoli di inclusione.

- REFERENCES FOREIGN KEY

e => definiscono vincoli di integrità referenziali, gli

attributi referenziati devono essere delle primary key (o unique) nella tabella di arrivo.

Può essere creato solo se tabella da referenziare esiste già, richiede utilizzo di alter

table ciclci per doppia referenziazione.

sintassi

- REFERENCES Attributo

- FOREIGN KEY (Attributo, Attributo, …) REFERENCES NomeTabella( Attr, Attr, …)

OSS il dominio di un attributo

referenziato corrisponde con il

dominio dell’attributo nell’altra

tabella 2

Extra foreign key

Il vincolo di foreign key permette inoltre di settare le azioni nel caso di aggiornamento

(ON UPDATE) o cancellazione (ON DELETE) della tabella.

sintassi

ON UPDATE NO ACTION|RESTRICT|CASCADE|SET DEFAULT|SET NULL

ON DELETE NO ACTION|RESTRICT|CASCADE|SET DEFAULT|SET NULL

- NO ACTION => genera errore al momento della verifica del vincolo

- RESTRICT => genera errore immediato, non aspetta fine transazione

DEFERRED

WARNING anche se 1

- CASCADE => cancella tupla che referenzia e tupla referenziata

- SET DEFAULT => sostituisce referenziata con valore default

- SET NULL => sostituisce referenziata con NULL

Le transazioni

- Atomiche => le operazioni non si possono suddividere

- Consistenti => rispettano i vincoli

OSS I vincoli DEFERRED possono essere violati durante le operazioni ma devono

essere rispettati alla fine della transazione, altrimenti viene annulata per intero

- Isolate => gestiscono sezione critica nel caso di transazioni simultanee

- Durevoli => una volta effettuate sono definitive

sintassi

BEGIN;

BEGIN|UPDATE|DELETE SintassiOperazioneManipolazioneDati

COMMIT;

DEFERRED => applicabile sui vincoli di foreign key, permette di controllare il vincolo solo alla

1 fine della transazione 3

MANIPOLAZIONE DEI DATI

Insert

Permette di inserire tuple nella tabella

sintassi

INSERT INTO Tabella [(Attributi)]

VALUES

(valori),

(valori),

….

valori;

Se non specifico attributi prendo tutti, è possibile inserire elementi tramite select

Delete

Permette di eliminare tuple

sintassi

DELETE FROM Tabella

[WHERE Condizione]

Fare attenzione a vicoli cascade

Update

Permetti di modificare tuple

sintassi

UPDATE NomeTabella

SET Attributo = Espressione|select…|null|default

[WHERE Condizione] 4

Interrogazioni

La select

La versione base permette di effettuare le interrogazioni sugli attributi (o le espressioni

sugli attributi) inseriti nella clausola select appartenenti alle tabelle della clausola from,

aventi le condizioni indicate nella where.

sintassi

SELECT ListaAttributi o Espressioni

FROM ListaTabelle

[WHERE CondizioniSemplici]

[GROUP BY ListaAttributiRaggruppamento]

[HAVING CondizioniAggregate]

[ORDER BY ListaAttributiOrdinamento]

[LIMIT numero]

- Gli attributi si scrivono come “NomeTabella.NomeAttributo”

- Tramite l’espressione * si possono selezionare tutti gli attributi della tabella

Distinct

Permette di eliminare le ennuple ripetute, essendo le tabelle SQL un multinsieme.

sintassi

SELECT DISTINCT ListaAttributi o Espressioni

As

Permette di effettuare ridenominazione su attributi

sintassi

SELECT NomeAttributo AS NuovoNomeAttributo

OSS

La proiezione si effettua utilizzando s le clausole select e from;

la selezione tramite la clausola where;

il join implicito tramite la from;

2

Like

Permette di creare espressioni regolari da confrontare con stringhe degli attributi

sintassi

SELECT ListaAttributi o Espressioni

FROM ListaTabelle

WHERE attributo LIKE ‘espressione’

join implicito => equivalente ad operazione di prodotto cartesiano

2 5

Is null

Permette di gestire valori nulli

sintassi

SELECT ListaAttributi o Espressioni

FROM ListaTabelle

WHERE attributo IS NULL|IS NOT NULL

Join esplicito

Equivalente a join implicito (theta-join), permette però di esplicitare le condizioni di join

nella from separandole dalle condizione della where

sintassi

SELECT Attributi

FROM tabella1 JOIN tabella2 ON CondizioniJoin

Join naturale

Gli attributi uguali delle tabelle vengono messi direttamente in corrispondenza

sintassi

SELECT Attributi

FROM tabella1 NATURAL JOIN tabella2

Outer join

Include anche valori che della tabella che non verrebbero aggiunti a causa di valori null

sintassi

SELECT Attributi

FROM tabella1 LEFT|RIGHT|FULL OUTER JOIN tabella2

… 6

Operatori aggreganti

Permettono di calcolare valori a partire da insiemi di ennuple, il DISTINCT permette di non

riusare valori uguali provenienti da tuple differenti

Sintassi

SELECT FUNZIONE([DISTINCT] EspressioneSuAttributi)

funzioni principali:

- COUNT => conta ennuple nella tabella

OSS può usare ‘*’ come espressione che prende tutte le ennuple della tabella

- SUM => somma tutti i valori dell’attributo

- AVG => media valori dell’attributo

- MAX => valore massimo dell’attributo

- MIN => valore minimo dell’attributo

OSS gli attributi con valori NULL non vengono considerati

Group by

permette di creare sottoinsiemi di ennuple nella tabella prendendo tutti gli attributi con

valori uguali (per rendere attributo omogeneo con operatore)

sintassi

SELECT ListaAttributi o Espressioni WARNING se è presente nella SELECT

FROM ListaTabelle un attributo contenuto nella GROUP BY

… oppure un operatore aggregante, allora

[GROUP BY ListaAttributiRaggruppamento] anche tutti gli altri attributi dovranno far

… parte della GROUP BY oppure essere

operatori aggreganti 7

Dettagli
Publisher
A.A. 2017-2018
10 pagine
SSD Scienze matematiche e informatiche INF/01 Informatica

I contenuti di questa pagina costituiscono rielaborazioni personali del Publisher duke0000 di informazioni apprese con la frequenza delle lezioni di Basi di dati e studio autonomo di eventuali libri di riferimento in preparazione dell'esame finale o della tesi. Non devono intendersi come materiale ufficiale dell'università Università degli Studi di Roma La Sapienza o del prof Lenzerini Maurizio.