Slide dall'Università su "Unità di apprendimento 9 Il linguaggio SQL". Il Pdf, una presentazione di Informatica per l'Università, illustra i concetti fondamentali del linguaggio SQL, i comandi DDL e i componenti delle basi di dati, offrendo un formato schematico e chiaro.
Mostra di più32 pagine


Visualizza gratis il Pdf completo
Registrati per accedere all’intero documento e trasformarlo con l’AI.
Unità di apprendimento 9 Lezione 1 Il linguaggio di definizione dei dati (DDL)
SQL sta per Structured Query Language · SQL supporta la definizione e la manipolazione di dati presenti nelle basi di dati relazionali · nella maggior parte dei DBMS viene usato solo per accedere ai dati
Si divide in 4 sottolinguaggi:
Ogni blocco di codice si suddivide in
Sebbene il linguaggio sia case unsensitive, lo standard ritiene più leggibile un codice con clausole e costrutti digitati in maiuscolo e il resto della stringa in minuscolo SELECT nome, cognome, telefono FROM Modelle WHERE altezza>175 and peso<55; oppure anche su più righe: INSERT INTO tmp (a,b) SELECT cognome, nome FROM Alunni;I
componenti delle basi di dati sono:
Una tabella in SQL è formata da:
CREATE TABLE nome tabella ( {nome_campo tipo [ ( lunghezza) ] [ NOT NULL] [ PRIMARY KEY] [UNIQUE]}[, . ] [ PRIMARY KEY ( nome campo, . . . ) ] [UNIQUE [ nome indice] ( { nome campo} [ . . . . ] ) ] [ CONSTRAINT [ nome vincolo] REFERENCES nome tabella( nome campo) ] Esempio: CREATE TABLE Alunni ( cognome CHAR (20) , nome CHAR (20) , matricola INT, telefono CHAR (12) , data nascita DATE NOT NULL id classe INT) ;
Istruzione per la creazione della tabella CREATE TABLE Alunni Nome della tabella ( matricola CHAR (4) PRIMARY KEY L Vincoli relazionali nome CHAR (40), Nomi degli attributi "indirizzo CHAR (80)o Domini, cioè insieme dei valori ammessi per il corrispondente attributo
BIT un bit memorizzato in 1 byte 0 (false) OPPURE 1 (true) TINYINT intero ridotto da 0 a 255 SMALLINT intero INTERI da -32.768 a 32.767 MONEY intero lungo 8 Byte ±922.337.203.685.477,5808 INTEGER intero lungo da-2.147.483.648 a2.147.483.647 FLOAT reale a doppia precisione (8 Byte) da -1,79308 a -4,94-324 REAL reale a singola precisione (4 Byte) REALI da -3,438 a -1,4-45 DECIMAL reale a precisione variabile (17 Byte) CHAR stringa a lunghezza fissa da 0 a 255 caratteri STRINGA TEXT campo testo a lunghezza fissa da 0 a 2,14 GigaByte DATE data Una data in formato gg/mm/aaaa TIME ora Un orario in formato hh:mm:ss IMAGE oggetti (OLE - Object Linked and Embedded - Microsoft) OGGETTI Da 0 a 2,14 GigaByte AUTOINCREMENT Numerico autoincrementante DATA
I tipi numerici sono:
I tipi numerici permettono di gestire date e ore:
tipi character vengono usati per I rappresentare sequenze di caratteri
Il dominio boolean permette di rappresentare valori di verità true/false · generalmente occupa un solo bit · in Access si indica con il tipo bit
CREATE TABLE Materie ID materia INT NOT NULL materia CHAR(20) NOT NULL ) CREATE TABLE Voti ( data date NOT NULL id materia INT NOT NULL id alunno INT NOT NULL voto INT NOT NULL, ID voto INT NOT NULL); CREATE TABLE Docenti ID docente INT NOT NULL cognome CHAR(25) NOT NULL nome CHAR (25) NOT NULL telefono CHAR(12) );
I vincoli intrarelazionali verificano l'input dei dati di una tabella · se i dati non corrispondono allo schema di immissione non vengono accettati . Sono chiamati anche constraints (costrizioni) · sono condizioni che devono essere verificate da ogni istanza della base di dati · Coinvolgono una sola relazione
Permette di esprimere un vincolo che viene valutato ogni volta che si inseriscono o modificano dei dati · in caso di violazione dei vincoli, viene mostrato un messaggio di errore CREATE TABLE Studenti ( Matricola smallint CHECK(Matricola > 0), Nome character (20) NOT NULL UNIQUE, Cognome character (30) NOT NULL UNIQUE, Eta smallint CHECK( (Eta >= 18) AND (Eta <= 70) ) ) . Non è implementato in Access
Permettono di creare un legame permanente tra tabelle diverse attraverso due dati presenti nelle rispettive tabelle · chiamati chiave primaria (PRIMARY KEY) e chiave esterna (FOREIGN KEY) · Esempio · vogliamo mettere in relazione le tabelle Voti e Alunni in modo tale che ad ogni record della tabella Voti corrisponda un allievo della tabella Alunni · si deve usare un vincolo interrelazionale che permette di verificare che la tabella Alunni possieda effettivamente quel particolare alunno • vincolo di integrità referenziale
Per integrità referenziale si intende l'insieme di vincoli interrelazionali utili a verificare che le relazioni tra record di tabelle correlate siano valide e che i dati collegati tra loro da vincoli vengono eliminati o modificati per sbaglio
CREATE TABLE Mansioni (nome CHAR(20) NOT NULL, tariffa oraria INT) ; CREATE TABLE Dipendenti ( matricola CHAR(6) PRIMARY KEY, nome CHAR(20) NOT NULL, cognome CHAR(20) NOT NULL, mansione INT NOT NULL CONSTRAINT m REFERENCES Mansioni (ID_mansione) , stipendio NUMERIC) ) ; Mansioni Dipendenti ID_mansione nome tariffa_oraria ID matricola nome cognome ₼ ensione stipe indio
Debiti Materie Studente CodMateria Voto Codice Nome 5245 1121 4 1121 Latino 5245 1213 5 1213 Fisica 6565 1213 4 1455 Matematica CREATE TABLE Debiti ( CodMateria integer (4) REFERENCES MATERIE (CODICE) Studente varchar (4) , PRIMARY KEY (Studente, CodMateria)
Definisci in SQL le istruzioni per la creazione delle tabelle corrispondenti allo schema rela- zionale descritto di seguito, riguardante i giocatori del campionato di calcio e la classifica marcatori, definendo i vincoli di tupla e di dominio ritenuti opportuni ed esprimendo even- tuali vincoli di integrità referenziale relativi a tutte le tabelle dello schema. Calciatori(CodiceFICG(pk), cognome, nome, squadra, nazione, ruolo) ClassificaMarcatori(Codice(pk), posizione, giocatore(fk), goal_fatti, rigori)