Docsity
Docsity

Prepara i tuoi esami
Prepara i tuoi esami

Studia grazie alle numerose risorse presenti su Docsity


Ottieni i punti per scaricare
Ottieni i punti per scaricare

Guadagna punti aiutando altri studenti oppure acquistali con un piano Premium


Guide e consigli
Guide e consigli


Introduzione al linguaggio SQL: struttura, comandi e sintassi, Appunti di Informatica

Una panoramica dettagliata del linguaggio sql, inclusi i suoi quattro sottolinguaggi, la struttura delle query, i comandi e la sintassi. Vengono spiegati i comandi per la creazione, modifica, eliminazione e aggiornamento dei dati, la gestione degli accessi alle risorse del database e la gestione dei permessi utente, nonché la query per l'interrogazione, il raggruppamento, il conteggio e l'ottenimento di prospetti personalizzati dei dati presenti nelle varie tabelle del database. Vengono inoltre illustrati i tipi di dato più comuni, i vincoli intra e inter-relazionali, il compito dell'ottimizzatore delle interrogazioni e il linguaggio procedurale interno al sistema.

Tipologia: Appunti

2023/2024

Caricato il 17/03/2024

luca-bossi
luca-bossi 🇮🇹

2 documenti

1 / 8

Toggle sidebar

Questa pagina non è visibile nell’anteprima

Non perderti parti importanti!

bg1
1. Definizione
SQL: structured query language.
E’ un linguaggio di interrogazione strutturato che consente di interagire con i dati
presenti nelle basi di dati.
Il linguaggio viene utilizzato per accedere ai dati e alla loro struttura, infatti il
linguaggio può essere suddiviso in 4 sottolinguaggi.
1. DDL (Data Definition Language): contiene i comandi preposti alla creazione
delle tabelle e alla definizione dei dati contenuti
2. DML(Data Manipulation Language): contiene i comandi per la modifica dei
dati contenuti nelle tabelle in termini di aggiunta, modifica, eliminazione e
aggiornamento.
3. DCL(Data Control Language): contiene i comandi per la gestione degli
accessi alle risorse del database e la gestione dei permessi utente
4. QL(Query Language): contiene i comandi per l’interrogazione, il
raggruppamento, il conteggio e l’ottenimento di prospetti personalizzati dei
dati presenti nelle varie tabelle del database.
2. Come lavora l’SQL
SQL è un linguaggio dichiarativo: esso permette di specificare cosa cercare senza
dire come. Quando una interrogazione (query) viene eseguita dall'elaboratore di
interrogazioni (query processor), essa viene tradotta in un linguaggio procedurale
interno al sistema il quale permette di specificare come accedere ai dati. Esistono
in generale più possibili traduzioni di una interrogazione SQL nel linguaggio
procedurale. Il compito dell'ottimizzatore delle interrogazioni (query optimizer) è
scegliere il piano di esecuzione più efficiente. Il linguaggio SQL ha la proprietà di
chiusura, ovvero opera su tabelle per produrre risultati che sono ancora tabelle.
3. Le query
La query ovvero l’interrogazione effettuata sul database è suddivisa in
- Comando: l’intero blocco di codice che termina con ;
-Costrutto: tipologia di query effettuata ad esempio select, insert, create,
update etc…
-Clausola: parametri aggiuntivo al costrutto, FROM WHERE
SELECT * seleziono tutti gli attributi di una
tabella
pf3
pf4
pf5
pf8

Anteprima parziale del testo

Scarica Introduzione al linguaggio SQL: struttura, comandi e sintassi e più Appunti in PDF di Informatica solo su Docsity!

1. Definizione

SQL : structured query language. E’ un linguaggio di interrogazione strutturato che consente di interagire con i dati presenti nelle basi di dati. Il linguaggio viene utilizzato per accedere ai dati e alla loro struttura, infatti il linguaggio può essere suddiviso in 4 sottolinguaggi.

  1. DDL (Data Definition Language): contiene i comandi preposti alla creazione delle tabelle e alla definizione dei dati contenuti
  2. DML(Data Manipulation Language): contiene i comandi per la modifica dei dati contenuti nelle tabelle in termini di aggiunta, modifica, eliminazione e aggiornamento.
  3. DCL(Data Control Language): contiene i comandi per la gestione degli accessi alle risorse del database e la gestione dei permessi utente
  4. QL(Query Language): contiene i comandi per l’interrogazione, il raggruppamento, il conteggio e l’ottenimento di prospetti personalizzati dei dati presenti nelle varie tabelle del database.

2. Come lavora l’SQL

SQL è un linguaggio dichiarativo : esso permette di specificare cosa cercare senza

dire come. Quando una interrogazione (query) viene eseguita dall'elaboratore di

interrogazioni (query processor), essa viene tradotta in un linguaggio procedurale

interno al sistema il quale permette di specificare come accedere ai dati. Esistono

in generale più possibili traduzioni di una interrogazione SQL nel linguaggio

procedurale. Il compito dell'ottimizzatore delle interrogazioni (query optimizer) è

scegliere il piano di esecuzione più efficiente. Il linguaggio SQL ha la proprietà di

chiusura, ovvero opera su tabelle per produrre risultati che sono ancora tabelle.

3. Le query

La query ovvero l’interrogazione effettuata sul database è suddivisa in

  • Comando: l’intero blocco di codice che termina con ;
  • Costrutto: tipologia di query effettuata ad esempio select, insert, create, update etc…
  • Clausola: parametri aggiuntivo al costrutto, FROM WHERE SELECT * seleziono tutti gli attributi di una tabella

FROM nomi clausola che mi dice dove prendere i dati WHERE nome =’pippo’; [COMANDO SQL] parametro aggiuntivo

SQL non è un linguaggio case sensitive ma lo standard prevede un codice con

clausole e costrutti in maiuscolo e il resto della stringa in minuscolo.

4. I sottolinguaggi

4.1 DDL

COMANDO CREATE

Creazione di un Database : CREATE DATABASE Permette di creare un nuovo database associandogli un nome: CREATE DATABASE mioDB; Creazione di una tabella : CREATE TABLE Le informazioni specificabili in fase di creazione di una tabella sono:

  • Gli attributi: nomi delle colonne (campi)
  • Dominio: tipo di colonna (tipo di dato che può essere inserito nella colonna) I principali TIPI di dato sono: INT, FLOAT, CURRENCY (valuta), CHAR (stringa di lunghezza fissa. La lunghezza viene stabilita in fase di definizione della tabella), VARCHAR(stringa di lunghezza variabile, con una dimensione massima stabilita in fase di definizione della tabella), BOOL, NOTE,DATE, DATETIME
  • Vincoli intra relazionali: sono condizioni che devono essere verificate per permettere l’inserimento di un dato in una tabella. Sono vincoli che coinvolgono una sola relazione. o Vincolo sul singolo campo (o di dominio): NOT NULL (il campo non può essere vuoto); AUTO_INCREMENT per ottere una caratteristica di auto incremento CHECK (vincolo di appartenenza ad un intervallo di valori del dominio, ad esempio per un campo numerico che rappresenta una valutazione inserire il vincolo di compreso fra 0 e 10); o Vincoli che possono coinvolgere anche più campi - UNIQUE (garantisce che tutti valori di una colonna sono univoci. Unique può essere associato anche ad un insieme di campi in

CREATE TABLE studente( … indirizzo char(4) NOT NULL CONSTRAINT legame REFERENCES Classe(indirizzo_classe), … ) In Studente non è possibile inserire un record con un valore di indirizzo nullo o non presente nella tabella Classe, nella colonna indirizzo_classe. In Classe non è possibile rimuovere un record con un valore di indirizzo presente nella colonna Studente.indirizzo_classe La relazione tra Classe e Studente è 1 a molti (il valore univoco Classe.indirizzo può essere inserito in più record di Studente.indirizzo_classe) Es: uso di constraint per la definizione di un vincolo di unicità, all’interno di una sola tabella CREATE TABLE DIPENDENTE ( CF char(16) PRIMARY KEY, nome varchar(25) NOT NULL, cognome varchar(35) NOT NULL, indirizzo varchar(40), data-nascita date, CONSTRAINT chiaveCandidata UNIQUE(nome, cognome,data-nascita) ); Il vincolo di FOREIGN KEY si usa per evitare azioni che potrebbero portare alla distruzione di dati in tabelle tra di loro collegate. il campo FOREIGN KEY (o collezione di campi) in una tabella si riferisce alla PRIMARY KEY di un’altra tabella.

1. Sintassi SQL per la definizione di un vincolo di chiave esterna: foreign key(A) references Table1(B)

La chiave esterna (o foreign key) è l’insieme di uno o più campi di una tabella che fanno riferimento alla chiave primaria di un’altra tabella Es: vincolo di “legame” fra table1 e table2 (continuo) CREATE TABLE table1( ID_B int NOT NULL, … … PRIMARY KEY(ID_B) ); CREATE TABLE table2( … id_B_table1 int, FOREIGN KEY (id_B_table1) REFERENCES table1(ID_B) … ) table2.id_b_table2chiave esterna table1.ID_Bchiave primaria La differenza fra foreign key e constraint è che nel primo caso non posso attribuire un nome al vincolo inoltre constraint consente di definire qualsiasi vincolo anche all’interno di una stessa tabella. Altro esempio di tabella con chiave primaria e chiave esterna sintassi mySql CREATE TABLE Orders ( OrderID int NOT NULL AUTO_INCREMENT, orderNumber int NOT NULL, personID int, PRIMARY KEY (OrderID), FOREIGN KEY (personID) REFERENCES Persons(PersonID) ); Modifica di una tabella : ALTER TABLE La struttura di una tabella può essere modificata mediante il costrutto ALTER, che consente la variazione di attributi, del dominio, degli indici e dei vincoli Sintassi: ALTER TABLE <nome_tabella> DROP (TABLE|COLUMN|CONSTRAINT) <nom_elemento> ADD COLUMN <nome_attributo>

ADD INDEX nome_indice(campo1, campo2, ecc); Il comando crea un nuovo indice basato sui campi colonna1 ecc. L’indice non è altro che una tabella (struttura accessoria) che contiene le posizioni dei record secondo l’ordinamento dei campi specificati nella definizione dell’indice. L’indice viene utilizzato in fase di esecuzione di una query, dove i record vengono scanditi leggendo la posizione dalla tabella indice. Solitamente si associa l’indice ai campi su cui vengono effettuate più ricerche. La scelta degli indici è strategica per il buon funzionamento di un database perché consentono di scandire porzioni di tabelle (e non tabelle intere!) e permettono l’uso di piani d’esecuzione ottimizzati. 44.4 modifica ai vincoli

- Inserimento UNIQUE: ALTER TABLE Atleti ADD CONSTRAINT vincoloNome UNIQUE(nome, cognome); - Inserimento PRIMARY KEY ALTER TABLE Persons ADD CONSTRAINT PK_Person PRIMARY KEY (ID,LastName); ad esempio: ALTER TABLE Persona ADD PRIMARY KEY (ID);

  • Inserimento FOREIGN KEY ALTER TABLE nome_tabella_con_fk ADD CONSTRAINT nome_costraint FOREIGN KEY ( nome_campo_fk ) REFERENCES n ome_tabella_con_pk (n ome_campo_pk ); esempio: ALTER TABLE Orders ADD CONSTRAINT fk_idOrdine FOREIGN KEY (personID) REFERENCES Persons(PersonID); - Cancellazione unique: ALTER TABLE Atleti DROP CONSTRAINT vincoloNome;
  • Cancellazione foreign key: ALTER TABLE table_name DROP FOREIGN KEY constraint_name; Rimozione di una tabella : DROP DATABASE Una database può essere rimosso attraverso il comando DROP. Il comando rimuove tutto il contenuto del database.

Non è possibile il rollback del comando Sintassi: DROP TABLE nomeDB Esempio DROP DATABASE Olimpiadi Rimozione di una tabella : DROP TABLE Una tabella può essere rimossa attraverso il comando DROP. Il comando rimuove la definizione della tabella, il contenuto , gli indici, eventuali trigger, privilegi ...dal database. Non è possibile il rollback del comando (non è possibile annullare il comando). Sintassi: DROP TABLE nome tabella Esempio DROP TABLE Atleti Cancellazione del contenuto di una tabella : TRUNCATE TABLE Tutto il contenuto di una tabella viene rimosso attraverso il comando TRUNCATE. Sintassi: TRUNCATE TABLE nome tabella Esempio TRUNCATE TABLE Atleti